×
单片机 > 单片机程序设计 > 详情

MSP430学习笔记-时钟

发布时间:2020-08-21 发布时间:
|

LF mode (XTS = 0) 

HF mode (XTS = 1)


控制位OSCOFF,XT2OFF分别用于控制是否禁止使用LFXT1和XT2晶振 

OSCOFF,XT2OFF=1表示禁止


SMCLK 和 MCLK 时钟信号时,可以用控制位 SCG0 禁止直流发生器。


在 PUC 信号之后,DCOCLK 被自动选作 MCLK 时钟信号,根据需要,MCLK 的时钟源可以另外设置为 

LFXT1 或者 XT2。设置顺序如下: 

(1)让 OSCOFF=1 

(2)让 OFIFG=0 

(3)延时等待至少 50us 

(4)再次检查 OFIFG,如果 OFIFG=1,重复(3)、(4)步骤,直到 OFIFG=0 为止。


MSP430F169 单片机的基本时钟系统寄存器

DCOCTL

DCOx: DCO 频率选择 

用来选择 8 种频率,可分段进行调节 DCOCLK 频率。该频率是建立在 RSELx 选定的频段上。 

MODx:DAC 调制器设定 

控制切换 DCOx 和 DCOx+1 选择的两种频率,来微调 DCO 的输出频率。 

如果 DCOx 常数是 7,表示已经选择最高频率,此时 MODx 失效,不能用来进行频率调整。


BCSCTL1

XT2OFF:XT2 高速晶振控制 

此位用于控制 XT2 振荡器的开启与关闭。 

0: XT2 高速晶振开 

1: XT2 高速晶振关 

XTS:LFXT1 高速/低速模式选择 

0: LFXT1 工作在低速晶振模式(默认) 

1: LFXT1 工作在高速晶振模式 

DIVAx:ACLK 分频选择 

0: 不分频 

1: 2 分频 

2: 4 分频 

3: 8 分频 

XT5V:不使用 

通常此位复位 XT5V=0 

RSELx:DCO 震荡器的频段选择 

该 3 位控制某个内部电阻以决定标称频率。 

0: 选择最低的标称频率 

…… 

7: 选择最高的标称频率


BCSCTL2

SELMx:选择 MCLK 时钟源 

0: MCLK 时钟源为 DCOCLK(默认) 

1: MCLK 时钟源为 DCOCLK 

2: MCLK 时钟源为 XT2CLK 

3: MCLK 时钟源为 LFXT1CLK 

DIVMx:选择 MCLK 分频 

0: 不分频(默认) 

1: 2 分频 

2: 4 分频 

3: 8 分频 

SELS:选择 SMCLK 时钟源 

0: SMCLK 时钟源为 DCOCLK(默认) 

1: SMCLK 时钟源为 XT2CLK 

DIVSx:选择 SMCLK 分频 

0: 不分频(默认) 

1: 2 分频 

2: 4 分频 

3: 8 分频 

DCOR:选择 DCO 震荡电阻 

0: 内部电阻 

1: 外部电阻


基本时钟系统头文件定义

/************************************************************ 

* Basic Clock Module 

************************************************************/ 

#define DCOCTL_  (0x0056) /* DCOCTL 的定义 */

DEFC( DCOCTL , DCOCTL_) 

#define BCSCTL1_  (0x0057) /* BCSCTL1 的定义 */ 

DEFC( BCSCTL1 , BCSCTL1_) 

#define BCSCTL2_  (0x0058) /* BCSCTL2 的定义 */

DEFC( BCSCTL2 , BCSCTL2_)

/* DCOCTL 的位定义 */ 

#define MOD0 (0x01) /* Modulation Bit 0 */

#define MOD1 (0x02) /* Modulation Bit 1 */

#define MOD2 (0x04) /* Modulation Bit 2 */

#define MOD3 (0x08) /* Modulation Bit 3 */

#define MOD4 (0x10) /* Modulation Bit 4 */

#define DCO0 (0x20) /* DCO Select Bit 0 */

#define DCO1 (0x40) /* DCO Select Bit 1 */

#define DCO2 (0x80) /* DCO Select Bit 2 */

/* BCSCTL1 的位定义 */ 

#define RSEL0 (0x01) /* Resistor Select Bit 0 */

#define RSEL1 (0x02) /* Resistor Select Bit 1 */

#define RSEL2 (0x04) /* Resistor Select Bit 2 */

#define XT5V (0x08) /* XT5V should always be reset */

#define DIVA0 (0x10) /* ACLK Divider 0 */

#define DIVA1 (0x20) /* ACLK Divider 1 */

#define XTS (0x40) /* LFXTCLK 0:Low Freq. / 1: High Freq. */

#define XT2OFF (0x80) /* Enable XT2CLK */

/* BCSCTL1 的 DIVA 的功能定义 */ 

#define DIVA_0 (0x00) /* ACLK Divider 0: /1 */

#define DIVA_1 (0x10) /* ACLK Divider 1: /2 */

#define DIVA_2 (0x20) /* ACLK Divider 2: /4 */

#define DIVA_3 (0x30) /* ACLK Divider 3: /8 */

/* BCSCTL2 的位定义 */ 

#define DCOR (0x01) /* Enable External Resistor : 1 */

#define DIVS0 (0x02) /* SMCLK Divider 0 */

#define DIVS1 (0x04) /* SMCLK Divider 1 */

#define SELS (0x08) /* SMCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK 

#define DIVM0 (0x10) /* MCLK Divider 0 */

#define DIVM1 (0x20) /* MCLK Divider 1 */

#define SELM0 (0x40) /* MCLK Source Select 0 */

#define SELM1 (0x80) /* MCLK Source Select 1 */

/* BCSCTL1 的 DIVS 的功能定义 */

#define DIVS_0 (0x00) /* SMCLK Divider 0: /1 */

#define DIVS_1 (0x02) /* SMCLK Divider 1: /2 */

#define DIVS_2 (0x04) /* SMCLK Divider 2: /4 */

#define DIVS_3 (0x06) /* SMCLK Divider 3: /8 */

/* BCSCTL1 的 DIVM 的功能定义 */

#define DIVM_0 (0x00) /* MCLK Divider 0: /1 */

#define DIVM_1 (0x10) /* MCLK Divider 1: /2 */

#define DIVM_2 (0x20) /* MCLK Divider 2: /4 */

#define DIVM_3 (0x30) /* MCLK Divider 3: /8 */

/* BCSCTL1 的 SELM 的功能定义 */

#define SELM_0 (0x00)

/* MCLK Source Select 0: DCOCLK */

#define SELM_1 (0x40) /* MCLK Source Select 1: DCOCLK */

#define SELM_2 (0x80) /* MCLK Source Select 2: XT2CLK/LFXTCLK */

#define SELM_3 (0xC0) /* MCLK Source Select 3: LFXTCLK 

关键字:MSP430  时钟  控制位

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会