STM32的低功耗模式
????????目前的低功耗設計主要從芯片設計和系統設計兩個方面考慮。隨著半導體工藝的飛速發展和芯片工作頻率的提高,芯片的功耗迅速增加,而功耗增加又將導致芯片發熱量的增大和可靠性的下降。因此,功耗已經成為深亞微米集成電路設計中的一個重要考慮因素。為了使產品更具競爭力,工業界對芯片設計的要求已從單純追求高性能、小面積轉為對性能、面積、功耗的綜合要求。而微處理器作為數字系統的核心部件,其低功耗設計對降低整個系統的功耗具有重要的意義。
????????在嵌入式系統的設計中,低功耗設計(Low-Power Design)是許多設計人員必須面對的問題,其原因在于嵌入式系統被廣泛應用于便攜式和移動性較強的產品中去,而這些產品不是一直都有充足的電源供應,往往是靠電池來供電,所以設計人員從每一個細節來考慮降低功率消耗,從而盡可能地延長電池使用時間。
STM32的低功耗模式大體分為三種,睡眠模式、停機模式、待機模式。
細分有Sleep mode(睡眠模式)、Low-power run mode(低功耗運行模式)、Low-power sleep mode(低功耗睡眠模式)、Stop mode with RTC(帶有RTC的停止模式)、Stop mode without RTC(不帶RTC的停止模式)、Standby mode with RTC(帶有RTC的旁路模式)、Standby mode without RTC(不帶RTC的旁路模式。
在上述這些模式中功耗依次降低,具體值為:
? ? ? ? ? ? Sleep mode:37uA/MHz
? ? ? ? ? ? Low-power run mode:8uA
? ? ? ? ? ? Low-power sleep mode:4.5uA
? ? ? ? ? ? Stop mode with RTC:1uA
? ? ? ? ? ? Stop mode without RTC:0.4uA VDD=3.0V
? ? ? ? ? ? Standby mode with RTC:0.85uA VDD=3.0V
? ? ? ? ? ? Standby mode without RTC:0.29uA VDD=3.0V
在上述這些模式中,使用時應注意以下幾點:
? ? ? ? ? ? 1、睡眠模式,在所有外設全部關閉的條件下,16MHz時,電流為1mA左右,這個數值相對自身的項目來說還是有些大;
? ? ? ? ? ? 2、單片機內部功率是各功能部分功率的總和
? ? ? ? ? ? 3、低功耗模式是通過關掉部分內部功能達到省電
? ? ? ? ? ??4、低功耗運行模式和低功耗睡眠模式,都限制了CPU的最大運行速度,如果CPU需要一直工作選擇,該模式是比較合適的;
? ? ? ? ? ? 5、停止模式,電流比較低,喚醒的方法也比較多;
? ? ? ? ? ??6、旁路模式,里面的RAM中的數據全部丟失,相當于復位重啟。
下面繼續深入講解一下,多了解這些知識
根據手冊我們可以得之:
1、睡眠模式
????????在睡眠模式,只有CPU停止,所有外設處于工作狀態并可在發生中斷/事件時喚醒CPU。
?2、停機模式
????????在保持SRAM和寄存器內容不丟失的情況下,停機模式可以達到最低的電能消耗。在停機模式下,停止所有內部1.8V部分的供電,PLL、HSI的RC振蕩器和HSE品體振蕩器被關閉,調壓器可以被置于普通模式或低功耗模式。可以通過任一配置成EXTI的信號把微控制器從停機模式中喚醒,EXTI信號可以是16個外部IO口之一、PVD的輸出、RTC鬧鐘或USB的喚醒信號。
3、待機模式
????????在待機模式下可以達到最低的電能消耗。內部的電壓調壓器被關閉,因此所有內部1.8V部分的供電被切斷;PLL、HSI的RC振蕩器和HSE品體振蕩器也被關閉;進入待機模式后,SRAM和寄存器的內容將消失,但后備寄存器的內容仍然保留,待機電路仍工作。從待機模式退出的條是:NRST上的外部復位信號、IWDG復位、WKUP引腳上的一上升邊沿或RTC的鬧鐘到時。
那就用圖來總結一下這三種模式:
再用一張圖表來深入表達
?如果在一般情況下,STM32F103C8T6各種模式的功耗測試:
單片機最小系統電路功耗
????????√ 正常模式:10mA
????????√睡眠模式:2mA
????????√停機模式:20uA
????????√ 待機模式:2uA
因不同型號,不同工藝差異,不同程序下功耗不同這里只能給出大概范圍。
而在那種情況下用那種模式呢?
睡眠模式:
????????在ARM內核無事可做的時候,可以進入睡眠模式。但設備外設依舊可以工作,需要RM的內核工作時,再將ARM內核進行喚醒工作。
????????優點:對系統影響最小
????????缺點:節能效果最差
停機模式:
????????因SRAM內容不消失,程序不復位,可在喚醒后繼續運行。節能效果與待機模式近似,卻有著更多優勢。主要用于電池供電的設備上,提高電池壽命。在電池供電的產品中必須使用,在外部供電的產品中沒必要使用。
????????優點:節能效果好,程序不會復位
????????缺點:恢復時間較長
待機模式:
????????由于SRAM內容消失,喚醒后程序必須復位,從頭開始運行。因為待機和停機之間的功耗差別是uA級的,幾乎沒有差別,所以開發者大多使用停機模式,待機模式極少使用。在一些偶爾需要工作的場合,且工作量不大、不復雜的情況下,待機模式可以保證最低的功耗。比如應用在室外溫度測量產品上,每1小時測量一次。可用RTC鬧鐘喚醒,測量完再待機。
????????優點:最節能
????????缺點:程序會復位,只有少數條件可喚醒
綜合各自的優點進行合適的模式進行開發吧
下面簡單對各種模式進行使用以下(STM32CubeMX配置)
睡眠模式(HAL庫)應用
? ? ? ? 如果想使用睡眠模式,只需要調用寫好的HAL庫,既下面的函數(喚醒使用中斷)
HAL_PWR_EntersSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI)停機模式(HAL庫)應用
?這里簡單的進行下使用,來看到停機模式的效果,設置引腳模式
使用停機模式,則調用以下的函數
HAL_PWR_EntersSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI)????????設置一個按鍵,進行中斷喚醒實驗,最后看到的結果就是當運行到函數之前,LED燈進行閃爍,執行到停機模式函數停止等待喚醒。
待機模式(HAL庫)應用
? ? ? ? 待機模式在停機模式的情況下進行實驗,如下進行修改配置(待機模式只有四個能喚醒):
????????待機模式根據標志位進行操作,因為一旦使用待機喚醒,這個時候單片機就會從從新開始(就像按了復位按鍵),在進行這一次運行。根據四個條件喚醒之后,從新執行一遍程序。??
總結:
? ? ? ? 根據實際應用需求來進行選擇,,其實運用倒是簡單,但要選擇合適的模式。
?
總結
以上是生活随笔為你收集整理的STM32的低功耗模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php站群程序,asp+php动态寄生虫
- 下一篇: 典型商业电磁全波仿真软件介绍