一. MSP430 时钟基础知识了解
(1) 在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数。如果MCLK是8MHz,则一个时钟周期为1/8us。
一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基本操作。
一个指令周期 = 1~6个机器周期,具体根据具体指令而定。
另外,指令长度只是一个存储单位,与时间没有必然的关系。
(2) MSP430单片机的时钟模块主要包括:
三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK
三个振荡器:低频时钟源LFXT1 、高频时钟源XT2 、数字控制RC振荡器DCO
而MSP430单片机工作所需时钟就是由这些振荡器振荡后经处理产生的。
a. ACLK:是LFXT1CLK信号经1/2/4/8分频后得到的,主要用作低速外围的时钟;
b. MCLK:是LFXT1CLK,XT2CLK,DCOCLK的三者之一决定,由软件选择,然后经1/2/4/8分频后得到,主要用于CPU和系统;
c. SMCLK:可由LFXT1CLK和DCOCLK,或者XT2CLK与DCOCLK决定,然后经1/2/4/8分频后得到,主要用于高速外围模块;
二. 时钟信号
1. MCU运转的时钟源:MCLK(Main System Clock), 从图1-1可以看出有三路:一路来自于XT1,另一路来自XT2,第三路来自DCOCLK,至于具体选哪路,我们就要配置BCSCTL2(Basic Clock System Control):
如果你现在还在疑问有些书上说的默认MCLK = 1M,原因是默认选择的是DCOCLK,DCOCLK是msp430内部集成的数控晶振,默认为1M,最高可以配置成10M,这个我们后面再说!我们通常选择的是XT2高速时钟,稳定期间如果是msp430f14x的话,建议选择的时候再450K~8M直接,这属于稳定的范围!
所以我们的配置如下:BCSCTL2 |= SELM1;
这时候只是配置了主时钟(MCLK),但是我们经常在外设中要用到SMCLK,或者是ACLK;
ACLK的时钟源为XT1,一般都是接的32768Hz的晶振,我们也可以对他进行1/2/4/8分频;
SMCLK有两个时钟源,一个是DCOCLK,另一个是XT2,至于具体想选哪个那就看你自己了,具体配置在BCSCTL2,默认是选择DCOCLK;
使用DCOCLK缺点是不是很稳定,优点是输出频率可调,当我们在用到可变频率的时候我们就可以使用DCOCLK!
选择XT2就这样配置:BCSCTL2 |= SELS;//默认为8M的输出,当然我们也可以进行1/2/4/8分频;