MSP430学习笔记(3)时钟模块
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学习笔记时钟模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)