MSP430F149的時(shí)鐘系統(tǒng)
MSP430F149有三個(gè)時(shí)鐘源:外部LF(XT1一般為32.768K),HF(XT2一般為8M),內(nèi)部DCO。從時(shí)鐘系統(tǒng)模塊可得到三種時(shí)鐘信號(hào):MCLK,SMCLK,ACLK。
本文引用地址:http://m.butianyuan.cn/article/201611/322340.htm上電默認(rèn)狀況下MCLK,SMCLK信號(hào)來(lái)自DCO,ACLK來(lái)自LF。根據(jù)官方PDF說(shuō)法默認(rèn)狀況下DCO模塊配置為RSELX=4,DCO=3,因此DCO應(yīng)為1M,但示波器實(shí)測(cè)MCLK/SMCLK為680K,測(cè)試溫度約25攝氏度。
標(biāo)注:MCLK主時(shí)鐘、SMCLK子時(shí)鐘、ACLK活動(dòng)時(shí)鐘。
P5.4,P5.5,P5.6的第二功能分別對(duì)應(yīng)MCLK,SMCLK,ACLK時(shí)鐘信號(hào),可用示波器測(cè)量。測(cè)試時(shí)發(fā)現(xiàn)頻率后兩位一直在跳動(dòng),頻率穩(wěn)定度很差。
MSP430系列單片機(jī)選擇晶振為時(shí)鐘源時(shí),時(shí)鐘周期就是晶振周期。一個(gè)機(jī)器周期 =一個(gè)時(shí)鐘周期,即430每個(gè)動(dòng)作都能完成一個(gè)基本操作; 一個(gè)指令周期 = 1~6個(gè)機(jī)器周期,具體根據(jù)具體指令而定。 如果選擇8M晶振,則一個(gè)機(jī)器周期為125ns。51單片機(jī)選擇12M晶振,它的機(jī)器周期是時(shí)鐘周期/12,一個(gè)機(jī)器周期為1us,可見(jiàn) MSP430的的速度是51的8倍。
2、使用方法概述
2.1 程序架構(gòu)
一般在系統(tǒng)初始化關(guān)閉看門(mén)狗后要配置系統(tǒng)時(shí)鐘,配置步驟為:
1、打開(kāi)晶振;
2、等待晶振起振。清除OFIFG,延時(shí),判斷OFIFG是否為0,為0則晶振正常起振,退出判斷;
3、選擇MCLK/SMCLK時(shí)鐘源;
uchar iq0;
BCSCTL1&=~XT2OFF; //打開(kāi)XT2振蕩器
do
{
IFG1 &= ~OFIFG; // 清除振蕩器失效標(biāo)志
for (iq0 = 0xFF; iq0 > 0; iq0--); // 延時(shí),等待XT2起振
}
while ((IFG1 & OFIFG) != 0); // 判斷XT2是否起振
BCSCTL2 =SELM_2+SELS; //選擇MCLK、SMCLK為XT2
2.2 細(xì)節(jié)描述
對(duì)于DCO可以通過(guò)配置電阻和DCO得到不同的頻率。電阻可配置片內(nèi)或片外(DCOR一般片內(nèi)),片內(nèi)電阻有8中選擇(RSELX),DCO有8中選擇(DCOX)。
3、相關(guān)寄存器
1、DCOCTL
DCOx Bits
7-5
DCO frequency select. These bits select which of the eight discrete DCO
frequencies of the RSELx setting is selected.
2、BCSCTL0
XT2OFF Bit 7 XT2 off. This bit turns off the XT2 oscillator
0 XT2 is on
1 XT2 is off if it is not used for MCLK or SMCLK.
RSELx Bits
2-0
Resistor Select. The internal resistor is selected in eight different steps.
The value of the resistor defines the nominal frequency. The lowest
nominal frequency is selected by setting RSELx=0.
3、BCSCTL0
SELMx Bits
7-6
Select MCLK. These bits select the MCLK source.
00 DCOCLK
01 DCOCLK
10 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK when XT2
oscillator not present on-chip.
11 LFXT1CLK
SELS Bit 3 Select SMCLK. This bit selects the SMCLK source.
0 DCOCLK
1 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK when XT2
oscillator not present on-chip.
DCOR Bit 0 DCO resistor select
0 Internal resistor
1 External resistor
4、實(shí)例
4.1 配置MCLK/SMCLK
見(jiàn)本節(jié)2.1。
4.2配置DCO
void main(void)
{
WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer
DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO
BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
BCSCTL2 |= SELS; // SMCLK = XT2
P5DIR |= 0x70; // P5.6,5,4 outputs
P5SEL |= 0x70; // P5.6,5,5 options
while(1)
{
}
}
實(shí)測(cè)DCO最低128K,最高4.58M。
評(píng)論