MSP430F149学习笔记之基本时钟模块问题
1. MSP430F149从图一可以看出MSP430F1XX系列单片机的基本时钟模块有三个时钟输入源:
LFXT1CLK:低频时钟源,由32KHZ晶体、标准晶体或者陶瓷谐振器,外部450K~8M的时钟源产生。
XT2CLK:高频时钟源,由标准晶体或者陶瓷谐振器、外部450K~8M的时钟源产生。
DCOCLK:数字控制RC振荡器,经常用作系统和外设的时钟信号,DCOCLK可以用作MCLK和SMCLK,但由于RC振荡器DCO的频率会因温度和电压的不同而变化,导致输出频率不稳定。MSP430F1XX系列单片机的时钟模块则需要通过软件调整DCO频率。
基础时钟模块可以提供三种时钟信号:
ACLK辅助时钟:由LFXT1CLK经1,2,4,8分频后得到,可由软件选作各外围模块的时钟信号,一般用于低速外设。
MCLK 系统时钟:可由软件选择来自LFXT1CLK,XT2CLK,DCOCLK三者之一,然后经1,2,4,8分频得到,主要用于CPU和系统。
SMCLK子系统时钟:可由软件选择来自LFXT1CLK,DCOCLK,或者XT2CLK或DCOCLK(有具体器件决定),然后经过1、2、4、8分频得到。主要用于高速外围模块。
2.低速晶体振荡器
MSP430单片机的每一种该器件中含有低速晶体振荡器(LFXT1),满足了低功耗及使用32 768HZ晶振的要求。晶振只需要经过XIN和XOUT两个引脚连接在一起,不需要其他外部器件。
LFXT1震荡发生器在发生有效PUC信号后开始工作,一次有效PUC信号可以将SR寄存器(状态寄存器)中的OscOff位复位,即允许LFXT1来工作。
LFXT1震荡发生器默认工作在低频模式,即32 768HZ。也可以通过外接450KHZ~8MHZ的高速晶体振荡器或者陶瓷谐振器工作在高频模式,这是两个引脚还要外接电容,电容大小根据晶体或者谐振特性来选择。
如果LFXT1CLK信号没有用做SMCLK或MCLK信号,可以用软件将OSOFF位置置位以禁止LFXT1工作。
3.高速晶体振荡器
高速振荡器一般称为第二振荡器XT2,它产生的时钟信号为XT2CLK。其工作特性与果LFXT1振荡器工作在高频模式时类似。如果XT2CLK信号没有用做SMCLK和MCLK时钟信号,可用控制位XT2OFF关闭XT2。
4.DCO振荡器
MSP430单片机的两个外部振荡器产生的时钟信号经过1、2、4、8分频后作为系统主时钟MCLK。当振荡器失效后,DCO振荡器会自动被选为MCLK的时钟源,因此由振荡器失效引起的NMI中断请求可以得到相应,甚至在单片机关闭的情况下也能得到处理。MSP430可以让人已被允许的中断请求在低功耗模式下得到服务,甚至在LPM4模式下(所有振荡器停止工作,CPU、MCLK、SMCLK、ACLK处于禁止状态)。MCLK在中断服务是时自动有效。
DCO振荡器是一个可数字控制的RC振荡器,它的频率随供电电压、环境温度变化而具有一定的不稳定性。MSP430可以通过擦偶偶寄存器软件来增强振荡器频率的稳定性。当DCO信号没有用作SMCLK和MCLK时钟信号时,可以通过控制位SCG0关闭直流发生器,直流发生器消耗的电流定义了DCOCLK的基本频率。
在MSP430F149单片机里面,时钟模块的控制由DCOCTL、BCSCTL1、BCSCTL2这三个寄存器来完成。
(1)、DCO控制寄存器
Bit7 Bit6 Bit5 Bit 4 Bit3 Bit2 Bit1 Bit0
DCO.2 DCO.1 DCO.0 MOD.4 MOD.3 MOD.2 MOD.1 MOD.0
DCO.0~ DCO.2定义8种频率之一,可分段调节DCOCTL频率,相邻两种品茶为10%。而频率由注入直流发生器的电流定义。
MOD.0 ~MOD.4定义在32个DCO周期中插入的Fdco+1周期的个数,而在余下的DCO周期中位Fdoc周期,控制切换DCo和DCO+1选择的两种频率。如果DCO的常数为七,表示已经选择了最高频率,此时MOD.0 ~MOD.4不能进行频率的调整。
(2)基本时钟系统控制寄存器1
Bit7 Bit6 Bit5 Bit 4 Bit3 Bit2 Bit1 Bit0
ST2OFF XTS DIVA.1 DIVA.0 XT5V RSEL.2 RSEL.1 RSEL.0
ST2OFF: 控制XT2振荡器的开启和关闭
ST2OFF=0,XT2振荡器开启;
ST2OFF=1,XT2振荡器关闭。
XTS: 控制LFXT1CLK的工作模式,选择需要结合实际晶振的连接情况。
XTS=0,LFXT1CLK工作在低频模式(默认低频模式);
XTS=1LFXT1CLK工作在高频模式(必须连接相应的高频晶振才行)。
DIVA.1 和DIVA.0控制ACLK分频关系
DIVA.1 DIVA.0 模式
0 0 不分频
0 1 2分频
1 0 4分频
1 1 8分频
XT5V 此位置置0.
RSEL.2、RSEL.1和RSEL.0 三个控制摸个内部电阻以决定标称频率。
000表示最低的标称频率
111表示最高的标称频率
通过RSEL.0~ RSEL.2和DCO.0~ DCO.2调节DCO的频率如图二所示:
(3)基本时钟系统控制寄存器2
Bit7 Bit6 Bit5 Bit 4 Bit3 Bit2 Bit1 Bit0
SELM.1 SELM.0 DIVM.1 DIVM.0 SELS DIVS.1 DIVS.0 DCOR
SELM.1和SELM.0 选择MCLK时钟源。
SELM.1 SELM.0 模式
0 0 时钟源为DCOCLK(默认时钟源)
0 1 时钟源为DCOCLK
1 0 时钟源为XT2CLK
1 1 时钟源为LFXTICLK
DIVM.1和DIVM.0 选择MCLK分频。
DIVM.1 DIVM.0 模式
0 0 1分频(默认MCLK=DCOCLK);
0 1 2分频
1 0 4分频
1 1 8分频
SELS 选择SMCLK时钟源
默认的时钟源为DCOCLK;
DIVS.1 DIVS.0选择SMCLK分频
DIVS.1 DIVS.0 模式
0 0 分频(默认SMCLK=MCLK);
0 1 2分频
1 0 4分频
1 1 8分频
DCOR 选择DCO电阻,内部电阻或外部电阻
PUC信号之后,DCOCLK被自动选做MCLK时钟信号,根据需要,MCLK的时钟源可以另外设置为LFXT1或者XT2,设置顺序如下:
复位OSCOFF;
清楚OFIFG;
演示等待至少50us
再次检查OFIFG,如果仍然复位,则重复3、4步骤,知道OFIFG=0为止。
页:
[1]