電源控制
1、STM32電源
STM32的工作電壓為2.0-3.6V,VDD為主電源,主電源掉電後,可通過VBAT腳為實時時鐘(RTC)和備份寄存器提供電源。
1.1 獨立的A/D轉換器供電和參考電壓
VDDA:ADC的電源引腳;
VSSA:獨立電源地引腳;
1.2 電源備份區域
使用電池或其他電源連接配接到VBAT腳上,當VDD斷電時,可以儲存備份寄存器的内容和維持RTC的功能。
1.3 電壓調節器
複位後調節器總是使能的。根據應用方式它以3種不同的模式工作。
● 運轉模式:調節器以正常功耗模式提供1.8V電源(核心,記憶體和外設)。
● 停止模式:調節器以低功耗模式提供1.8V電源,以儲存寄存器和SRAM的内容。
● 待機模式:調節器停止供電。除了備用電路和備份域外,寄存器和SRAM的内容全部丢失。
2、電源管理器
2.1 上電複位和掉電複位
2.2 可程式設計電壓監測器
使用者可以利用PVD對VDD電壓與電源控制寄存器(PWR_CR)中的PLS[2:0]位進行比較來監控電源,這幾位選擇監控電壓的閥值。
通過設定PVDE位來使能PVD。
3、低功耗模式
STM32F10xxx有三中低功耗模式:
● 睡眠模式(Cortex™-M3核心停止,外設仍在運作)
● 停止模式(所有的時鐘都以停止)
● 待機模式(1.8V電源關閉)
此外,在運作模式下,可以通過以下方式中的一種降低功耗:
降低系統時鐘
關閉APB和AHB總線上未被使用的外設的時鐘。
3.1 降低系統時鐘
3.2 外部時鐘的控制
在運作模式下,任何時候都可以通過停止為外設和記憶體提供時鐘(HCLK和PCLKx)來減少功耗。
3.3 睡眠模式
進入睡眠模式
退出睡眠模式
3.4 停止模式
停止模式是在Cortex™-M3的深睡眠模式基礎上結合了外設的時鐘控制機制,在停止模式下電壓調節器可運作在正常或低功耗模式。此時在1.8V供電區域的的所有時鐘都被停止, PLL、 HSI和HSE RC振蕩器的功能被禁止, SRAM和寄存器内容被保留下來。
3.5 待機模式
待機模式可實作系統的最低功耗。該模式是在Cortex-M3深睡眠模式時關閉電壓調節器。整個1.8V供電區域被斷電。 PLL、 HSI和HSE振蕩器也被斷電。 SRAM和寄存器内容丢失。隻有備份的寄存器和待機電路維持供電。
調試模式
預設情況下,如果在進行調試微處理器時,使微處理器進入停止或待機模式,将失去調試連接配接。這是因為Cortex™-M3的核心失去了時鐘。然而,通過設定DBGMCU_CR寄存器中的某些配置位,可以在使用低功耗模式下調試軟體。更多的細節參考低功耗模式下的調試。
3.6 低功耗模式下的自動喚醒(AWU)
RTC可以在不需要依賴外部中斷的情況下喚醒低功耗模式下的微控制器(自動喚醒模式)。 RTC提供一個可程式設計的時間基數,用于周期性從停止或待機模式下喚醒。通過對備份區域控制寄存器(RCC_BDCR)的RTCSEL[1:0]位的程式設計,三個RTC時鐘源中的二個時鐘源可以選作實作此功能。
1、 正常運作模式:電壓調節器工作在正常狀态,Cortex-M3核心正常運作,Cortex-M3的内設(如NVIC)正常運作,STM32的PLL、HSE、HIS正常運作,這是功耗大的情況。
2、 睡眠模式:Cortex-M3核心執行進去睡眠模式指令,電壓調節器工作在正常狀态,Cortex-M3核心停止運作,但Cortex-M3内設仍然正常運作,STM32的PLL、HSE、HIS也正常運作,SRAM、寄存器的值仍然得以保留。功耗相對正常模式得到降低。
3、 深度睡眠模式(停止模式):在睡眠模式基礎上,将電壓調節器工作設定為低功耗狀态,則Cortex-M3核心停止運作,Cortex-M3内設也停止運作,STM32的PLL、HSE、HIS也被關斷。但是SRAM、寄存器的值仍然得以保留。功耗相對于睡眠模式得到進一步降低。
4、 待機模式:在深度睡眠模式的基礎上,将電壓調節器關閉,則Cortex-M3核心停止運作,Cortex-M3内設也停止運作,STM32的PLL、HSE、HSI關斷,SRAM、裝置寄存器的值丢失,PWR、BKP寄存器的值也丢失,隻有待機電路仍正常工作。這時STM32的功耗可以降低至理論上的最低值。
STM32低功耗模式的進入及退出方法
STM32從這三種低功耗模式恢複的運作情況