此篇文章在2022年5月19日被記錄
STM32低功耗介紹:
STM32L4系列微控制器總共有9中低功耗模式:
1、Sleep mode:CPU時鐘關閉,IO口保持與執行狀態相同的狀態。可由wake事件,NVIC,SysTick,外部中斷等,無喚醒時間,喚醒後執行喚醒源中斷回撥函式(和標準庫中斷服務函式功能一樣,但意義不同),然後按原來程式碼執行。
2、Low-power run mode: 當系統時脈頻率降低到2MHZ以下時,即可實現此模式。程式碼可從SRAM或快閃記憶體中執行。調整器處於低功耗模式,以最小化調整器的工作電流。IO口保持與執行狀態相同的狀態,退出此模式需按照三步1:清除PWR CR1暫存器中的LPR位,強制調整器進入主模式。2:等待直到PWR SR2暫存器中的REGLPF 位被清除3:增加時脈頻率。
3、Low-power sleep mode: 此模式從Low-power run mode進入,IO口狀態與執行模式相同,可由外部中斷,wake事件喚醒,無喚醒時間,喚醒後執行中斷回撥函式,後按原來程式碼執行。
4、Stop 0, Stop 1 and Stop 2 modes:此模式中SRAM1,SRAM2和暫存器中的內容都將保留,所有時鐘在VCORE 域停止,PLL,MSI,HSI16,HSE禁止。LSE和LSI保持執行,RTC可保持執行,一些具有喚醒功能的外設也可等待喚醒條件。在STOP2模式下,大多數的VCORE域處於低洩漏狀態。SPOP1模式提供了最多數量的活動外設和喚醒源,喚醒時間較小,但電流比STOP2消耗更多,在STOP0模式主調節器仍然時開著的,這允許最快的喚醒時間,但消耗多。功耗大小SPOP2< STOP1 < STOP0.可由wake事件,外部中斷喚醒。當退出STOP模式時時鐘源可選MSI或HSI16這取決於軟體配置。退出後執行喚醒源中斷回撥,後按主程式碼執行。
5、Standby mode: VCORE域是關閉電源的。然而,它可以保留SRAM2的內容:待機模式與SRAM2保留當位RRS被設定在CR3暫存器,在這種情況下。SRAM2由低功率調節器提供。在PWR CR3暫存器中清除位RRS時的備用模式。在這種情況下,主調節器和低功率調節器電源關閉,所有的時鐘在VCORE域停止,PLL,MSI,HSI16和HSE被禁止。LSI和LSE可以繼續執行。IO口可配置位上拉或下拉或模擬。RTC可以保持。外部中斷和wake時間喚醒等可退出Standby模式,喚醒後系統復位。
6、Shutdown:VCORE域電源關閉,所有時鐘在VCORE停止,PLL,MSI,HSI16,HSE禁止,LSE可以保持執行,系統時鐘,當退出Shutdowm模式MSI在4MHZ在這種模式下電源監控是關閉的。IO口可配置成 上拉,下拉,模擬。可用wake事件喚醒,io口外部中斷,喚醒後系統復位。
上述幾種的低功耗模式相互切換如圖所示: