低功耗模式下微控制器時(shí)鐘配置應(yīng)用
1 MC9S08QG8及其內(nèi)部時(shí)鐘模塊介紹
微控制器MC9S08QG8是飛思卡爾公司新推出的一款8位增強(qiáng)型微控制器。它是小封裝、低功耗的產(chǎn)品,但這并不意味著它是“低端”的產(chǎn)品;相反,它是一個(gè)高度集成的、功能豐富的、適用于各種應(yīng)用的低價(jià)位單片機(jī)。MC9S08QG8采用高性能、低功耗的HCS08內(nèi)核,具有很高的集成度,還包括更長(zhǎng)的電池壽命(即使工作電壓低至1.8V,也能發(fā)揮最大效能)、業(yè)界領(lǐng)先的Flash技術(shù)以及創(chuàng)新的開發(fā)支持。MC9S08QG8集成了背景調(diào)試系統(tǒng)(BDM)以及可進(jìn)行實(shí)時(shí)總線捕捉的內(nèi)置在線仿真(ICE)功能,具有單線的調(diào)試及仿真接口。
MC9S08QG8微控制器的運(yùn)行模式有很多種,包括正常運(yùn)行模式、等待模式、背景調(diào)試模式以及停止模式。其中,與低功耗應(yīng)用關(guān)系密切的停止模式又分為3個(gè)階段:
停止模式l——內(nèi)部電路全部斷電,以最大限度地節(jié)省電源;
停止模式2——可選擇部分?jǐn)嚯?,RAM內(nèi)容保持;
停止模式3——內(nèi)部電路都可快速恢復(fù)運(yùn)行,RAM、Flash內(nèi)容保持。
MC9S08QG8內(nèi)部時(shí)鐘模塊由4個(gè)子模塊組成:鎖頻環(huán)、內(nèi)部參考時(shí)鐘、外部振蕩器、時(shí)鐘選擇邏輯模塊,如圖l所示。
鎖頻環(huán)的輸出頻率為參考時(shí)鐘頻率的512倍,包括3個(gè)主要部分:參考頻率選擇、數(shù)字控制振蕩器和用于比較這兩個(gè)部分輸出的濾波器。
鎖頻環(huán)是通過(guò)比較數(shù)字控制振蕩器時(shí)鐘與參考時(shí)鐘的頻率來(lái)工作的。鎖頻環(huán)對(duì)一個(gè)參考時(shí)鐘周期內(nèi)的數(shù)字控制振蕩器時(shí)鐘脈沖邊沿?cái)?shù)進(jìn)行計(jì)數(shù),因此,對(duì)于512倍的倍頻器,鎖頻環(huán)應(yīng)該在參考時(shí)鐘的每?jī)蓚€(gè)上升沿之間得到512個(gè)數(shù)字控制振蕩器輸出的上升沿。鎖頻環(huán)的實(shí)現(xiàn)大多借助數(shù)字邏輯電路,不需要外部濾波器件。
內(nèi)部參考時(shí)鐘是一個(gè)可調(diào)整的內(nèi)部參考時(shí)鐘信號(hào),既可用作鎖頻環(huán)的參考時(shí)鐘,也可直接用作CPU和總線時(shí)鐘的時(shí)鐘源。這個(gè)內(nèi)部參考時(shí)鐘不需要諸如調(diào)整電容或電阻等外部元件。內(nèi)部參考時(shí)鐘由寄存器中的一個(gè)9位數(shù)值進(jìn)行調(diào)整,解析度典型值能達(dá)到未調(diào)整內(nèi)部參考時(shí)鐘頻率的O.1%。與許多其他的內(nèi)部參考時(shí)鐘不同,這個(gè)內(nèi)部參考時(shí)鐘可將頻率在一定范圍內(nèi)進(jìn)行調(diào)整,從31.25 kHz變到39.06 kHz。當(dāng)用作鎖頻環(huán)的參考時(shí)鐘時(shí),允許用戶用O.1%的解析度,把總線頻率設(shè)定為8 MHz~10 MHz的任意值。
實(shí)際上,外部振蕩器參考時(shí)鐘把三個(gè)外部時(shí)鐘源合并在一個(gè)里面。它有一個(gè)采用32 kHz~38.4 kHz晶振或諧振器的低頻振蕩器,還有一個(gè)采用1 MHz~16 MHz晶振或諧振器的高頻振蕩器。這兩個(gè)振蕩器需要兩個(gè)引腳(即XTAL和EXTAL)來(lái)生成時(shí)鐘信號(hào)。外部振蕩器還有一種外部時(shí)鐘模式。該模式簡(jiǎn)單地把一個(gè)外部時(shí)鐘信號(hào)引入MCU。在此模式中,只需要EXTAL腳,而XTAL腳可用作通用I/O。輸入頻率可以是OHz~20MHz之間的任意值。由于引腳的限制,有些MCU可能沒(méi)有外部振蕩器。
時(shí)鐘選擇邏輯只是簡(jiǎn)單地選擇鎖頻環(huán)、外部參考時(shí)鐘或內(nèi)部參考時(shí)鐘作為內(nèi)部時(shí)鐘源模塊的輸出。此外,還采用了一個(gè)時(shí)鐘分頻器電路,可以對(duì)輸出進(jìn)行1倍、2倍、4倍或8倍分頻,用以降低輸出時(shí)鐘的頻率。
2 內(nèi)部時(shí)鐘源的工作模式
2.1 關(guān)斷模式
當(dāng)進(jìn)入微控制器的任何一種低功耗停止模式時(shí),內(nèi)部時(shí)鐘源模塊將被關(guān)斷。在關(guān)斷模式中,鎖頻環(huán)是關(guān)閉的,以節(jié)省功耗;然而,在停止3模式中,可以選擇將外部參考時(shí)鐘、內(nèi)部參考時(shí)鐘或二者都保持在運(yùn)行狀態(tài)。這項(xiàng)功能使某些模塊可以在停止3模式中繼續(xù)運(yùn)行。比如,實(shí)時(shí)中斷模塊等,它能繼續(xù)用外部參考時(shí)鐘作為其參考時(shí)鐘。如果在應(yīng)用中沒(méi)有需要繼續(xù)使用的模塊,參考時(shí)鐘應(yīng)關(guān)閉,以得到最低的運(yùn)行功耗。
2.2 FEI模式
FEI(FLL啟用、選用內(nèi)部參考時(shí)鐘)模式是芯片復(fù)位后的缺省模式,鎖頻環(huán)處于運(yùn)行狀態(tài)可驅(qū)動(dòng)CPU和總線時(shí)鐘,采用內(nèi)部時(shí)鐘源作為其參考時(shí)鐘。FEI模式下的總線頻率可按下式計(jì)算:
MC9S08QG8的內(nèi)部參考時(shí)鐘頻率可以在3l.25kHz~39.06 kHz的范圍內(nèi)進(jìn)行調(diào)整,因此經(jīng)過(guò)512倍頻后,可以輸出16 MHz~20MHz。與其他同類產(chǎn)品不同的是,在復(fù)位發(fā)生后,上述時(shí)鐘分頻器會(huì)給輸出時(shí)鐘一個(gè)強(qiáng)制的2分頻。這是為了在內(nèi)部時(shí)鐘模塊未經(jīng)調(diào)整且運(yùn)行頻率高于31.25kHz的時(shí)候,對(duì)系統(tǒng)提供保護(hù)。如果運(yùn)行頻率高于8 MHz,就超出了MC9S08QG8低電壓(小于2.1V)的最大頻率規(guī)定值。
每一次上電復(fù)位后,內(nèi)部參考時(shí)鐘都應(yīng)當(dāng)進(jìn)行調(diào)整,以得到精確的頻率。
2.3 FEE模式
FEE(FLL啟用、選用外部參考時(shí)鐘)模式下,鎖頻環(huán)處于運(yùn)行狀態(tài),可驅(qū)動(dòng)CPU和總線時(shí)鐘,采用外部時(shí)鐘源作為其參考時(shí)鐘。為了讓系統(tǒng)正常運(yùn)行,鎖頻環(huán)的輸出要求在16 MHz~20MHz之間。這樣外部參考時(shí)鐘會(huì)受到限制。內(nèi)部時(shí)鐘源模塊有一個(gè)參考時(shí)鐘分頻器,可用于降低外部參考時(shí)鐘的頻率,表l列出了根據(jù)分頻設(shè)置所能容許的外部頻率。
FEI模式下的總線頻率可按下式計(jì)算:
2.4 FBI和FBILP模式
FBI(鎖頻環(huán)旁路、內(nèi)部參考時(shí)鐘)和FBILP(鎖頻環(huán)旁路、內(nèi)部參考時(shí)鐘低功耗)模式均旁路鎖頻環(huán),而直接采用內(nèi)部時(shí)鐘源生成時(shí)鐘信號(hào)。不同之處在于,F(xiàn)BI模式讓鎖頻環(huán)保持運(yùn)行,而FBILP模式則關(guān)閉鎖頻環(huán),從而降低更多的功耗。FBILP是通過(guò)配置為FBI并設(shè)定ICS控制寄存器2(ICSC2)中的LP位來(lái)啟動(dòng)的。
采用FBI而非FBILP的原因之一,是為了采用背景調(diào)試模式(BDM);其二,當(dāng)需要切換到FEI時(shí)可節(jié)省鎖頻環(huán)的鎖定時(shí)間。鎖頻環(huán)必須處于運(yùn)行狀態(tài)才能給背景調(diào)試模式通信提供一個(gè)高速時(shí)鐘源。鎖定時(shí)間的最大規(guī)定值為lms,通常需要約500μs。關(guān)閉鎖頻環(huán)可節(jié)省大約220~310μA的電流。
2.5 FBE和FBELP模式
FBE(FLL旁路、外部參考時(shí)鐘)和FBELP(FLL旁路、外部參考時(shí)鐘低功耗)模式與2.4小節(jié)中的FBI和FBILP模式類似。除了是用外部時(shí)鐘產(chǎn)生時(shí)鐘源,而不是用內(nèi)部時(shí)鐘源外,F(xiàn)LL仍被旁路,LP位則在未啟動(dòng)BDM時(shí)關(guān)閉鎖頻環(huán)。
3 低功耗模式中的內(nèi)部時(shí)鐘源
3.1 停止1和停止2模式
當(dāng)MCU進(jìn)入停止1或停止2模式時(shí),內(nèi)部時(shí)鐘源總是被置于關(guān)斷模式。因此,執(zhí)行STOP指令時(shí)。內(nèi)部時(shí)鐘模塊所處的模式無(wú)關(guān)緊要,也不會(huì)影響處于停止l和停止2期間的功耗。
由于停止1和停止2模式均導(dǎo)致MCU在停止恢復(fù)時(shí)執(zhí)行上電復(fù)位,因此,復(fù)位后的模式總是FEI,總線分頻被設(shè)置為2分頻,產(chǎn)生大約4MHz的總線時(shí)鐘。內(nèi)部時(shí)鐘調(diào)整位ICSTRM將被重置為0x80,微調(diào)寄存器的FTRIM位會(huì)被清零,所以如果要采用內(nèi)部參考時(shí)鐘,則須對(duì)它進(jìn)行重新校準(zhǔn);如果調(diào)整值已保存在Flash存儲(chǔ)器中,則須把保存值重新載入寄存器。
3.2 停止3模式
當(dāng)進(jìn)入停止3模式后,內(nèi)部時(shí)鐘源的大部分(包括鎖頻環(huán))將關(guān)閉。內(nèi)部時(shí)鐘源在執(zhí)行STOP指令時(shí)所處的模式不會(huì)影響停止3的功耗。但是,ICS的兩個(gè)控制位,IREFSTEN和EREFSTEN會(huì)影響停止3的電流。若置1,則IREFSTEN可使IRC在停止3模式中保持啟用狀態(tài);
同樣,若置1,則EREFSTEN可使OSC在停止3模式中保持啟用狀態(tài)。將IREFSTEN置位,將產(chǎn)生約100μA的停止3電流;將EREFSTEN置位,將對(duì)停止3電流產(chǎn)生不同的影響,取決于OSC的頻率和設(shè)置。
如果因復(fù)位而退出停止3,ICS會(huì)像停止1或停止2的恢復(fù)那樣回復(fù)至FEI模式。不同之處是調(diào)整值不會(huì)重置,除非發(fā)生了上電復(fù)位。
4 內(nèi)部時(shí)鐘校準(zhǔn)
系統(tǒng)經(jīng)過(guò)上電復(fù)位后,ICSTRM將被重置為0x80,F(xiàn)TRIM位會(huì)被清零。如果要采用內(nèi)部參考時(shí)鐘,則需要對(duì)其進(jìn)行重新校準(zhǔn)。增大ICSTRM的值,將降低參考時(shí)鐘頻率;相反,減小ICSTRM的值,將提高參考時(shí)鐘頻率。FTRIM置0或1會(huì)更精細(xì)地對(duì)頻率進(jìn)行調(diào)整。根據(jù)這個(gè)原理,內(nèi)部時(shí)鐘校準(zhǔn)的程序流程框圖如圖2所示。
關(guān)于具體的程序町根據(jù)參考文獻(xiàn)編制。待ICGTRM和FTRIM選定后,可存入微控制器的Flash中,下次上電復(fù)位后直接讀取數(shù)值載入即可。
結(jié)語(yǔ)
恰當(dāng)?shù)剡\(yùn)用時(shí)鐘設(shè)置,對(duì)于降低微控制器的功耗有很大幫助。在微控制器各種不同的運(yùn)行模式下,時(shí)鐘都有不同的配置方法與之配合。同樣的方案也適用于功能類似的微控制器。巧妙地運(yùn)用各種時(shí)鐘模式,可以使系統(tǒng)的功耗最低。