2. 时钟模块产生3个输出结果:ACLK(辅助时钟),MCLK(主系统时钟)和SMCLK(子系统时钟)。
3. MSP430采用锁频环FLL以及锁频环增强版本FLL+等部件将晶体频率倍频至系统频率。数字控制振荡器DCO和锁频环FLL计数相结合可实现快速启动。在晶体振荡器失效时DCO可自动用于系统时钟。
4. 3个时钟输入源:
a) LFXT1CLK:低频时钟源
b) XT2CLK:高频时钟源
c) DCOCLK:数字控制RC振荡器
5. 3种时钟信号
a) ACLK:由LFXT1CLK信号经1、2、4、8分频后得到。ACLK可由软件选做各外围模块的时钟信号,一般用于低俗外设。
b) MCLK:由软件选择来自LFXT1CLK、XT2CLK、DCOCLK,然后经过1、2、4、8分频得到。MCLK主要用于CPU和系统。
c) SMCLK:可由软件选择来自LFXT1CLK和DCOCLK,然后经过1、2、4、8分频得到。SMCLK主要用于高速外围模块。
6. 低速晶体振荡模块LFXT1
a) 接手表晶振(32768Hz)时直接接在XIN和XOUT两个脚上,不需要其他外部器件,所有保持工作稳定的原件和移相电容都集成在芯片中。
b) 也可通过外接450kHz~8MHz的高速晶体振荡器来工作在高频模式,这时两个引脚要外接电容。
7. 高速晶体振荡器XT2
a) MSP430外接高速晶体振荡器XT2的频率为450kHz~8MHz。
8. DCO振荡器
a) 当LFXT1和XT2失效时,DCO振荡器会自动被选作MCLK的时钟源。振荡器失效引起的NMI中断请求可以得到响应,甚至在CPU关闭的情况下也可以。
b) DCO振荡器是一个可数字控制的RC振荡器,它的频率随供电电压和温度变化而具有一定的不稳定性。MSP430可以通过操作控制寄存器软件调节来增强振荡频率的稳定性。
9. 时钟模块寄存器
a) DCO控制寄存器DCOCTL
i. DCOx:定义8种频率之一,可分段调节DCOCLK的频率,相邻两频率相差10%。而频率由注入直流发生器的电流定义。(默认为3)。
ii. MODx:定义在32个DCO周期中插入的fdco+1的个数,而在余下的DCO周期中为fdco周期,控制切换DCO和DCO+1两种频率。如果DCO常数为7,表示已经选择最高频率,此时不能利用MODx进行频率调整。
b) 基本时钟系统控制寄存器1 BCSCTL1
i. XT2OFF: 0使XT2开启,1使XT2关闭。(默认关闭)
ii. XTS:控制LFXT1的工作模式,选择须结合实际晶体振荡器的连接情况。为0时工作在低频,为1时工作在高频。(默认为低频,在高频时必须连接相应的高频时钟源)。
iii. DIVAx:控制ACLK分频。0为不分频,1为2分频,2为4分频,3为8分频。(默认不分频)。
iv. XT5V:此位设置为0。
v. RSELx:3位控制某个内部电阻以决定标称频率。为0为最低,依次增加,7为最高。(默认为4。)(由DCO默认值为3,RSELx默认值为4可以推算出DCO的默认频率为1000kHz左右。注意DCO的频率不稳定。)
c) 基本时钟系统控制寄存器2 BCSCTL2
i. SELMx:选择MCLK时钟源,0为DCOCLK,1为DCOCLK,2为TX2CLK,3为LFTXT1CLK。(默认为DCO)
ii. DIVMx:选择MCLK分频,0为1分频,1为2分频,2为4分频,3为8分频。(默认1分频)
iii. SELS:选择SMCLK时钟源,0为DCO,1为TX2CLK(默认DCO)
iv. DIVSx:选择SMCLK分频,0为1分频,1为2分频,2为4分频,3为8分频。(默认为1分频,即SMCLK与MCLK一样)
v. DCOR:选择DCO电阻,0为内部电阻,1为外部电阻
d) SFR中断使能寄存器1
i. IE1是中断允许寄存器,IE1.1是振荡器故障中断允许位OFIE,置位表示允许中断,复位表示不允许中断。
e) SFR中断标志寄存器1
i. IFG1是中断标志寄存器,IFG1.1是振荡器故障中断标志位OF1FG,置位表示有振荡器故障,复位表示没有发生故障。
10. PUC信号后DCOCLK被自动选作MCLK时钟信号,根据需要MCLK的时钟源可以另外设置为LFXT1或者XT2.顺序如下:
a) 复位OSCOFF
b) 清除OFIFG
c) 延时等待至少50us
d) 再检查OFIFG,如果置位,则重复3,4步,直到OFIFG=0
e) 代码:
do
{
IFG1 &=~OFIFG;
for(I = 0xff;i> 0;i --);
}
while((IFG1 & OFIFG) != 0);
上一篇:MSP430学习笔记(4)ADC12
下一篇:MSP430学习笔记(2)定时器A
推荐阅读最新更新时间:2024-03-16 14:32