一款好的電子產品,都需要認真考慮電源管理的問題,電池供電的產品更應該注意低功耗的實現。
嵌入式專欄
1
STM32電源介紹 每一塊STM32芯片中都有一個電源控制器(PWR),不同系列的STM32有相似,也有差異。
1.電壓
絕大部分STM32的電壓要求介于 1.8 V 到 3.6 V 之間,嵌入式線性調壓器用于提供內部 1.2 V 數字電源。
2.類型
數字電源:VDD也是其主電源,主要用于數字部分;
模擬電源:VDDA用于模擬部分的電源,比如ADC,這樣可以單獨濾波并屏蔽 PCB 上的噪聲。
備份電源:VBAT用于備份區(qū)域的電源,比如RTC、備份SRAM等,一旦主電源斷開,VBAT可以為這些區(qū)域提供電源。
▲ STM32F4備份域
3. 調壓器 多數STM32都有電源調節(jié)器(有些型號沒有),為備份域和待機電路以外的所有數字電路供電,調壓器輸出電壓約為 1.2 V。
運行模式: 調壓器為 1.2 V 域(內核、存儲器和數字外設)提供全功率。 停止模式: 調壓器為 1.2 V 域提供低功率,保留寄存器和內部 SRAM 中的內容。 待機模式: 調壓器掉電。除待機電路和備份域外,寄存器和 SRAM 的內容都將丟失。
嵌入式專欄
2
STM32的低功耗模式 STM32 的工作模式通??煞譃?/span> 4類 :運行模式、睡眠模式、停止模式、待機模式。根據 STM32 類型不同,可將工作模式進一步劃分。比如 STM32L 低功耗系列,睡眠 模式可進一步劃分為:普通睡眠模式和低功耗睡眠模式。
- 以ST M32F4為例:
-
運行模式:默認進入該模式;
-
睡眠模式:內核停止,外設保持運行
-
停止模式:所有時鐘都停止
-
待機模式:1.2 V 域斷電
▲ STM32睡眠/停止/待機模式圖解
嵌入式專欄
3
STM32低功耗設計要點
STM32低功耗通常會結合項目實際情況,以及應用場景來進行針對性設計。以下面幾個案例來進行說明。
案例一:有工程師提到:STM32F103 進入STOP 模式后無法通過串口喚醒 ?
分析原因:這位工程師對低功耗喚醒機制理解有誤:STM32進入 STOP 模式后不能直接通過 UART 等中斷外設喚醒, 只能通過 EXTI 外部中斷方式喚醒。
解決辦法: 我們可以在 MCU 進入 STOP 前將 RX 腳設為 EXTI 模式,并使能對應的中斷來實現。 案例二: 有工程師提到: STM32F051進入低功耗之后,實際功耗遠大于理想功耗。 分析原因:造成問題的原因可能是工程師通過直接調用“停止模式”,進入低功耗,但部分IO外部有上拉電阻,進入低功耗之前未做調整,導致功耗偏大。解決辦法: 進入低功耗之前,對使用和未使用 IO 狀態(tài)進行調整。比如有外部上拉,可配置成模擬輸入等。
案例三: 有工程師提到:通過按鍵喚醒 STM32F103 ,串口不能正常工作? 分析原因: 經分析發(fā)現,開發(fā)者進入的低功耗模式為待機模式,喚醒之后,未初始化串口外設,導致串口不能正常工作。在待機模式下,所有外設都關閉,意味著所有外設配置都為默認值。 解決辦法: 喚醒 STM32 之后,重新初始化串口(以及所有使用的)外設。
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!