STM32F103C8T6? PWR電源控制
1 PWR簡介
????????PWR(Power Control)電源控制單元是STM32微控制器中一個重要的組成部分,它負責管理系統的電源管理功能,以優化功耗并提高效率。PWR負責管理STM32內部的電源供電部分,可以實現可編程電壓監測器和低功耗模式的功能。以下是PWR電源控制單元的主要功能說明:
???1. 可編程電壓監測器(PVD):
- 該功能允許微控制器實時監控VDD(主電源)的電壓水平。
- 當VDD電壓下降至預設的閾值以下或超過閾值以上時,PVD監測器會觸發中斷,使系統能夠執行必要的緊急處理措施,如數據保存或系統關閉。
? ?2. 低功耗模式:
? ?STM32提供多種低功耗模式,以適應不同的應用場景和節能需求。
- 睡眠模式(Sleep Mode):CPU停止工作,但外設和中斷仍可響應,功耗大幅降低。
- 停機模式(Stop Mode):所有時鐘停止,包括CPU和外設,但SRAM內容保持不變,功耗進一步降低。
- 待機模式(Standby Mode):系統進入最低功耗狀態,僅RTC和備份寄存器保持運行,適用于需要保持時間信息的場合。
2 電源框圖
?????????這張圖展示了STM32微控制器的電源框架圖,其中VDDA和VSSA分別連接到VDD和VSS,為微控制器的不同供電區域提供電源。VDDA供電區域包括A/D轉換器、溫度傳感器、復位模塊和PLL等,VDD供電區域包括I/O電路、待機電路(含喚醒邏輯和IWDG)、電壓調節器等,而1.8V供電區域則為CPU核心、存儲器和內置數字外設提供電力。此外,還有從VBAT供電的后備供電區域,包括LSE 32K晶體振蕩器、后備寄存器、RCC BDCR寄存器和RTC,用于在主電源斷電時維持基本功能。
3?上電復位和掉電復位
????????圖5展示了微控制器上電復位(POR,Power-On Reset)和掉電復位(PDR,Power-Down Reset)的電壓波形圖。圖中顯示,當電源電壓VDD/VDDA從0上升到超過POR閾值時,微控制器觸發上電復位過程,復位信號Reset變高,維持一段時間以確保系統穩定啟動,然后Reset信號變低,系統開始正常運行;當電源電壓從高電平下降至低于PDR值時,觸發掉電復位過程,Reset信號再次變高,以確保在電源恢復前系統處于已知狀態。圖中還標注了40mV的遲滯(hysteresis),這是為了避免電源電壓的小幅波動導致系統不穩定的復位操作,以及標注了滯后時間(tRSTTEMPO),表示復位信號保持高電平的時間長度,確保系統完成必要的初始化過程。?
4 可編程電壓監測器
????????圖6描述了微控制器中可編程電壓檢測器(PVD)的門限特性,其中VDD/VDDA代表電源電壓,圖中顯示了PVD閾值,當電源電壓超過此閾值時PVD觸發,輸出信號從高電平變為低電平以指示電壓過高,圖中還標示了100毫伏的遲滯范圍,確保電源電壓變化必須超過閾值并保持一段時間才能觸發PVD,避免因電源電壓小幅波動而產生誤觸發,PVD輸出信號可用于觸發中斷或喚醒微控制器,執行緊急處理措施,以保護系統免受電壓異常影響,確保系統的穩定性和可靠性。
5 低功耗模式
????????表8概述了STM32微控制器的低功耗模式,包括睡眠(SLEEP-NOW或SLEEP-ON-EXIT)和停機(Stop)模式。在睡眠模式下,可以通過WFI(等待中斷)或WFE(等待喚醒事件)進入,喚醒方式可以是任一中斷或喚醒事件。在停機模式下,通過設置PDDS和LPDS位以及SLEEPDEEP位進入,喚醒方式包括任一外部中斷、WKUP引腳的上升沿、RTC鬧鐘事件、NRST引腳上的外部復位或IWDG復位。在睡眠模式下,CPU時鐘關閉,但對1.8V區域時鐘和其他時鐘和ADC時鐘無影響,而在停機模式下,關閉所有1.8V區域的時鐘,對VDD區域時鐘的影響取決于電源控制寄存器(PWR_CR)的設置,電壓調節器在這兩種模式下均開啟或關閉。
6 模式選擇
????????執行WFI(Wait For Interrupt)或者WFE(Wait For Event)指令后,STM32進入低功耗模式:
?6.1 睡眠模式
- 執行完WFI/WFE指令后,STM32進入睡眠模式,程序暫停運行,喚醒后程序從暫停的地方繼續運行
- SLEEPONEXIT位決定STM32執行完WFI或WFE后,是立刻進入睡眠,還是等STM32從最低優先級的中斷處理程序中退出時進入睡眠
- 在睡眠模式下,所有的I/O引腳都保持它們在運行模式時的狀態
- WFI指令進入睡眠模式,可被任意一個NVIC響應的中斷喚醒
- WFE指令進入睡眠模式,可被喚醒事件喚醒
6.2 停機模式
- 執行完WFI/WFE指令后,STM32進入停止模式,程序暫停運行,喚醒后程序從暫停的地方繼續運行
- 1.8V供電區域的所有時鐘都被停止,PLL、HSI和HSE被禁止,SRAM和寄存器內容被保留下來
- 在停止模式下,所有的I/O引腳都保持它們在運行模式時的狀態
- 當一個中斷或喚醒事件導致退出停止模式時,HSI被選為系統時鐘
- 當電壓調節器處于低功耗模式下,系統從停止模式退出時,會有一段額外的啟動延時
- WFI指令進入停止模式,可被任意一個EXTI中斷喚醒
- WFE指令進入停止模式,可被任意一個EXTI事件喚醒
6.3 待機模式
- 執行完WFI/WFE指令后,STM32進入待機模式,喚醒后程序從頭開始運行
- 整個1.8V供電區域被斷電,PLL、HSI和HSE也被斷電,SRAM和寄存器內容丟失,只有備份的寄存器和待機電路維持供電
- 在待機模式下,所有的I/O引腳變為高阻態(浮空輸入)
- WKUP引腳的上升沿、RTC鬧鐘事件的上升沿、NRST引腳上外部復位、IWDG復位退出待機模式