历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2021年12月20日 | STM32电源管理—实现低功耗

2021-12-20 来源:eefocus

一、电源管理—实现低功耗

电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。 在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。 因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式, 确保系统正常运行,并尽量降低器件的功耗。


默认情况下,系统复位或上电复位后,微控制器进入运行模式。在运行模式下, CPU 通过HCLK 提供时钟,并执行程序代码。系统提供了多个低功耗模式,可在 CPU不需要运行时(例如等待外部事件时)节省功耗。由用户根据应用选择具体的低功耗模式,以在低功耗、短启动时间和可用唤醒源之间寻求最佳平衡。


详细信息看中文手册的第五章,5.3电源管理


器件有三个低功耗模式:


(1)睡眠模式(Cortex-M4内核停止,外设保持运行,唤醒速度是最快的,

    执行WFI (Wait For   Interrupt,任何中断都能唤醒)

(2)停止模式(所有时钟都停止,执行PWR_EnterSTOPMode,外部中断控制线唤醒,例如按键)

(3)待机模式(1.2 V 域断电,唤醒速度最慢,程序从头开始运行,就跟手机关机一样,这种模式一般用的不多,调用PWR_EnterSTANDBYMode)


此外,可通过下列方法之一降低运行模式的功耗:

(1)降低系统时钟速度

(2)不使用 APBx 和 AHBx 外设时,将对应的外设时钟关闭


二、睡眠模式


在睡眠模式中,仅关闭了内核时钟,内核停止运行,但其片上外设, CM4 核心的外设全都还照常运行。有两种方式进入睡眠模式,它的进入方式决定了从睡眠唤醒的方式,分别是 WFI(wait for interrupt)和 WFE(wait for event),即由等待“中断”唤醒和由“事件”唤醒。


1.睡眠模式各种特性


立即睡眠 :在执行 WFI 或 WFE 指令时立即进入睡眠模式。


退出时睡眠 :在退出优先级最低的中断服务程序后才进入睡眠模式。


进入方式: 内核寄存器的 SLEEPDEEP = 0 ,然后调用 WFI 或 WFE 指令即可进入睡眠模式;

另外若内核寄存器的 SLEEPONEXIT=0 时 , 进入“ 立即睡眠 ” 模式SLEEPONEXIT=1 时,进入“退出时睡眠”模式。


唤醒方式: 如果是使用 WFI (Wait From Interrupt)指令睡眠的,则可使用任意中断唤醒;如果是使用 WFE(Wait From Event) 指令睡眠的,则由事件唤醒。


睡眠时 ,关闭内核时钟,内核停止,而外设正常运行,在软件上表现为不再执行新的代码。这个状态会保留睡眠前的内核寄存器、内存的数据。


唤醒延迟 :无延迟。


唤醒后 ,若由中断唤醒,先进入中断,退出中断服务程序后,接着执行 WFI 指令后的程序;若由事件唤醒,直接接着执行 WFE 后的程序。

进入睡眠模式之后,任意中断可以唤醒CPU。


三、停止模式


在停止模式中,进一步关闭了其它所有的时钟,于是所有的外设都停止了工作,但由于其 1.2V 区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所以从停止模式唤醒,并重新开启时钟后,还可以从上次停止处继续执行代码。停止模式可以由任意一个外部中断(EXTI)唤醒。在停止模式中可以选择电压调节器为开模式或低功耗模式,可选择内部 FLASH 工作在正常模式或掉电模式。


当退出停止模式后,它是选择内部的HSI RC振荡器作为时钟,但是这不是我们想要的CPU的频率,所以重新调用SysteInit函数


1.停止模式的各种特性


调压器低功耗模式 :在停止模式下调压器可工作在正常模式或低功耗模式,可进一步降低功耗

FLASH掉电模式 : 在停止模式下 FLASH 可工作在正常模式或掉电模式,可进一步降低功耗

进入方式 : 内核寄存器的 SLEEPDEEP =1, PWR_CR 寄存器中的 PDDS=0,然后调用 WFI或 WFE 指令即可进入停止模式;

PWR_CR 寄存器的 LPDS=0 时,调压器工作在正常模式, LPDS=1 时工作在低功耗模式;

PWR_CR 寄存器的 FPDS=0 时, FLASH 工作在正常模式, FPDS=1 时进入掉电模式。

唤醒方式 : 如果是使用 WFI 指令睡眠的,可使用任意 EXTI 线的中断唤醒;如果是使用 WFE 指令睡眠的,可使用任意配置为事件模式的 EXTI 线事件唤醒。


停止时, 内核停止,片上外设也停止。这个状态会保留停止前的内核寄存器、内存的数据。


唤醒延迟 : 基础延迟为 HSI 振荡器的启动时间,若调压器工作在低功耗模式,还需要加上调压器从低功耗切换至正常模式下的时间,

若 FLASH 工作在掉电模式,还需要加上 FLASH 从掉电模式唤醒的时间。


唤醒后, 若由中断唤醒,先进入中断,退出中断服务程序后,接着执行 WFI 指令后的程序;若由事件唤醒,直接接着执行 WFE 后的程序。唤醒后, STM32会使用 HIS 作为系统时钟。

由外部中断按键触发唤醒。


四、待机模式


待机模式,它除了关闭所有的时钟,还把 1.2V 区域的电源也完全关闭了,也就是说,从待机模式唤醒后,由于没有之前代码的运行记录,只能对芯片复位,重新检测 boot 条件,

从头开始执行程序。它有四种唤醒方式,分别是 WKUP(PA0)引脚的上升沿(相当于手机的电源键), RTC 闹钟事件(相当于手机自动开机), NRST 引脚的复位和 IWDG(独立看门狗)复位。


1、 待机模式的各种特性


进入方式 : 内核寄存器的 SLEEPDEEP =1, PWR_CR 寄存器中的 PDDS=1, PWR_CR 寄存器中的唤醒状态位 WUF=0,然后调用 WFI 或 WFE 指令即可进入待机模式;


唤醒方式 : 通过 WKUP 引脚的上升沿, RTC 闹钟、唤醒、入侵、时间戳事件或NRST 引脚外部复位及 IWDG 复位唤醒。


待机时 , 内核停止,片上外设也停止;内核寄存器、内存的数据会丢失;除复位引脚、 RTC_AF1 引脚及 WKUP 引脚,其它 I/O 口均工作在高阻态。


唤醒延迟 : 芯片复位的时间

唤醒后 , 相当于芯片复位,在程序表现为从头开始执行代码

推荐阅读

史海拾趣

千志电子(CCO)公司的发展小趣事

千志电子一直注重技术研发和创新,不断推动产业升级。公司拥有一支专业的研发团队和先进的研发设备,致力于电阻技术的研发和创新。通过与高校和科研机构的合作,千志电子不断引进新技术、新工艺和新材料,提高产品的技术含量和附加值。同时,千志电子还注重知识产权的保护和管理,积极申请专利和注册商标,维护了自身的合法权益。

AND Displays公司的发展小趣事

AND Displays公司自成立以来,一直致力于显示技术的研发与创新。在早期阶段,公司团队就针对当时市场上显示面板的缺陷,进行了一系列技术攻关。经过数年的努力,AND Displays成功开发出了一种新型显示技术,该技术在色彩还原、对比度和响应速度等方面均表现出色,迅速获得了市场的认可。此后,公司不断推出创新产品,满足了消费者对高质量显示面板的日益增长的需求,逐渐在电子行业中崭露头角。

CUI公司的发展小趣事

近年来,智能化和物联网技术的快速发展为电子行业带来了前所未有的机遇。CUI技术作为实现电子设备智能化和互联互通的关键环节之一,得到了广泛的应用。一些企业针对智能化和物联网的需求,开发出具有特殊功能的CUI材料,如柔性CUI、透明CUI等,为电子产品的创新提供了有力支持。

请注意,以上故事仅为概述性质,并非针对特定公司的实际发展历程。每个公司的具体情况可能因市场环境、技术实力、管理策略等因素而有所不同。如果需要了解特定公司的具体发展故事,建议查阅相关公司的官方网站、新闻报道或行业分析报告。

AR RF/Microwave Instrumentation公司的发展小趣事

面对未来的发展,AR RF/Microwave Instrumentation制定了明确的战略规划。他们将继续加大在研发和创新方面的投入,推出更多具有创新性和竞争力的产品。同时,公司还将积极拓展新的应用领域和市场,寻求更多的合作机会,以实现更加广泛的发展。

请注意,以上仅为概述性的故事框架,并非具体的事实描述。如果你需要更详细、具体的故事内容,建议查阅AR RF/Microwave Instrumentation公司的官方资料、新闻报道或行业分析报告等,以获取更准确的信息。

GE Oil & Gas Digital Solutions公司的发展小趣事
通过调整电路参数(如电阻比值、电容值等)来优化电路性能,使振荡频率与待测电阻的阻值关系更加线性化。
ERNI Electronics公司的发展小趣事

除了连接器产品外,ERNI Electronics的系统技术部门也取得了显著的发展。该部门为客户提供标准型和定制化的背板和子系统解决方案,以及高性能、自行设计的工具制造、现代器件装配和测试设备等高附加值服务。随着市场对完整解决方案的需求不断增长,系统技术部门的业绩也实现了大幅增长,成为公司发展的重要支柱之一。

问答坊 | AI 解惑

单极隔离式功率因数校正(PFC)变换器

单极隔离式功率因数校正(PFC)变换器       现代开关电源的主要发展趋向之一是提高AC/DC变换器输入端功率因数,减少对电网的谐波污染。传统的AC/DC开关变换器输入端是二极管整流—电容滤波组合电路,其输入端电流波形呈 ...…

查看全部问答>

stm32 中断问题

在进行STM32程序调试时,发现按下中断按键时,程序始终停在一个状态(LED1亮/灭),不知道在中断时为什么会出现这样的现象,各位大侠帮帮忙,万分感谢。 程序代码如下: #include \"stm32f10x_lib.h\" GPIO_InitTypeDef GPIO_InitSt ...…

查看全部问答>

请问用单片机如何读手机LCD数据?

请问用单片机如何读手机LCD数据? AT命令我找了一下,好象只有AT+CKPD控制按钮写屏幕的,有没有读LCD的命令呢?…

查看全部问答>

单片机的烧程序软件stc_isp在vista操作系统下为什么装不上?

我想学单片机,前几天系统是xp的时候还能用stc_isp,可用了几天就不能用了,电脑还有了病毒,最后一键还原,系统成了vista ,但硬是装不上stc_isp,请大家帮帮忙,解决一下问题,找个能在vista 下能装的stc_isp ,或解决一怎么样才能装上。谢谢啦!! ...…

查看全部问答>

要写两个程序,一个运行在PC机上,一个在PDA上,两个机器通过usb连接,要他们之间传递信息,请问如何实现

我的本意是像socket编程那样,一个server,一个client两个互相传递信息,唯一的区别是通过usb线而不是网线,请高手指教…

查看全部问答>

【入门】ARM开发板上的Hello World

搞了三天,终于出来了。虽然狂简单,但是这是我的一大步。发个帖子纪念一下。如果这些东西对你有用,请你留言让我知道。哪怕就是一个“顶”字,也是对我的鼓励。 谢谢。 说明: 硬件是一块以前的人开发后遗留下来的ARM开发板,芯片内部的rom ...…

查看全部问答>

在二层交换机上开发snmp

现有一个二层交换机,需要开发snmp功能,请高手介绍下开发流程,从哪里入手呢?…

查看全部问答>

做过手持机二次开发的进来指导下吧。。。。。。。。。。

第一次做硬件开发  能不能给点指导    比如,如何开发、怎么调用硬件等 如果有中文的开发指导说明,发一份给我hxgwd_5658@126.com 谢谢!!!!…

查看全部问答>

2812会明显发热吗?

之前没有留意过2812发热的问题 现在手头上的这块板子,当2812跑到150M的时候 无意中碰到了芯片,发现还挺烫的 我想问问,是不是2812正常运行的时候不会明显发热 如果明显发热就说明这个片子坏了?…

查看全部问答>

电力猫方案完美解决家庭网络布局

电力猫是一项基于电力线传输信号的设备,它使同一电路回路的家庭或小办公室透过既有的电源线路,建构区域网路。对于家庭或小办公室用户而言,电力猫产品提供了最便捷、最安全的方式,有效延伸区域网路的涵盖范围。电力猫作为第三代主流网络设备,不 ...…

查看全部问答>