MSP430学习笔记-时钟

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 单片机的基本时钟系统寄存器

寄存器名称寄存器缩写
DCO 控制寄存器DCOCTL
基本时钟系统控制寄存器 1BCSCTL1
基本时钟系统控制寄存器 2BCSCTL2

DCOCTL

7 到54到0
DCOxMODx

DCOx: DCO 频率选择
用来选择 8 种频率,可分段进行调节 DCOCLK 频率。该频率是建立在 RSELx 选定的频段上。
MODx:DAC 调制器设定
控制切换 DCOx 和 DCOx+1 选择的两种频率,来微调 DCO 的输出频率。
如果 DCOx 常数是 7,表示已经选择最高频率,此时 MODx 失效,不能用来进行频率调整。

BCSCTL1

765到432到0
XT2OFFXTSDIVAxXT5VRSELx

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

7 到65到432到10
SELMxDIVMxSELSDIVSxDCOR

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 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值