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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 利用多電壓架構在32位MCU上實現高性能和超低功耗待機模式

          利用多電壓架構在32位MCU上實現高性能和超低功耗待機模式

          作者: 時間:2012-01-23 來源:網絡 收藏


            在微控制器芯片上分離區(qū)會遇到很多設計限制因素,例如:

            ●必須在后備區(qū)完整的喚醒和模擬電路,結果很難提供大量的喚醒信號源;
            ●必須在斷電期間分離兩個區(qū)(內核電壓傳出的所有信號都是浮空的) ;
            ●需要以特殊的順序停止時鐘源,電源斷電/上電必須可靠。例如,主內核電壓邏輯電路需要一個專用復位;
            ●因為兩個電壓區(qū)在電壓和工藝方面幾乎是相互獨立的,而在溫度方面卻是相互關聯的,所以必須考慮到兩個電壓區(qū)的時序限制。這意味著在時序分析過程中必須兼顧更多的情況(例如,電壓和工藝最差的備用電壓區(qū),以及工藝和電壓最好的主內核電壓區(qū)) ;
            ●為防止程序意外地進入輸入,必須在備用電壓區(qū)內某些安全功能,如看門狗;
            ●為了保證產品在小封裝內擁有的性能,還必須保持可用I/O與I/O總個數的比例。在STM32上,主內核穩(wěn)壓器無需外部去耦合電容器,所以這個產品并沒有因為是雙電壓區(qū)而損失封裝上的引腳,即沒有采用額外的電源輸入。

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

          圖4STM32電壓區(qū)電路示意圖


            不過,作為復雜設計的回報,STM32獲得了真正的,有助于應用開發(fā)人員優(yōu)化電池使用時間。

            STM32的功率及優(yōu)化的電池使用時間

            因為了雙電壓區(qū),STM32提供了兩個不同的低:停止模式和模式。兩個功能中電壓監(jiān)控器都是導通的,以便在出現電壓下降時保護應用。

            在停止模式下,低穩(wěn)壓器保持通態(tài),但是時鐘停止運行。通過內部阻容振蕩器,穩(wěn)壓器提供極短的重啟時間(10mS),并保留軟件環(huán)境。在環(huán)境溫度下的典型電流為15mA(3.3V),但是這個模式無法減輕泄漏電流問題,因為泄漏電流會隨著溫度以冪數形式升高。

            在待機模式下,穩(wěn)壓器是斷態(tài),在環(huán)境溫度下電流消耗為2mA(3.3V),電流幾乎不會隨溫度升高(在85℃下,一個典型器件的電流為2.4mA)。不過,待機模式重啟意味著軟件內容丟失,RAM、內核和大多數外設寄存器都會丟失數據。

            為具體應用選擇最佳的模式能夠極大地影響電池的使用壽命,下面是在選擇省電方式時應考慮的基本要求。

            ●檢查微控制器的待機狀態(tài)是否符合應用要求(例如,I/O待機狀態(tài)、喚醒信號源);
            ●考慮最惡劣的但是能夠保證應用功能正常運行的溫度條件對電池使用壽命的影響;
            ●檢查從待機時間開始的重啟時間是多少,是否達到應用對重啟時間的要求;
            ●檢查待機模式是否比停止模式省電,在兩個事件之間,待機功耗與待機重啟功耗之和是否小于停止模式的功耗。

            這些問題與應用有關,待機模式重啟時間包括從喚醒到讀取復位向量這個過程所用的時間,待機模式重啟時間取決于硬件(穩(wěn)壓器啟動時間,STM32的時鐘源啟動時間大約為40ms)和軟件恢復應用環(huán)境所需的時間。軟件通常必須檢查喚醒信號源,從備份寄存器恢復環(huán)境信息,并重新配置應用系統(tǒng)使用的微控制器功能。

            因為待機軟啟動與軟件有關,所以在喚醒階段消耗的能量也與應用有關。一個實用的估計能量損耗的方法是,在一個時限內(從喚醒后到軟件立即回到待機模式)生成數個給定的喚醒信號,然后比較在喚醒信號沒有生成時的平均電流消耗。為了優(yōu)化待機模式啟動時間,開發(fā)人員不得忘記優(yōu)化編譯器增加的初始化階段,并盡可能減少初始化階段(例如,應該去除RAM初始化過程)。

            含有自動電源開關的實時時鐘及數據備份專用電壓區(qū)

            電池供電應用都需要一個實時時鐘,不過,內核電壓關閉必然導致整個程序環(huán)境丟失,這相當于一個產品的復位重啟。給程序實現一個備份寄存器庫,有助于恢復程序執(zhí)行所需的最小環(huán)境。

            可以在一個備用電壓區(qū)內,把所有這些功能都直

          接集成在微控制器上。不過,實時時鐘功能通常應在很長時期(數年)內有效,即便電池供電的主應用也是以充電電池為電源的。為實時時鐘設計第三個電壓區(qū),并設置一個實時時鐘電源專用引腳,就可以使用一個很小的專用鈕扣電池給實時時鐘供電,同時主應用由另一個主要電源供電,這樣鈕扣電池只給實時時鐘和相關的振蕩器供電,而不給其它功能供電,例如,在待機模式下才可用的電壓監(jiān)控器。

            不過,實現第三電壓區(qū)也不是最完美的,因為當主電源可用時,鈕扣電池仍然給實時時鐘和備份寄存器供電。為此,STM32采用了一個聰明的延長實時時鐘電池使用時間的方法,具體做法是給實時時鐘和備份寄存器增加一個電源開關,當主電源可用時,從主電源給實時時鐘和備份寄存器供電;當主電源不可用時,從電池給實時時鐘和備份寄存器供電。STM32電壓區(qū)電路如圖4所示。

            主電壓監(jiān)控制器通過一個閂鎖機制向電源開關發(fā)布命令,當發(fā)現VDD電壓低于VDD的下限時,開關把實時時鐘和備份寄存器的電源轉接到外部Vbat電源。如果VDD電壓高于VDD上限時,開關自動選擇VDD給這個特殊的電壓區(qū)供電。

            采用電源開關設計還有另外一個優(yōu)點,軟件對這個特殊的電壓區(qū)讀寫操作(通過電平轉換器)產生的額外動態(tài)功耗決不會增加對鈕扣電池的功耗,這是因為在運行模式下,電池始終是由主電源提供的。因此,根據實時時鐘的功耗和鈕扣電池的電量,可以直接計算鈕扣電池最短使用時間。

            STM32的實時時鐘典型電流消耗為1.4mA(環(huán)境溫度,3.3V),當使用一枚CR2032電池時,電池最短使用時間近20年。然而,如果應用在大多數時間都連接著主電源,電池的使用時間可以更長,即便電池電量非常低,還能照常使用。

            STM32實現的實時時鐘和備份寄存器在待機模式下仍正常工作,因此,實時時鐘可以作為待機喚醒的信號源,而且在系統(tǒng)進入待機模式前,備份寄存器還可以保存一些重要的參數值。

            增添電源開關的方法大幅度提高了微控制器設計的復雜性,因為它要求:

            ●電壓區(qū)之間的隔離變得更加復雜;
            ●可靠的電源開關設計,經過正確調整后,功耗可達到預期的水平(為避免小封裝上可用的GPIO數量減少,內部實時時鐘電壓區(qū)沒有外部引腳,因此無需增添去耦合電容器);
            ●考慮到了不增加Vbat靜態(tài)功耗的各種啟動情況,例如,當VDD不存在時Vbat電壓的升高不應產生意外狀態(tài)(鈕扣電池可能在生產線上被焊接到產品內,這時不應有額外的功率消耗,否則電池的電量會被白白地消耗掉);
            ●實時時鐘電壓區(qū)在轉接VbatV電壓前必須能承受VDD最低閾壓以下的大電壓降。

            支持電池供電應用

            盡管在應用層面考慮了在待機狀態(tài)下允許內容丟失的情況,像STM32這樣的功耗待機和多電壓電源仍不失為一個有效的解決方案,它允許應用系統(tǒng)在運行模式下實現優(yōu)異的性能,同時降低靜態(tài)功耗對待機狀態(tài)的影響。此外,在STM32內集成獨立的功能(如實時時鐘),使設計工程師能夠快速高效地開發(fā)電池供電的應用設備,并充分利用產品的電源能效。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();