【From Zero To Hero】專欄開刊詞
STM32服務號上線有兩個月了,非常感謝大家的關注。我們在為大家提供產品資訊、技術內容以外,還想通過這個窗口為初級工程師解讀普適性的技術要點,以幫助大家更快更好地瞭解產品、實現設計。
專欄特邀工程師採寫,以用戶的角度解讀STM32。那麼,初級工程師如何實現From Zero To Hero?我們將從以下三個維度助你提升自己的設計能力。
- STM32學習筆記:來自工程師的學習點滴,幫你繞過初學者的坑;
- STM32實際案例:講解簡單項目案例,讓你有點實操手感;
- STM32綜合項目:以小型項目設計來推演技術方案,學一些工程師設計思維。
今天是第一篇分享,《STM32學習筆記》之電源管理及低功耗設計要點 。
一款好的電子產品,都需要認真考慮電源管理的問題,電池供電的產品更應該注意低功耗的實現。
STM32電源介紹
每一塊STM32芯片中都有一個電源控制器(PWR),不同系列的STM32有相似,也有差異。
1.電壓
絕大部分STM32的電壓要求介於 1.8 V 到 3.6 V 之間,嵌入式線性調壓器用於提供內部 1.2 V 數字電源。
2.類型
STM32的電源通常分為三類:數字電源、模擬電源、備份電源。數字電源:VDD也是其主電源,主要用於數字部分;
模擬電源:VDDA用於模擬部分的電源,比如ADC,這樣可以單獨濾波並屏蔽 PCB 上的噪聲。
3.調壓器
多數STM32都有電源調節器(有些型號沒有),為備份域和待機電路以外的所有數字電路供電,調壓器輸出電壓約為 1.2 V。運行模式:調壓器為 1.2 V 域(內核、存儲器和數字外設)提供全功率。
停止模式:調壓器為 1.2 V 域提供低功率,保留寄存器和內部 SRAM 中的內容。
待機模式:調壓器掉電。除待機電路和備份域外,寄存器和 SRAM 的內容都將丟失。
STM32的低功耗模式
STM32的工作模式通常可分為4類:運行模式、睡眠模式、停止模式、待機模式。根據STM32類型不同,可將工作模式進一步劃分。比如STM32L低功耗系列,睡眠模式可進一步劃分為:普通睡眠模式和低功耗睡眠模式。
- 以STM32F4為例:
- 運行模式:默認進入該模式;
- 睡眠模式:內核停止,外設保持運行
- 停止模式:所有時鐘都停止
- 待機模式:1.2 V 域斷電
STM32低功耗設計要點
STM32低功耗通常會結合項目實際情況,以及應用場景來進行針對性設計。以下面幾個案例來進行說明。
案例一:有工程師提到:STM32F103 進入STOP 模式後無法通過串口喚醒 ?
分析原因:這位工程師對低功耗喚醒機制理解有誤:STM32進入 STOP 模式後不能直接通過 UART 等中斷外設喚醒, 只能通過 EXTI 外部中斷方式喚醒。
解決辦法:我們可以在 MCU 進入 STOP 前將 RX 腳設為 EXTI 模式,並使能對應的中斷來實現。
案例二:有工程師提到:STM32F051進入低功耗之後,實際功耗遠大於理想功耗。
分析原因:造成問題的原因可能是工程師通過直接調用“停止模式”,進入低功耗,但部分IO外部有上拉電阻,進入低功耗之前未做調整,導致功耗偏大。
解決辦法:進入低功耗之前,對使用和未使用IO狀態進行調整。比如有外部上拉,可配置成模擬輸入等。
案例三:有工程師提到:通過按鍵喚醒STM32F103,串口不能正常工作?
分析原因:經分析發現,開發者進入的低功耗模式為待機模式,喚醒之後,未初始化串口外設,導致串口不能正常工作。在待機模式下,所有外設都關閉,意味著所有外設配置都為默認值。
解決辦法:喚醒STM32之後,重新初始化串口(以及所有使用的)外設。