• STM32-PWR电源控制


    PWR(Power Control)电源控制

    管理STM32内部的电源供电部分,可以实现可编程电压检测器和低功耗模式的功能。

    电源管理器

    上电复位(POR)和掉电复位(PDR

    STM32内部有一个完整的上电复位(POR)和掉电复位(PDR)电路,当供电电压达到2V时系统能正常工作。

    当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。

    大于上限解除复位,小于下限进行复位。

    当VDD或者VDDA电压过低时,会产生复位操作,可以理解为冻结1.8v区域的电子器件

    可编程电压操作器(PVD)

    用户可以利用PVD对VDD电压与电源控制寄存器(PWR_CR)中的PLS[2:0]位进行比较来监控电源,这几位选择监控电压的阀值。

    PVD的阈值电压可以使用程序进行指定。

    PVD的监测范围在复位电路的监测电压范围之上。

    可以申请外部中断来提醒用户电压过低。

    低功耗模式

    在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。

    • 睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行)
    • 停止模式(所有的时钟都已停止)
    • 待机模式(1.8V电源关闭)

    此外运行模式下可以通过降低时钟主频和关闭APB和AHB上未被使用的外设时钟来降低功耗。

    在运行模式下,通过对预分频寄存器进行编程,可以降低任意一个系统时钟(SYSCLK、HCLK、 PCLK1、 PCLK2)的速度。进入睡眠模式前,也可以利用预分频器来降低外设的时钟。

    睡眠模式

    • 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。有点类似于进入了一个叫睡眠的中断。
    • SLEEPONEXIT决定STM32执行完WFI或WFE后是立刻进入睡眠还是等STM32从中断中退出时在进入睡眠。这样这个“睡眠”中断的优先级为最低。
    • 睡眠后,所有的I/O都保持运行模式时的状态。
    • WFI可被任意一个NVIC响应的中断唤醒。
    • WFE可被唤醒事件唤醒。

    事件唤醒方法:

    1. 在外设控制寄存器中使能一个中断,而不是在NVIC(嵌套向量中断控制器)中使能,并且在Cortex-M3系统控制寄存器中使能SEVONPEND位。当MCU从WFE中唤醒后,外设的中断挂起位和外设的NVIC中断通道挂起位(在NVIC中断清除挂起寄存器中)必须被清除。
    2. 配置一个外部或内部的EXIT线为事件模式。当MCU从WFE中唤醒后,因为与事件线对应的挂起位未被设置,不必清除外设的中断挂起位或外设的NVIC中断通道挂起位

    该模式唤醒所需的时间最短,因为没有时间损失在中断的进入或退出上。

    停止模式

    • 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。有点类似于进入了一个叫睡眠的中断。
    • 1.8V供电区域的所有时钟都被停止PLLHSIHSE被禁止,SRAM和寄存器内容被保留下来。
    • 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。
    • 当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟。所以一般在启动后第一时间重新启动HSE,配置主频为72MHz。
    • 当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时。
    • WFI指令进入停止模式,可被任意一个EXTI中断唤醒。
    • WFE指令进入停止模式,可被任意一个EXTI事件唤醒。
    • 如果正在进行闪存编程,直到对内存访问完成,系统才进入停止模式。
    • 如果正在进行对APB的访问,直到对APB访问完成,系统才进入停止模式。
    • 外部中断不需要时钟,可以唤醒停止模式。
       

    待机模式

    • 执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行。从头运行就不用再设置系统时钟。
    • 整个1.8V供电区域被断电,PLLHSIHSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电。
    • 在待机模式下,所有的I/O引脚变为高阻态(浮空输入)。
    • WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式。
    • 以下引脚任然保持有效果:
      • 复位引脚(始终有效)
      •  当被设置为防侵入或校准输出时的TAMPER引脚
      • 被使能的唤醒引脚
      • WKUP唤醒不用初始化GPIO口

  • 相关阅读:
    JUC-管程
    算法通关村第十一关青铜挑战——移位运算详解
    php判断文件类型是否是图片
    什么是war包?war包该怎么运行?
    基于ssm的大学生心理健康系统-计算机毕业设计
    【车载开发系列】UDS诊断---诊断故障清除($0x14)
    给科研背景出身公司创始人的九条干货建议
    git 命令积累
    Web前端:Web开发人员的顶级前端开发趋势
    C++小知识
  • 原文地址:https://blog.csdn.net/qq_43861548/article/details/136644663