STM32电源管理笔记

一、电源管理

  • STM32 默认VDD供电引脚高于1.72V上电复位,低于1.68V掉电复位。
    在这里插入图片描述
  • 上电电压和掉电电压值是可以配置的,通过修改选项字节,在程序运行前对flash的某些地址做了修改。
    在这里插入图片描述
  • 可编程电压检测器 PVD,会向内核产生一个 PVD 中断(EXTI16 线中断)以使内核在复位前进行紧急处理,使在掉电前在中断中做一些紧急的数据处理。

STM32 的电源系统:
在这里插入图片描述

二、低功耗

  • STM32 具有运行、睡眠、停止和待机四种工作模式。低功耗平常能用到睡眠模式和停止模式。更多用到的是停止模式,WFI(wait for interrupt),因为中断基本上都是使能后触发,事件的话任意一个外设都有很多事件(比如串口的非空、空闲),睡眠模式就很容易就唤醒了。
  • 注意唤醒后默认使用的是内部HSI时钟,需要配置为外部HSE时钟。
  • 在这里插入图片描述

1、睡眠模式

  • 在睡眠模式中,仅关闭了内核时钟,内核停止运行,但其片上外设(GPIO、ADC…),CM4 核心的外设(NVIC、SysTick)全都还照常运行。
  • 有两种方式进入睡眠模式,它的进入方式决定了从睡眠唤醒的方式,分别是 WFI(wait for interrupt)和 WFE(wait for event),即由等待“中断”唤醒和由“事件”唤醒。
    -比如,DMA_GetFlagStatus()是获取事件,DMA_GetITStatus是获取中断
    在这里插入图片描述
		//进入睡眠模式
		HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);

2、停止模式

  • 在停止模式中,进一步关闭了其它所有的时钟,于是所有的外设都停止了工作,但由于其 1.2V 区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所以从停止模式唤醒,并重新开启时钟后,还可以从上次停止处继续执行代码。
  • 停止模式可以由任意一个外部中断(EXTI)唤醒。在停止模式中可以选择电压调节器为开模式或低功耗模式,可选择内部 FLASH 工作在正常模式或掉电模式。
  • 停止模式关闭了晶振,因此唤醒时需要配置外部晶振,不然会使用内部晶振。
  • 调压器可根据情况选择开启还是处于低功耗模式,如果想尽快唤醒,立刻相应外设,可以选择开启的状态。
    在这里插入图片描述
		/* 进入停止模式,设置电压调节器为低功耗模式,等待中断唤醒 */
		HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);
		/* 从停止模式唤醒后需要重新配置系统时钟:启用HSE、PLL*/

3、待机模式

  • 待机模式,它除了关闭所有的时钟,还把 1.2V 区域的电源也完全关闭了,也就是说,从待机模式唤醒后,由于没有之前代码的运行记录,只能对芯片复位,重新检测 boot 条件,从头开始执行程序。相当于重启了,因此不常用。
  • 它有四种唤醒方式,分别是 WKUP(PA0)引脚的上升沿,RTC 闹钟事件,NRST 引脚的复位和 IWDG(独立看门狗)复位。

STM32电源简图

在这里插入图片描述

VDDA:ADC工作电源;
VSSA:ADC独立的地连接;
VREF:引脚则为 ADC 提供测量使用的参考电压;

VDD:1.8V 供电区域电源;
VSS:1.8V 供电区域地;

VBAT:后备供电区域供电,一般此引脚还接着纽扣电池。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值