第42章 电源管理—实现低功耗
全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn
野火视频教程优酷观看网址:http://i.youku.com/firege
本章参考数据:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库说明文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。
42.1 STM32的电源管理简介
电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。因此,STM32有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。
42.1.1 电源监控器
STM32芯片主要通过引脚VDD从外部获取电源,在它的内部具有电源监控器用于检测VDD的电压,以实现复位功能及掉电紧急处理功能,保证系统可靠地运行。
1. 上电复位与掉电复位(POR与PDR)
当检测到VDD的电压低于阈值VPOR及VPDR时,无需外部电路辅助,STM32芯片会自动保持在复位状态,防止因电压不足强行工作而带来严重的后果。见图 421,在刚开始电压低于VPOR时(约1.72V),STM32保持在上电复位状态(POR,Power On Reset),当VDD电压持续上升至大于VPOR时,芯片开始正常运行,而在芯片正常运行的时候,当检测到VDD电压下降至低于VPDR阈值(约1.68V),会进入掉电复位状态(PDR,Power Down Reset)。

图 421 POR与PDR
2. 欠压复位(BOR)
POR与PDR的复位电压阈值是固定的,如果用户想要自行设定复位阈值,可以使用STM32的BOR功能(Brownout Reset)。它可以编程控制电压检测工作在表 421中的阈值级别,通过修改"选项字节"(某些特殊寄存器)中的BOR_LEV位即可控制阈值级别。其复位控制示意图见图 422。
表 421 BOR欠压阈值等级
| 等级 |
条件 |
电压值 |
| 1级欠压阈值 |
下降沿 |
2.19V |
| 上升沿 |
2.29V |
|
| 2级欠压阈值 |
下降沿 |
2.50V |
| 上升沿 |
2.59V |
|
| 3级欠压阈值 |
下降沿 |
2.83V |
| 上升沿 |
2.92V |

图 422 BOR复位控制
3. 可编程电压检测器PVD
上述POR、PDR以及BOR功能都是使用其电压阈值与外部供电电压VDD比较,当低于工作阈值时,会直接进入复位状态,这可防止电压不足导致的误操作。除此之外,STM32还提供了可编程电压检测器PVD,它也是实时检测VDD的电压,当检测到电压低于VPVD阈值时,会向内核产生一个PVD中断(EXTI16线中断)以使内核在复位前进行紧急处理。该电压阈值可通过电源控制寄存器PWR_CSR设置。
使用PVD可配置8个等级,见表 422。其中的上升沿和下降沿分别表示类似图 422中VDD电压上升过程及下降过程的阈值。
表 422 PVD的阈值等级
| 阈值等级 |
条件 |
最小值 |
典型值 |
最大值 |
单位 |
| 级别0 |
上升沿 |
2.09 |
2.14 |
2.19 |
V |
| 下降沿 |
1.98 |
2.04 |
2.08 |
V |
|
| 级别1 |
上升沿 |
2.23 |
2.3 |
2.37 |
V |
| 下降沿 |
2.13 |
2.19 |
2.25 |
V |
|
| 级别2 |
上升沿 |
2.39 |
2.45 |
2.51 |
V |
| 下降沿 |
2.29 |
2.35 |
2.39 |
V |
|
| 级别3 |
上升沿 |
2.54 |
2.6 |
2.65 |
V |
| 下降沿 |
2.44 |
2.51 |
2.56 |
V |
|
| 级别4 |
上升沿 |
2.7 |
2.76 |
2.82 |
V |
| 下降沿 |
2.59 |
2.66 |
2.71 |
V |
|
| 级别5 |
上升沿 |
2.86 |
2.93 |
2.99 |
V |
| 下降沿 |
2.65 |
2.84 |
3.02 |
V |
|
| 级别6 |
上升沿 |
2.96 |
3.03 |
3.1 |
V |
| 下降沿 |
2.85 |
2.93 |
2.99 |
V |
|
| 级别7 |
上升沿 |
3.07 |
3.14 |
3.21 |
V |
| 下降沿 |
2.95 |
3.03 |
3.09 |
V |
42.1.2 STM32的电源系统
为了方便进行电源管理,STM32把它的外设、内核等模块跟据功能划分了供电区域,其内部电源区域划分见图 423。

图 423 STM32的电源系统
从框图了解到,STM32的电源系统主要分为备份域电路、内核电路以及ADC电路三部分,介绍如下:
备份域电路
STM32的LSE振荡器、RTC、备份寄存器及备份SRAM这些器件被包含进备份域电路中,这部分的电路可以通过STM32的VBAT引脚获取供电电源,在实际应用中一般会使用3V的钮扣电池对该引脚供电。
在图中备份域电路的左侧有一个电源开关结构,它的功能类似图 424中的双二极管,在它的上方连接了VBAT电源,下方连接了VDD主电源(一般为3.3V),右侧引出到备份域电路中。当VDD主电源存在时,由于VDD电压较高,备份域电路通过VDD供电,当VDD掉电时,备份域电路由钮扣电池通过VBAT供电,保证电路能持续运行,从而可利用它保留关键数据。

图 424 双二极管结构
调压器供电电路
在STM32的电源系统中调压器供电的电路是最主要的部分,调压器为备份域及待机电路以外的所有数字电路供电,其中包括内核、数字外设以及RAM,调压器的输出电压约为1.2V,因而使用调压器供电的这些电路区域被称为1.2V域。
调压器可以运行在"运行模式"、"停止模式"以及"待机模式"。在运行模式下,1.2V域全功率运行;在停止模式下1.2V域运行在低功耗状态,1.2V区域的所有时钟都被关闭,相应的外设都停止了工作,但它会保留内核寄存器以及SRAM的内容;在待机模式下,整个1.2V域都断电,该区域的内核寄存器及SRAM内容都会丢失(备份区域的寄存器及SRAM不受影响)。
ADC电源及参考电压
为了提高转换精度,STM32的ADC配有独立的电源接口,方便进行单独的滤波。ADC的工作电源使用VDDA引脚输入,使用VSSA作为独立的地连接,VREF引脚则为ADC提供测量使用的参考电压。
42.1.3 STM32的功耗模式
按功耗由高到低排列,STM32具有运行、睡眠、停止和待机四种工作模式。上电复位后STM32处于运行状态时,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中,电源消耗不同、唤醒时间不同、唤醒源不同,用户需要根据应用需求,选择最佳的低功耗模式。三种低功耗的模式说明见表 423。
表 423STM32的低功耗模式说明
| 模式 |
说明 |
进入方式 |
唤醒方式 |
对1.2V区域时钟的影响 |
对VDD区域时钟的影响 |
调压器 |
| 睡眠 |
内核停止,所有外设包括M4核心的外设,如NVIC、系统时钟(SysTick)等仍在运行 |
调用WFI命令 |
任一中断 |
内核时钟关,对其他时钟和ADC时钟无影响 |
无 |
开 |
| 调用WFE命令 |
唤醒事件 |
|||||
| 停止 |

最低0.47元/天 解锁文章
1199

被折叠的 条评论
为什么被折叠?



