电源控制
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从这三种低功耗模式恢复的运行情况