STM32学习笔记 | 电源管理及低功耗设计要点
扫描二维码
随时随地手机看文章
一款好的电子产品,都需要认真考虑电源管理的问题,电池供电的产品更应该注意低功耗的实现。
嵌入式专栏
1
STM32电源介绍 每一块STM32芯片中都有一个电源控制器(PWR),不同系列的STM32有相似,也有差异。
1.电压
绝大部分STM32的电压要求介于 1.8 V 到 3.6 V 之间,嵌入式线性调压器用于提供内部 1.2 V 数字电源。
2.类型
数字电源:VDD也是其主电源,主要用于数字部分;
模拟电源:VDDA用于模拟部分的电源,比如ADC,这样可以单独滤波并屏蔽 PCB 上的噪声。
备份电源:VBAT用于备份区域的电源,比如RTC、备份SRAM等,一旦主电源断开,VBAT可以为这些区域提供电源。
▲ STM32F4备份域
3. 调压器 多数STM32都有电源调节器(有些型号没有),为备份域和待机电路以外的所有数字电路供电,调压器输出电压约为 1.2 V。
运行模式: 调压器为 1.2 V 域(内核、存储器和数字外设)提供全功率。 停止模式: 调压器为 1.2 V 域提供低功率,保留寄存器和内部 SRAM 中的内容。 待机模式: 调压器掉电。除待机电路和备份域外,寄存器和 SRAM 的内容都将丢失。
嵌入式专栏
2
STM32的低功耗模式 STM32 的工作模式通常可分为 4类 :运行模式、睡眠模式、停止模式、待机模式。根据 STM32 类型不同,可将工作模式进一步划分。比如 STM32L 低功耗系列,睡眠 模式可进一步划分为:普通睡眠模式和低功耗睡眠模式。
- 以ST M32F4为例:
-
运行模式:默认进入该模式;
-
睡眠模式:内核停止,外设保持运行
-
停止模式:所有时钟都停止
-
待机模式:1.2 V 域断电
▲ STM32睡眠/停止/待机模式图解
嵌入式专栏
3
STM32低功耗设计要点
STM32低功耗通常会结合项目实际情况,以及应用场景来进行针对性设计。以下面几个案例来进行说明。
案例一:有工程师提到:STM32F103 进入STOP 模式后无法通过串口唤醒 ?
分析原因:这位工程师对低功耗唤醒机制理解有误:STM32进入 STOP 模式后不能直接通过 UART 等中断外设唤醒, 只能通过 EXTI 外部中断方式唤醒。
解决办法: 我们可以在 MCU 进入 STOP 前将 RX 脚设为 EXTI 模式,并使能对应的中断来实现。 案例二: 有工程师提到: STM32F051进入低功耗之后,实际功耗远大于理想功耗。 分析原因:造成问题的原因可能是工程师通过直接调用“停止模式”,进入低功耗,但部分IO外部有上拉电阻,进入低功耗之前未做调整,导致功耗偏大。解决办法: 进入低功耗之前,对使用和未使用 IO 状态进行调整。比如有外部上拉,可配置成模拟输入等。
案例三: 有工程师提到:通过按键唤醒 STM32F103 ,串口不能正常工作? 分析原因: 经分析发现,开发者进入的低功耗模式为待机模式,唤醒之后,未初始化串口外设,导致串口不能正常工作。在待机模式下,所有外设都关闭,意味着所有外设配置都为默认值。 解决办法: 唤醒 STM32 之后,重新初始化串口(以及所有使用的)外设。
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!