【江科大STM32入门·自存笔记】PWR电源控制

原视频地址:[13-1] PWR电源控制_哔哩哔哩_bilibili

一、PWR简介

        · PWR(Power Control)电源控制

        · PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器低功耗模式的功能

        · 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务

        · 低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间

二、电源框图

【江科大STM32入门·自存笔记】PWR电源控制_第1张图片

此图可分为三个部分,最上面是模拟部分供电,叫作VDDA,主要负责模拟部分的供电,其中包括AD转换器,温度传感器,复位模块,PLL锁相环

这些电路的供电正极为VDDA,负极为VSSA。其中AD转换器,还有两根参考电压的供电脚,叫做VREF+和VREF-,这两个脚在引脚多的型号里会单独引出来,在引脚少的型号(C8T6),在内部就已经分别接到了VDDA和VSSA了。

中间是数字部分供电,包括两块区域,VDD供电区和1.8V供电区域

VDD供电区包括IO电路,待机电路,唤醒逻辑和独立看门狗;右边部分是VDD通过电压调节器,降压到1.8V,提供给后面这一块的1.8V供电区域,包括CPU核心、存储器和内置数字外设

下面是后备供电,叫作VBAT(V Battery),包括LSE 32K晶体振荡器后备寄存器RCC BDCR寄存器RTC。RCC BDCR是RCC的寄存器,叫备份域控制寄存器

低电压检测器可以控制开关,VDD有电时,由VDD供电,没电时,由VBAT供电。

三、低功耗模式

【江科大STM32入门·自存笔记】PWR电源控制_第2张图片

三种模式从上至下关闭的电路越来越,也越来越省电,越来越难唤醒。

        · 睡眠模式 (浅睡眠)

进入  直接调用WFI(Wait For Interrupt,等待中断)WFE(Wait For Event,等待事件)即可进入(直接调用相关函数即可)。

唤醒  WFI 中断唤醒发生任何中断,芯片都会立即醒来,醒来后第一件事是处理中断函数

WFE 事件唤醒,唤醒事件可以是外部中断配置为事件模式,也可以是使能了中断,但是没有配置NVIC。唤醒事件会使芯片立刻醒来,醒来之后一般不进中断函数,直接从睡的地方继续运行

对电路的影响:只把CPU时钟关了,对其他电路没有任何操作。时钟关了,程序就会暂停,不会继续运行了,CPU不允许,芯片功耗就会降低。

        · 停机模式 (深睡眠)

进入 SLEEPDEEP位设置为1PDDS这一位用来区分它是停机模式还是待机模式PDDS=0,进入停机模式PDDS=1,进入待机模式LPDS用来设置电压调节器开启还是进入低功耗模式LPDS=0,电压调节器开启,LPDS=1,电压调节器进入低功耗。最后调用WFI或WFE,芯片就可以进入停止模式了。

唤醒  任一外部中断。WFI要用外部中断的中断模式唤醒,WFE要用外部中断的事件模式唤醒。

对电路的影响:不仅CPU不运行外设也运行不了,定时器正在定时的,会暂停;串口,收发数据,也会暂停。不过由于没关闭电源,所有CPU和外设的寄存器数据都是维持原状的HSI和HSE的振荡器关闭。HSI内部高速时钟和HSE外部高速时钟会关闭,其它时钟还能继续运行。

        · 待机模式

进入 SLEEPDEEP置1,深睡眠;PDDS置1,表示即将进入待机模式,最后调用WFI或者WFE,就可以进入待机模式了。

唤醒 只有指定的四个信号可以唤醒:WKUP(PA0)引脚的上升沿RTC闹钟事件(芯片每隔一段时间自动工作一次),NRST引脚上的外部复位,即按一下复位键,它也能唤醒;IWDG独立看门狗复位

对电路的影响:电源关闭,内部的存储器和寄存器数据全部丢失,但它并不会主动关闭LSI和LSE两个低速时钟,因为这两个时钟还要维持RTC和独立看门狗的运行。

四、模式选择

【江科大STM32入门·自存笔记】PWR电源控制_第3张图片

执行WFI(Wait For Interrupt)或者WFE(Wait For Event)指令后,STM32进入低功耗模式

一旦WFI或WFE执行了,首先判断SLEEPDEEP位为1还是0,=0是浅睡眠(睡眠模式),=1是深睡眠(停机或待机模式);

浅睡眠模式SLEEPONEXIT=0时,无论程序在哪里调用WFI/WFE都会立刻进入睡眠=1时,执行WFI/WFE后,它会等待中断退出,等所有中断处理完成之后再进入睡眠

深度睡眠模式,判断PDDS=0时,进入的是停机模式=1进入的是待机模式。停机模式下继续判断LPDS位=0就是停机模式电压调节器开启=1就是待机模式电压调节器低功耗。电压调节器低功耗的特性就是更省电但是唤醒延迟更高

五、总结

睡眠模式

执行完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复位退出待机模式

你可能感兴趣的:(stm32,笔记,嵌入式硬件)