良许Linux教程网 干货合集 STM32学习笔记 | 电源管理及低功耗设计要点

STM32学习笔记 | 电源管理及低功耗设计要点

对于一款优质的电子产品,电源管理问题都应该得到认真考虑,尤其是那些使用电池供电的产品,更应该关注低功耗的实现。

STM32电源介绍

每一块STM32芯片都内置了一个电源控制器(PWR),尽管在不同系列的STM32中存在一些差异,但其基本功能是相似的。

1. 电压
绝大部分STM32芯片的工作电压要求在1.8V至3.6V之间,在内部还嵌入了一个用于提供1.2V数字电源的嵌入式线性调压器。

2. 类型
STM32芯片的电源一般分为三种类型:数字电源、模拟电源和备份电源。

  • 数字电源(VDD)是主要的电源,用于供应数字部分的电路。
  • 模拟电源(VDDA)则专门用于供应模拟部分,如ADC(模数转换器),这样可以独立进行滤波和抗干扰处理,以减少来自PCB的噪声干扰。
  • 备份电源(VBAT)用于供应备份区域的电路,比如RTC(实时时钟)和备份SRAM(静态随机存储器)等。它能够在主电源断电时为这些区域提供电源供应。
image-20231217194055843
image-20231217194055843

▲ STM32F4备份域

**3.**调压器

多数STM32都有电源调节器(有些型号没有),为备份域和待机电路以外的所有数字电路供电,调压器输出电压约为 1.2 V。
运行模式:调压器为 1.2 V 域(内核、存储器和数字外设)提供全功率。

停止模式:调压器为 1.2 V 域提供低功率,保留寄存器和内部 SRAM 中的内容。

待机模式:调压器掉电。除待机电路和备份域外,寄存器和 SRAM 的内容都将丢失。

STM32的低功耗模式

STM32的工作模式通常可分为4类运行模式、睡眠模式、停止模式、待机模式。根据STM32类型不同,可将工作模式进一步划分。比如STM32L低功耗系列,睡眠模式可进一步划分为:普通睡眠模式和低功耗睡眠模式。

  • 以STM32F4为例:
  • 运行模式:默认进入该模式;
  • 睡眠模式:内核停止,外设保持运行
  • 停止模式:所有时钟都停止
  • 待机模式:1.2 V 域断电
image-20231217194100997
image-20231217194100997

▲ STM32睡眠/停止/待机模式图解

STM32低功耗设计要点

STM32低功耗通常会结合项目实际情况,以及应用场景来进行针对性设计。以下面几个案例来进行说明。

案例一:有工程师提到:STM32F103 进入****STOP 模式后无法通过串口唤醒

分析原因:这位工程师对低功耗唤醒机制理解有误:STM32进入 STOP 模式后不能直接通过 UART 等中断外设唤醒, 只能通过 EXTI 外部中断方式唤醒。

解决办法:我们可以在 MCU 进入 STOP 前将 RX 脚设为 EXTI 模式,并使能对应的中断来实现。

案例二:有工程师提到:STM32F051进入低功耗之后,实际功耗远大于理想功耗。

分析原因:造成问题的原因可能是工程师通过直接调用“停止模式”,进入低功耗,但部分IO外部有上拉电阻,进入低功耗之前未做调整,导致功耗偏大。

解决办法:进入低功耗之前,对使用和未使用IO状态进行调整。比如有外部上拉,可配置成模拟输入等。

案例三:有工程师提到:通过按键唤醒STM32F103,串口不能正常工作?

分析原因:经分析发现,开发者进入的低功耗模式为待机模式,唤醒之后,未初始化串口外设,导致串口不能正常工作。在待机模式下,所有外设都关闭,意味着所有外设配置都为默认值。

解决办法:唤醒STM32之后,重新初始化串口(以及所有使用的)外设。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部