<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實(shí)踐 > 低功耗模式下微控制器時鐘配置應(yīng)用

          低功耗模式下微控制器時鐘配置應(yīng)用

          作者:清華大學(xué) 安鵬 時間:2008-01-30 來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

            在微控制器的低功耗應(yīng)用中,對時鐘的設(shè)置是很重要的一個方面。不同類型的微控制器在低功耗模式下對時鐘的配置也各有不同。飛思卡爾公司推出的增強(qiáng)型8位微控制器 HCS08系列具有很強(qiáng)的低功耗性能。其中,HCS08系列里的MC9S08QG8在同類產(chǎn)品的基礎(chǔ)上對低功耗應(yīng)用下的時鐘又有了進(jìn)一步的改進(jìn)。

          本文引用地址:http://www.ex-cimer.com/article/78252.htm

            1 MC9S08QG8及其內(nèi)部時鐘模塊介紹

            微控制器MC9S08QG8是飛思卡爾公司新推出的一款8位增強(qiáng)型微控制器。它是小封裝、低功耗的產(chǎn)品,但這并不意味著它是“低端”的產(chǎn)品;相反,它是一個高度集成的、功能豐富的、適用于各種應(yīng)用的低價位單片機(jī)。MC9S08QG8采用高性能、低功耗的HCS08內(nèi)核,具有很高的集成度,還包括更長的電池壽命(即使工作電壓低至1.8V,也能發(fā)揮最大效能)、業(yè)界領(lǐng)先的Flash技術(shù)以及創(chuàng)新的開發(fā)支持。MC9S08QG8集成了背景調(diào)試系統(tǒng)(BDM)以及可進(jìn)行實(shí)時總線捕捉的內(nèi)置在線仿真(ICE)功能,具有單線的調(diào)試及仿真接口。

            MC9S08QG8微控制器的運(yùn)行模式有很多種,包括正常運(yùn)行模式、等待模式、背景調(diào)試模式以及停止模式。其中,與低功耗應(yīng)用關(guān)系密切的停止模式又分為3個階段:

            停止模式l——內(nèi)部電路全部斷電,以最大限度地節(jié)省電源;

            停止模式2——可選擇部分?jǐn)嚯?,RAM內(nèi)容保持;

            停止模式3——內(nèi)部電路都可快速恢復(fù)運(yùn)行,RAM、Flash內(nèi)容保持。

            MC9S08QG8內(nèi)部時鐘模塊由4個子模塊組成:鎖頻環(huán)、內(nèi)部參考時鐘、外部振蕩器、時鐘選擇邏輯模塊,如圖l所示。

            鎖頻環(huán)的輸出頻率為參考時鐘頻率的512倍,包括3個主要部分:參考頻率選擇、數(shù)字控制振蕩器和用于比較這兩個部分輸出的濾波器。

            鎖頻環(huán)是通過比較數(shù)字控制振蕩器時鐘與參考時鐘的頻率來工作的。鎖頻環(huán)對一個參考時鐘周期內(nèi)的數(shù)字控制振蕩器時鐘脈沖邊沿數(shù)進(jìn)行計數(shù),因此,對于512倍的倍頻器,鎖頻環(huán)應(yīng)該在參考時鐘的每兩個上升沿之間得到512個數(shù)字控制振蕩器輸出的上升沿。鎖頻環(huán)的實(shí)現(xiàn)大多借助數(shù)字邏輯電路,不需要外部濾波器件。

            內(nèi)部參考時鐘是一個可調(diào)整的內(nèi)部參考時鐘信號,既可用作鎖頻環(huán)的參考時鐘,也可直接用作CPU和總線時鐘的時鐘 
          源。這個內(nèi)部參考時鐘不需要諸如調(diào)整電容或電阻等外部元件。內(nèi)部參考時鐘由寄存器中的一個9位數(shù)值進(jìn)行調(diào)整,解析度典型值能達(dá)到未調(diào)整內(nèi)部參考時鐘頻率的O.1%。與許多其他的內(nèi)部參考時鐘不同,這個內(nèi)部參考時鐘可將頻率在一定范圍內(nèi)進(jìn)行調(diào)整,從31.25 kHz變到39.06 kHz。當(dāng)用作鎖頻環(huán)的參考時鐘時,允許用戶用O.1%的解析度,把總線頻率設(shè)定為8 MHz~10 MHz的任意值。

            實(shí)際上,外部振蕩器參考時鐘把三個外部時鐘源合并在一個里面。它有一個采用32 kHz~38.4 kHz晶振或諧振器的低頻振蕩器,還有一個采用1 MHz~16 MHz晶振或諧振器的高頻振蕩器。這兩個振蕩器需要兩個引腳(即XTAL和EXTAL)來生成時鐘信號。外部振蕩器還有一種外部時鐘模式。該模式簡單地把一個外部時鐘信號引入MCU。在此模式中,只需要EXTAL腳,而XTAL腳可用作通用I/O。輸入頻率可以是OHz~20MHz之間的任意值。由于引腳的限制,有些MCU可能沒有外部振蕩器。

            時鐘選擇邏輯只是簡單地選擇鎖頻環(huán)、外部參考時鐘或內(nèi)部參考時鐘作為內(nèi)部時鐘源模塊的輸出。此外,還采用了一個時鐘分頻器電路,可以對輸出進(jìn)行1倍、2倍、4倍或8倍分頻,用以降低輸出時鐘的頻率。

            2 內(nèi)部時鐘源的工作模式

            2.1 關(guān)斷模式

            當(dāng)進(jìn)入微控制器的任何一種低功耗停止模式時,內(nèi)部時鐘源模塊將被關(guān)斷。在關(guān)斷模式中,鎖頻環(huán)是關(guān)閉的,以節(jié)省功耗;然而,在停止3模式中,可以選擇將外部參考時鐘、內(nèi)部參考時鐘或二者都保持在運(yùn)行狀態(tài)。這項(xiàng)功能使某些模塊可以在停止3模式中繼續(xù)運(yùn)行。比如,實(shí)時中斷模塊等,它能繼續(xù)用外部參考時鐘作為其參考時鐘。如果在應(yīng)用中沒有需要繼續(xù)使用的模塊,參考時鐘應(yīng)關(guān)閉,以得到最低的運(yùn)行功耗。

            2.2 FEI模式

            FEI(FLL啟用、選用內(nèi)部參考時鐘)模式是芯片復(fù)位后的缺省模式,鎖頻環(huán)處于運(yùn)行狀態(tài)可驅(qū)動CPU和總線時鐘,采用內(nèi)部時鐘源作為其參考時鐘。FEI模式下的總線頻率可按下式計算:

            MC9S08QG8的內(nèi)部參考時鐘頻率可以在3l.25kHz~39.06 kHz的范圍內(nèi)進(jìn)行調(diào)整,因此經(jīng)過512倍頻后,可以輸出16 MHz~20MHz。與其他同類產(chǎn)品不同的是,在復(fù)位發(fā)生后,上述時鐘分頻器會給輸出時鐘一個強(qiáng)制的2分頻。這是為了在內(nèi)部時鐘模塊未經(jīng)調(diào)整且運(yùn)行頻率高于31.25kHz的時候,對系統(tǒng)提供保護(hù)。如果運(yùn)行頻率高于8 MHz,就超出了MC9S08QG8低電壓(小于2.1V)的最大頻率規(guī)定值?! ?/p>

            每一次上電復(fù)位后,內(nèi)部參考時鐘都應(yīng)當(dāng)進(jìn)行調(diào)整,以得到精確的頻率。

            2.3 FEE模式

            FEE(FLL啟用、選用外部參考時鐘)模式下,鎖頻環(huán)處于運(yùn)行狀態(tài),可驅(qū)動CPU和總線時鐘,采用外部時鐘源作為其參考時鐘。為了讓系統(tǒng)正常運(yùn)行,鎖頻環(huán)的輸出要求在16 MHz~20MHz之間。這樣外部參考時鐘會受到限制。內(nèi)部時鐘源模塊有一個參考時鐘分頻器,可用于降低外部參考時鐘的頻率,表l列出了根據(jù)分頻設(shè)置所能容許的外部頻率。

            FEI模式下的總線頻率可按下式計算:

            2.4 FBI和FBILP模式

            FBI(鎖頻環(huán)旁路、內(nèi)部參考時鐘)和FBILP(鎖頻環(huán)旁路、內(nèi)部參考時鐘低功耗)模式均旁路鎖頻環(huán),而直接采用內(nèi)部時鐘源生成時鐘信號。不同之處在于,F(xiàn)BI模式讓鎖頻環(huán)保持運(yùn)行,而FBILP模式則關(guān)閉鎖頻環(huán),從而降低更多的功耗。 FBILP是通過配置為FBI并設(shè)定ICS控制寄存器2(ICSC2)中的LP位來啟動的。

            采用FBI而非FBILP的原因之一,是為了采用背景調(diào)試模式(BDM);其二,當(dāng)需要切換到FEI時可節(jié)省鎖頻環(huán)的鎖定時間。鎖頻環(huán)必須處于運(yùn)行狀態(tài)才 
          能給背景調(diào)試模式通信提供一個高速時鐘源。鎖定時間的最大規(guī)定值為lms,通常需要約500μs。關(guān)閉鎖頻環(huán)可節(jié)省大約220~310μA的電流。

            2.5 FBE和FBELP模式

            FBE(FLL旁路、外部參考時鐘)和FBELP(FLL旁路、外部參考時鐘低功耗)模式與2.4小節(jié)中的FBI和FBILP模式類似。除了是用外部時鐘產(chǎn)生時鐘源,而不是用內(nèi)部時鐘源外,F(xiàn)LL仍被旁路,LP位則在未啟動BDM時關(guān)閉鎖頻環(huán)。

            3 低功耗模式中的內(nèi)部時鐘源

            3.1 停止1和停止2模式

            當(dāng)MCU進(jìn)入停止1或停止2模式時,內(nèi)部時鐘源總是被置于關(guān)斷模式。因此,執(zhí)行STOP指令時。內(nèi)部時鐘模塊所處的模式無關(guān)緊要,也不會影響處于停止l和停止2期間的功耗。

            由于停止1和停止2模式均導(dǎo)致MCU在停止恢復(fù)時執(zhí)行上電復(fù)位,因此,復(fù)位后的模式總是 FEI,總線分頻被設(shè)置為2分頻,產(chǎn)生大約4MHz的總線時鐘。內(nèi)部時鐘調(diào)整位ICSTRM將被重置為0x80,微調(diào)寄存器的FTRIM位會被清零,所以如果要采用內(nèi)部參考時鐘,則須對它進(jìn)行重新校準(zhǔn);如果調(diào)整值已保存在Flash存儲器中,則須把保存值重新載入寄存器。

            3.2 停止3模式

            當(dāng)進(jìn)入停止3模式后,內(nèi)部時鐘源的大部分(包括鎖頻環(huán))將關(guān)閉。內(nèi)部時鐘源在執(zhí)行STOP指令時所處的模式不會影響停止3的功耗。但是,ICS的兩個控制位,IREFSTEN和EREFSTEN會影響停止3的電流。若置1,則IREFSTEN可使 IRC在停止3模式中保持啟用狀態(tài);

            同樣,若置1,則EREFSTEN可使OSC在停止3模式中保持啟用狀態(tài)。將IREFSTEN置位,將產(chǎn)生約100μA的停止3電流;將EREFSTEN置位,將對停止3電流產(chǎn)生不同的影響,取決于OSC的頻率和設(shè)置。

            如果因復(fù)位而退出停止3,ICS會像停止1或停止2的恢復(fù)那樣回復(fù)至FEI模式。不同之處是調(diào)整值不會重置,除非發(fā)生了上電復(fù)位。

            4 內(nèi)部時鐘校準(zhǔn)

            系統(tǒng)經(jīng)過上電復(fù)位后,ICSTRM將被重置為0x80,F(xiàn)TRIM位會被清零。如果要采用內(nèi)部參考時鐘,則需要對其進(jìn)行重新校準(zhǔn)。增大ICSTRM的值,將降低參考時鐘頻率;相反,減小ICSTRM的值,將提高參考時鐘頻率。FTRIM置0或1會更精細(xì)地對頻率進(jìn)行調(diào)整。根據(jù)這個原理,內(nèi)部時鐘校準(zhǔn)的程序流程框圖如圖2所示。

            關(guān)于具體的程序町根據(jù)參考文獻(xiàn)編制。待ICGTRM和FTRIM選定后,可存入微控制器的Flash中,下次上電復(fù)位后直接讀取數(shù)值載入即可。

            結(jié)語

            恰當(dāng)?shù)剡\(yùn)用時鐘設(shè)置,對于降低微控制器的功耗有很大幫助。在微控制器各種不同的運(yùn)行模式下,時鐘都有不同的配置方法與之配合。同樣的方案也適用于功能類似的微控制器。巧妙地運(yùn)用各種時鐘模式,可以使系統(tǒng)的功耗最低。



          關(guān)鍵詞: 微控制器時鐘配置

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();