MSP430x4xx系列微控制器的獨(dú)特時(shí)鐘設(shè)計(jì)
微控制器時(shí)鐘系統(tǒng)的設(shè)計(jì)對于系統(tǒng)的全局性能是十分關(guān)鍵的。為了得到廉價(jià)、準(zhǔn)確而穩(wěn)定的時(shí)鐘,在大多數(shù)情況下,可采用石英晶體或者是陶瓷振蕩器作為參考時(shí)鐘。這些器件的典型工作頻率范圍為100kHz到10MHz。然而,它們都有一些缺點(diǎn),即振蕩器消耗的電流會(huì)隨振蕩器的振蕩頻率的增加而增加,因此,若采用的石英晶體振蕩器具有高Q值,那么,在系統(tǒng)上電后,將需要一個(gè)較長的時(shí)間才能使頻率和幅度達(dá)到穩(wěn)態(tài),所以,石英晶體振蕩器不能為中斷提供快速的響應(yīng)。
對于一個(gè)電池供電的系統(tǒng),最基本的要求就是功耗要低。但同時(shí)又會(huì)出現(xiàn)一些相互矛盾的問題,因?yàn)椴捎玫皖l時(shí)鐘雖然可以達(dá)到節(jié)能和延長電池使用時(shí)間的要求,但采用高頻時(shí)鐘卻可以實(shí)現(xiàn)對事件的快速反應(yīng),并增強(qiáng)處理突發(fā)事件的能力;另外,在某些情況下,還會(huì)要求時(shí)鐘具有很高的穩(wěn)定度。
由于MSP430x4xx系列微控制器是采用一個(gè)增強(qiáng)型的鎖頻環(huán)FLL+(Frequency-Locked Loop Plus)來為系統(tǒng)提供時(shí)鐘,因此,可以較好地解決以上矛盾,從而使系統(tǒng)成本、功耗、處理能力以及穩(wěn)定度得到了進(jìn)一步的優(yōu)化。
1 MSP430微控制器簡介
MSP430系列是由美國德州儀器(TI)公司推出的16位超低功耗微控制器。該系列微控制器具有處理能力強(qiáng)、運(yùn)行速度快、指令簡單、功耗低等優(yōu)點(diǎn),并具有靈活而簡單的外圍設(shè)備,由于采用了JTAG技術(shù)、FLASH在線編程技術(shù)、 BOOTSTRAP等諸多先進(jìn)技術(shù),因此具有很高的性價(jià)比。MSP430系列器件采用3V電源供電,工作頻率為1MHz,其單周期16位指令的速度可以達(dá)到1MIPS(million instructions persecond),電流消耗僅為400μA。事實(shí)上,MSP430從低功耗模式3(電流消耗僅為1.5μA)到完全激活狀態(tài)僅需6μs,因此可以很好地實(shí)時(shí)處理中斷。MSP430的這些優(yōu)越的特點(diǎn)主要源于它兩方面的設(shè)計(jì),即16位精簡指令體系結(jié)構(gòu)和獨(dú)特的時(shí)鐘系統(tǒng)。
MSP430x4xx系列產(chǎn)品的時(shí)鐘系統(tǒng)采用FLL而沒有采用傳統(tǒng)的PLL(Phase-Locked Loop)設(shè)計(jì),這主要是考慮到FLL能夠快速的啟動(dòng)并達(dá)到穩(wěn)定。PLL達(dá)到鎖定狀態(tài)需要幾百甚至上千個(gè)時(shí)鐘周期,而FLL+經(jīng)過預(yù)先準(zhǔn)確設(shè)置后,可以在系統(tǒng)啟動(dòng)時(shí)立即鎖定,從而為快速響應(yīng)中斷提供了保障。并且PLL通常是用模擬元件來實(shí)現(xiàn)的,因此需要不斷的消耗能量。而FLL是純數(shù)字系統(tǒng),可以用軟件來控制。它在非激活模式下,其電流消耗為0。
2 FLL+模塊的組成
MSP430x4xx系列的FLL+時(shí)鐘模塊是MSP430x3xx系列FLL結(jié)構(gòu)的一種擴(kuò)展,但卻與MSP430x1xx系列的時(shí)鐘系統(tǒng)有很大的不同,后者沒有硬件FLL,因此,要想獲得較精確的時(shí)鐘,需用軟件進(jìn)行DCO頻率校準(zhǔn),這也就是所謂的“軟鎖頻”。由于FLL+支持的頻率范圍更大,因而可以采用手表晶振或者高頻晶振。圖1所示是FLL+模塊的基本組成,從圖中可以看出: FLL+主要由LFXT1振蕩器、LFXT2振蕩器、DCO振蕩器和鎖頻環(huán)以及時(shí)鐘緩沖輸出組成。
2.1 LFXT1振蕩器
LFXT1產(chǎn)生的信號稱為 ACLK。通過配置與之相關(guān)的寄存器和外接不同的晶體或者諧振器,LFXT1可以工作在兩種操作模式:低頻或高頻模式。低頻通常采用32768Hz的手表晶振,高頻的頻率范圍則為455kHz~8MHz。在絕大多數(shù)情況下,LFXT1運(yùn)行于低頻模式,其主要原因如下:
(1)工作頻率低,功耗小。在進(jìn)入低功耗模式3時(shí),只有手表晶振處于激活狀態(tài)。此時(shí)典型的電流消耗僅為1.5μA;
(2)穩(wěn)定度高;
(3)價(jià)格低廉;
(4)體積小;
(5)電路簡單,外接手表晶振時(shí),不需要外接電容。
因手表晶振的功耗很小,所以它可以連續(xù)工作,這樣就避免了啟動(dòng)和穩(wěn)定所需要的時(shí)延。并且32768Hz的時(shí)鐘一直有效也意味著當(dāng)其它系統(tǒng)處于關(guān)閉狀態(tài)時(shí),系統(tǒng)的一些片上外圍設(shè)備可以繼續(xù)處于激活狀態(tài)。例如,LCD或者用作實(shí)時(shí)時(shí)鐘的某一個(gè)定時(shí)器等都可以處于激活狀態(tài)。
在有特別需要的情況下,LFXT1也可以通過外接高速晶體或者諧振器工作于高頻模式。不過此時(shí)需要外接電容。
2.2 LFXT2振蕩器
LFXT2為高頻振蕩器,其工作頻率也為455kHz~8MHz。LFXT2結(jié)構(gòu)比較簡單,若是系統(tǒng)需要穩(wěn)定度很高的高頻時(shí)鐘可以采用它,不需要時(shí)可以通過軟件將其關(guān)閉。不過高頻振蕩器的兩個(gè)引腳必須要接外部電容。
2.3 DCO振蕩器和鎖頻環(huán)(FLL)
MSP430x4xx系列FLL+模塊的DCO(Digitally-Controlled Oscillator)振蕩器是一個(gè)集成的RC振蕩器。產(chǎn)生的時(shí)鐘信號稱為DCOCLK,經(jīng)過FLL調(diào)節(jié)和校準(zhǔn)后可用作系統(tǒng)時(shí)鐘(MCLK)和外圍設(shè)備的時(shí)鐘(SMCLK)。這個(gè)模塊是整個(gè)時(shí)鐘系統(tǒng)的核心。其基本結(jié)構(gòu)如圖2所示。
2.4時(shí)鐘緩沖輸出
由于MSP430提供有時(shí)鐘緩沖輸出(見圖1)。因此可以通過軟件編程來控制其分頻比FLL DIV,以對ACLK進(jìn)行1、2、4、8等分頻。分頻后的輸出可以用來為外圍電路提供時(shí)鐘。
3 FLL+的工作原理
對于RC振蕩器,由于其頻率會(huì)隨溫度和電壓的變化而變化,因此在對時(shí)鐘精度要求較高的情況下,DCOCLK通常要通過FLL進(jìn)行校頻后,才能用于系統(tǒng)時(shí)鐘。
3.1倍頻方案
在需要較高數(shù)據(jù)處理速度時(shí),ACLK就不能單獨(dú)勝任,在這種情況下,就要用到倍頻技術(shù)。為了支持更大范圍的頻率變化,F(xiàn)LL+的倍頻方案增加了DCO+控制位。當(dāng)DCO+取0、1時(shí),fDCOCLK輸出時(shí)鐘頻率不同,具體如下:
[!--empirenews.page--]
式中,fACLK取32768Hz。可見,通過改變N、D和DCO+,可以很容易地調(diào)節(jié)用作MCLK/SMCLK的DCO頻率。但要注意,最后得到的MCLK不能超過器件的工作頻率。
3.2頻率抽頭
DCO的輸出時(shí)鐘為DCOCLK,這個(gè)時(shí)鐘被(D×(N+1))分頻后應(yīng)與ACLK進(jìn)行比較。若DCOCLK用于系統(tǒng)時(shí)鐘MCLK,則同步器將對 ACLK和MCLK/(D×(N+1))進(jìn)行比較,然后用比較所得的差值來對一個(gè)10位的頻綜器進(jìn)行“up”或者“down”模式計(jì)數(shù)。這樣, MCLK/SMCLK就可以在1024種可能的設(shè)置上不斷地進(jìn)行調(diào)節(jié)。一旦頻率被鎖定,同步器輸出的誤差信號就變?yōu)?,此時(shí)有MCLK=N×ACLK。在頻綜器的10位輸出中,5位用于DCO頻率抽頭(NDCO),另外的5位用于頻率調(diào)整(NDCOMOD)。5個(gè)抽頭可組成29種頻率(28,29,30和31抽頭是一樣的),每一個(gè)抽頭比前一個(gè)要高約10%。
明顯可以看到:DCO只能產(chǎn)生一些離散的頻率分量。所以說僅僅依靠改變N、D和DCO+無法使同步器的輸出達(dá)到嚴(yán)格的0。
3.3頻率調(diào)整
DCO頻率調(diào)整器的作用是通過混合相鄰的DCO周期來減小長期的累計(jì)周期變化。換句話說,就是通過控制fn+1在一個(gè)調(diào)整周期內(nèi)所占的比率來減小輸出頻率與所需頻率之間的誤差。具體的頻率調(diào)整器跳變模式如圖3所示。圖中,調(diào)整器以32個(gè)DCO時(shí)鐘周期為一個(gè)周期。NDCOMOD可用于定義需要混合的fn+1的比例常數(shù)。
下面的公式定義了DCO長期輸出頻率與相鄰跳變頻率之間的關(guān)系:
由此可見,頻率調(diào)整器通過為每個(gè)DCO周期獨(dú)立地選擇fn或者fn+1,來調(diào)整DCO的輸出頻率,進(jìn)而實(shí)現(xiàn)分?jǐn)?shù)抽頭的目的。
[!--empirenews.page--]
必須明確的是,MCLK的精度只是建立在平均的基礎(chǔ)上。對于短期精度,由于每個(gè)周期來自相鄰的DCO頻率抽頭,因此是不精確的;而對于長期精度,由于經(jīng)過了累加平均,因而相對誤差被減小了。實(shí)際上,由于調(diào)整器的周期為32,每次調(diào)整量為每一頻率段的10%,因此相對誤差可降到低于0.33%。
也可以通過軟件編程N(yùn)DCOMOD來確定DCO的輸出頻率,以便用FLL鎖頻時(shí)達(dá)到快速鎖定的目的;而在不用FLL時(shí),可不用外部晶振來產(chǎn)生所需頻率。假如所需頻率f為100Hz,并假定DCO在0抽頭時(shí)的頻率為f0=700Hz。則與f相鄰的兩個(gè)頻率為:
將這兩個(gè)頻率代入上面的公式中,便可以求得NDCOOD=24。所以,若DCO中心頻率為1MHz,那么,將24寫入與NDCOMOD相應(yīng)的寄存器中,即可在無外接晶振的條件下獲得所需時(shí)鐘。在這種應(yīng)用條件下,需要注意幾點(diǎn):
●FLL和調(diào)整器在系統(tǒng)復(fù)位時(shí)默認(rèn)為允許,要工作在這種狀態(tài),必須首先禁止FLL。否則DCO會(huì)自動(dòng)鎖定到f0;
●f0是不確定的,在具體應(yīng)用時(shí)應(yīng)先測定,然后再用它來計(jì)算所需的相鄰頻率。
●由于DCO的輸出頻率會(huì)隨著穩(wěn)定度和電壓的變化而漂移,所以不能應(yīng)用于對時(shí)鐘精度要求較高的場合。
3.4 DCO頻率范圍控制
在通過調(diào)節(jié)倍頻因子N改變MCLK時(shí),F(xiàn)LL+調(diào)節(jié)DCO的頻率將趨于目標(biāo)頻率。當(dāng)MCLK穩(wěn)定在新的頻率抽頭之前,每向下一個(gè)DCO抽頭,其變化一次需要1024個(gè)時(shí)鐘周期的延時(shí)??梢钥吹?,對于MCLK的大范圍頻率變化,將需要很大的時(shí)延才能達(dá)到穩(wěn)定。對此,MSP430x4xx系列采用了一種頻率分段的機(jī)制來處理這種大范圍的頻率變化。即將DCO輸出的700kHz~40MHz分為5段,每一段的中心頻率基于典型頻率fnominal(2MHz)的倍數(shù)。使用時(shí)可以通過控制寄存器SCFI0的FN_8、FN_4、FN_3、FN_2等四位對它進(jìn)行控制。表1列出了DCO的頻率范圍控制方法。由表中可見,通過控制這些位可在不改變當(dāng)前抽頭設(shè)置的情況下改變DCO的輸出頻率MCLK(實(shí)際上是立即選擇了相鄰的抽頭,而不是逐個(gè)調(diào)節(jié))。因此,在這種方式下,DCO調(diào)節(jié)到所需頻率的時(shí)間比僅僅通過調(diào)節(jié)倍頻因子要短得多。所以首先應(yīng)根據(jù)所需頻率來調(diào)整DCO的中心頻率,或者在MCLK變化較大時(shí)及時(shí)調(diào)節(jié) DCO的中心頻率。
4用FLL+優(yōu)化系統(tǒng)性能
MSP430x4xx正是由于采用了上述FLL+時(shí)鐘模塊,才使它的全局性能得到了優(yōu)化。同時(shí),它還提供有靈活的時(shí)鐘配置選擇,各個(gè)模塊的時(shí)鐘都可用軟件選擇。也可以根據(jù)系統(tǒng)的具體要求來動(dòng)態(tài)調(diào)整系統(tǒng)的時(shí)鐘頻率,進(jìn)而優(yōu)化它的性能。 使用時(shí),一般可按照以下原則來進(jìn)行:
●若需要穩(wěn)定而精確的低頻時(shí)鐘,可以采用LFXT1時(shí)鐘;
●若需要穩(wěn)定而精確的高頻時(shí)鐘,可以采用LFXT2時(shí)鐘;
●若需要系統(tǒng)能夠快速地從節(jié)能模式切換到激活模式,可以采用DCO經(jīng)鎖頻后為系統(tǒng)提供時(shí)鐘MCLK/SMCLK。FLL+的一個(gè)突出優(yōu)點(diǎn)就是能夠快速地達(dá)到穩(wěn)定狀態(tài)。
設(shè)計(jì)時(shí),要盡可能地選擇較低的工作頻率來降低系統(tǒng)的功耗。此外,系統(tǒng)還提供有5種可編程的節(jié)能模式,以便更好地降低系統(tǒng)功耗。
另外,F(xiàn)LL+的振蕩器具有自動(dòng)切換功能,當(dāng)DCO沒有用于MCLK或SMCLK時(shí),利用該功能可自動(dòng)關(guān)閉DCO。但是一旦DCOCLK信號被用于 MCLK/SMCLK,DCO就會(huì)立即自動(dòng)開啟。而當(dāng)外接晶振或者諧振器出現(xiàn)錯(cuò)誤或停振時(shí),系統(tǒng)時(shí)鐘也會(huì)自動(dòng)切換到DCO模式,從而進(jìn)一步提高系統(tǒng)的可靠性。
參考文獻(xiàn)
1.MSP430x4xx Family User's Guide(SLAU056B)
2.The MSP430x3xx Clock System(SLAA080)
3.胡大可.MSP430系列FLASH型超低功耗16位單 片機(jī).北京航空航天大學(xué)出版社,2001