PWR简介
•PWR(Power Control)电源控制
•PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能
•可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务
•低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间
电源框图

最上面是模拟部分供电(VDDA),中间是数字部分供电,包括VDD供电区域和1.8V供电区域。下面是后背供电(VBAT)。
VDDA供电部分,主要负责模拟部分供电,包括AD转换器,温度传感器,复位模块,PLL锁相环,这些电路的供电正极是VDDA,负极是VSSA。其中AD转换器,还有两根参考电压的供电脚,叫做VREF+和VREF-,这两个引脚在C8T6中已经分别接到VDDA和VSSA了,但是在引脚多的型号中是单独的引脚。
数字供电部分,有两部分组成,左侧是VDD供电区域,包括IO电路、待机电路、唤醒逻辑和独立看门狗,右侧是VDD通过电压调节器,降压到1.8V,包括CPU核心,存储器和内置数字外设。
后背供电区域,包括LSE 32K晶体振荡器、后背寄存器、RCC BDCR寄存器和RTC。低电压检测器,控制开关,VDD有电时,由VDD供电,没电时,由VBAT供电。
上电复位和掉电复位

当VDD或VDDA的电压过低时,内部电路直接产生复位,STM32直接复位,复位和不复位的界限之间,设置了40mV的迟滞电压,大于上限POR时解除复位,小于下限PDR时复位。
可编程电压检测器

PVD阈值电压使用程序指定。
低功耗模式

PDDS=0,进入停机模式,PDDS=1,进入待机模式。
LPDS=0,电压调节器开启,LPDS=1,电压调节器进入低功耗。
模式选择
•执行WFI(Wait For Interrupt)或者WFE(Wait For Event)指令后,STM32进入低功耗模式
睡眠模式
•执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
•SLEEPONEXIT位决定STM32执行完WFI或WFE后,是立刻进入睡眠,还是等STM32从最低优先级的中断处理程序中退出时进入睡眠
•在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态
•WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒
•WFE指令进入睡眠模式,可被唤醒事件唤醒
停止模式
•执行完WFI/WFE指令后,STM32进入停止模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
•1.8V供电区域的所有时钟都被停止,PLL、HSI和HSE被禁止,SRAM和寄存器内容被保留下来
•在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态
•当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟
•当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时
•WFI指令进入停止模式,可被任意一个EXTI中断唤醒
•WFE指令进入停止模式,可被任意一个EXTI事件唤醒
待机模式
•执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行
•整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电
•在待机模式下,所有的I/O引脚变为高阻态(浮空输入)
•WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式