MSP430學(xué)習(xí)筆記(3)時鐘模塊
2.時鐘模塊產(chǎn)生3個輸出結(jié)果:ACLK(輔助時鐘),MCLK(主系統(tǒng)時鐘)和SMCLK(子系統(tǒng)時鐘)。
本文引用地址:http://butianyuan.cn/article/201611/322337.htm3.MSP430采用鎖頻環(huán)FLL以及鎖頻環(huán)增強(qiáng)版本FLL+等部件將晶體頻率倍頻至系統(tǒng)頻率。數(shù)字控制振蕩器DCO和鎖頻環(huán)FLL計數(shù)相結(jié)合可實現(xiàn)快速啟動。在晶體振蕩器失效時DCO可自動用于系統(tǒng)時鐘。
4.3個時鐘輸入源:
a)LFXT1CLK:低頻時鐘源
b)XT2CLK:高頻時鐘源
c)DCOCLK:數(shù)字控制RC振蕩器
5.3種時鐘信號
a)ACLK:由LFXT1CLK信號經(jīng)1、2、4、8分頻后得到。ACLK可由軟件選做各外圍模塊的時鐘信號,一般用于低俗外設(shè)。
b)MCLK:由軟件選擇來自LFXT1CLK、XT2CLK、DCOCLK,然后經(jīng)過1、2、4、8分頻得到。MCLK主要用于CPU和系統(tǒng)。
c)SMCLK:可由軟件選擇來自LFXT1CLK和DCOCLK,然后經(jīng)過1、2、4、8分頻得到。SMCLK主要用于高速外圍模塊。
6.低速晶體振蕩模塊LFXT1
a)接手表晶振(32768Hz)時直接接在XIN和XOUT兩個腳上,不需要其他外部器件,所有保持工作穩(wěn)定的原件和移相電容都集成在芯片中。
b)也可通過外接450kHz~8MHz的高速晶體振蕩器來工作在高頻模式,這時兩個引腳要外接電容。
7.高速晶體振蕩器XT2
a)MSP430外接高速晶體振蕩器XT2的頻率為450kHz~8MHz。
8.DCO振蕩器
a)當(dāng)LFXT1和XT2失效時,DCO振蕩器會自動被選作MCLK的時鐘源。振蕩器失效引起的NMI中斷請求可以得到響應(yīng),甚至在CPU關(guān)閉的情況下也可以。
b)DCO振蕩器是一個可數(shù)字控制的RC振蕩器,它的頻率隨供電電壓和溫度變化而具有一定的不穩(wěn)定性。MSP430可以通過操作控制寄存器軟件調(diào)節(jié)來增強(qiáng)振蕩頻率的穩(wěn)定性。
9.時鐘模塊寄存器
a)DCO控制寄存器DCOCTL
i.DCOx:定義8種頻率之一,可分段調(diào)節(jié)DCOCLK的頻率,相鄰兩頻率相差10%。而頻率由注入直流發(fā)生器的電流定義。(默認(rèn)為3)。
ii.MODx:定義在32個DCO周期中插入的fdco+1的個數(shù),而在余下的DCO周期中為fdco周期,控制切換DCO和DCO+1兩種頻率。如果DCO常數(shù)為7,表示已經(jīng)選擇最高頻率,此時不能利用MODx進(jìn)行頻率調(diào)整。
b)基本時鐘系統(tǒng)控制寄存器1 BCSCTL1
i.XT2OFF: 0使XT2開啟,1使XT2關(guān)閉。(默認(rèn)關(guān)閉)
ii.XTS:控制LFXT1的工作模式,選擇須結(jié)合實際晶體振蕩器的連接情況。為0時工作在低頻,為1時工作在高頻。(默認(rèn)為低頻,在高頻時必須連接相應(yīng)的高頻時鐘源)。
iii.DIVAx:控制ACLK分頻。0為不分頻,1為2分頻,2為4分頻,3為8分頻。(默認(rèn)不分頻)。
iv.XT5V:此位設(shè)置為0。
v.RSELx:3位控制某個內(nèi)部電阻以決定標(biāo)稱頻率。為0為最低,依次增加,7為最高。(默認(rèn)為4。)(由DCO默認(rèn)值為3,RSELx默認(rèn)值為4可以推算出DCO的默認(rèn)頻率為1000kHz左右。注意DCO的頻率不穩(wěn)定。)
c)基本時鐘系統(tǒng)控制寄存器2 BCSCTL2
i.SELMx:選擇MCLK時鐘源,0為DCOCLK,1為DCOCLK,2為TX2CLK,3為LFTXT1CLK。(默認(rèn)為DCO)
ii.DIVMx:選擇MCLK分頻,0為1分頻,1為2分頻,2為4分頻,3為8分頻。(默認(rèn)1分頻)
iii.SELS:選擇SMCLK時鐘源,0為DCO,1為TX2CLK(默認(rèn)DCO)
iv.DIVSx:選擇SMCLK分頻,0為1分頻,1為2分頻,2為4分頻,3為8分頻。(默認(rèn)為1分頻,即SMCLK與MCLK一樣)
v.DCOR:選擇DCO電阻,0為內(nèi)部電阻,1為外部電阻
d)SFR中斷使能寄存器1
i.IE1是中斷允許寄存器,IE1.1是振蕩器故障中斷允許位OFIE,置位表示允許中斷,復(fù)位表示不允許中斷。
e)SFR中斷標(biāo)志寄存器1
i.IFG1是中斷標(biāo)志寄存器,IFG1.1是振蕩器故障中斷標(biāo)志位OF1FG,置位表示有振蕩器故障,復(fù)位表示沒有發(fā)生故障。
10.PUC信號后DCOCLK被自動選作MCLK時鐘信號,根據(jù)需要MCLK的時鐘源可以另外設(shè)置為LFXT1或者XT2.順序如下:
a)復(fù)位OSCOFF
b)清除OFIFG
c)延時等待至少50us
d)再檢查OFIFG,如果置位,則重復(fù)3,4步,直到OFIFG=0
e)代碼:
do
{
IFG1 &=~OFIFG;
for(I = 0xff;i> 0;i --);
}
while((IFG1 & OFIFG) != 0);
評論