PWR电源控制

PWR电源简介:

  1. PWR(Power Control)电源控制
  2. PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器低功耗模式的功能

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

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

电源框图:

黑色部分:模拟部分供电,叫作VDDA(VDD Analog)

VDDA供电区域,主要负责模拟部分的供电,其中包括AD转换,温度传感器,复位模块,PLL锁相环。

这些电路供电正极是VDDA,负极是VSSA

红色部分:数字部分供电,包括两块区域,VDD供电区域

1.8V供电区域

左边的VDD供电区域,包括IO电路,待机电路,唤醒逻辑和独立看门狗。

右边部分是VDD通过电压调节器,降压到1.8V,提供给后面的1.8BV供电区域,其中包括CPU核心,存储器,内置数字外设

蓝色部分:后备供电,叫作VBAT(V Battery)

包括LSE 32K晶体震荡器。后备寄存器,RCC BDCR(备份域控制寄存器)和RTC

  1. 电压检测
  1. 上电复位/掉电复位

这个意思是:当VDD或VDDA电压过低时,内部电路直接产生复位,让STM32复位住,不要乱操作。

这个复位和不复位的界限之间设置了一个40mv的迟滞电压,大于上限POR(Power On Reset)时解除复位,小于下限(Power Down Reset)时复位。

这是一个典型的迟滞比较器,设置阈值的作用,就是防止电压在某个阈值附近波动时,进行复位操作。

在手册中阈值电压分别是1.88V和1,92V,迟滞电压刚好0.4V

  1. 可编程电压检测器(PVD):

它(PVD)的工作流程和上面的上电、掉电复位差不多,都是检测VDD和VDDA供电电压。

但时PVD的区别是:

首先它的阈值电压是可以使用程序指定的,可以自定义调节。

*所以这两个总结一下就是:

3.3v是正常供电,当电压降低,然后在2.2v~2.9v之间,属于PVD的监测范围,可以通过PVD设置一个警告线,之后再降低到1.9v

就是到了复位电路的监测范围,低于1.9v,直接复位住,不让动了。这就是这两个电压检测的工作任务。

  

WFI(Wait For Interrupt、等待中断)

WFE(Wait For Event、等待事件)

介绍中断模式和事件模式:

中断触发响应方式:中断响应/事件响应

中断响应:引脚变化触发中断。

事件响应:不会触发中断,而是触发其他外设操作,属于外设之间的联合工作。

  1. 睡眠模式(一般省电)

进入方法:直接调用WFI(Wait For Interrupt、等待中断)或者WFE(Wait For Event、等待事件),即可进入

唤醒条件

WFI的对应唤醒事件是任一中断(任何设备发生任何中断时,芯片都会立刻醒来)。

WFE对应的唤醒事件是产生唤醒事件(就是中断的事件模式)既可以立刻醒来。

睡眠模式的主要作用

把CPU时钟关闭,程序暂停运行,寄存器数据还在,且较容易唤醒。

  1. 停机模式(非常省电)

进入方法

首先,SLEEPDEEP位设置为1

然后,PDDS位用来区分它是停机模式还是待机模式,PDDS=0进入停机模式,PDDS=1进入待机模式。

接着,LPDS位用来设置最后这个电压调节器,是开启,还是进入低功耗模式,LPDS=0,电压调节器开启,LPDS=1,电压调节器进入低功耗

最后当我们把这些位设置好了,直接调用WFI或WFE,芯片就可以进入停止模式了

唤醒条件:

普通中断无法唤醒,只能是其中任一外部中断可以唤醒。

停止模式的主要操作是

把运行的高速时钟都关了,CPU和外设,都暂停工作,但是电压调节器并没有关,存储器和寄存器数据可以维持原样;不过唤醒条件比较苛刻,只能通过外部中断唤醒。

  1. 待机模式(极为省电)

进入方法:

首先,SLEEPDEEP也是置1,

然后PDDS置1,表示将进入待机模式

最后调用WFI或者WFE,就可以进入待机模式了

唤醒条件:

只有特定的信号才能唤醒

WKUP引脚的上升沿、NRST引脚上的外部复位(就是按下复位键)、RTC闹钟事件、IWFG独立看门狗复位

待机模式的主要操作

把能关的全部关掉,配合RTC和独立看门狗的低速时钟,也可以正常工作。

模式选择图:

上面的树结构是对以上三种模式选择的判断流程的总结;

WFI(等待中断) WFE(等待事件)

介绍中断的中断模式和事件模式

中断触发响应方式:中断响应/事件响应

中断响应:引脚变化触发中断。

事件响应:不会触发中断,而是触发其他外设操作,属于外设之间的联合工作。

以上是我自己对三种模式的理解;

以下是UP主对三种模式的理解:

  1. 睡眠模式:
  1. 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
  2. SLEEPONEXIT位决定STM32执行完WFI或WFE后,是立刻进入睡眠,还是等STM32从最低优先级的中断处理程序中退出时进入睡眠
  3. 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态
  4. WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒
  5. WFE指令进入睡眠模式,可被唤醒事件唤醒

  1. 停止模式
  1. 执行完WFI/WFE指令后,STM32进入停止模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
  2. 1.8V供电区域的所有时钟都被停止,PLL、HSI和HSE被禁止,SRAM和寄存器内容被保留下来
  3. 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态
  4. 当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟
  5. 当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时
  6. WFI指令进入停止模式,可被任意一个EXTI中断唤醒
  7. WFE指令进入停止模式,可被任意一个EXTI事件唤醒

  1. 待机模式:
  1. 执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行
  2. 整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电
  3. 在待机模式下,所有的I/O引脚变为高阻态(浮空输入)
  4. WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值