stm32之低功耗总结

发布者:Lianai最新更新时间:2022-01-10 来源: eefocus关键字:STM32  低功耗  唤醒 手机看文章 扫描二维码
随时随地手机看文章

四、写一写到底选择什么模式:

再看完几篇大神的文章之后,我觉得应该重新规划一下文章的描述方式,我们首先就要明白自己的目的是什么,然后看看自己的目的的最好结果和最差结果,然后分析自己目前的处境。最后才是选择方法途径,也许再明白自己和目标的局限性之后,才能更好的实现目标吧。


找到目标--------------》认清现状--------------》找方法


4.1、低功耗的目的和应用:

我们做低功耗目的可以说是相当简单,那就是省电,省下电量。

但是,省电只是一个特性,我们不能用这个特性来影响了主要的功能,所以stm提供了多种的省电方式。

我们先按照常见的产品来分低功耗的类型:


最不需要省电的:例如很多常备设备,比如那些要保持一定在线的比如数据库,服务器这种。

需要低功耗,但是要可以迅速唤醒:这个,就必须保持实时了,比如蓝牙耳机,不播放音乐或者没有连接时,当然可以低功耗,但是一旦有信号,当然是要匀速唤醒。

需要低功耗,可以忍受短时间恢复:

需要低功耗,每次使用时,需要长时间恢复:


4.2、stm32各种模式的区别:

low_power modes

4.2.1、睡眠模式

通过执行WFI(等待中断)或WFE(等待中断)进入睡眠模式。

活动)说明。有两个选项可用于选择睡眠模式输入机制,

取决于Cortex-M3系统控制寄存器中的SLEEPONEXIT位:


●立即休眠:如果清除了SLEEPONEXIT位,则MCU会立即进入休眠模式

当执行WFI或WFE指令时。

●退出时休眠:如果SLEEPONEXIT位置1,则MCU会在进入退出最低优先级的ISR后,立即进入休眠模式。

在休眠模式下,所有I / O引脚保持与运行模式相同的状态。

有关如何进入休眠模式的详细信息,请参见表2和表3。


退出睡眠模式

如果使用WFI指令进入休眠模式,则任何外设中断都会由嵌套向量中断控制器(NVIC)可以将器件从休眠模式唤醒。

如果使用WFE指令进入休眠模式,则MCU会在退出后立即退出休眠模式。

可以通过以下任一方式生成唤醒事件:

●启用外围控制寄存器中的中断,但不启用NVIC中的中断,并启用

Cortex-M3系统控制寄存器中的SEVONPEND位。当单片机

从WFE,外设中断挂起位和外设NVIC IRQ恢复

必须清除通道挂起位(在NVIC中断清除挂起寄存器中)。

●或在事件模式下配置外部或内部EXTI线路。当CPU恢复时

从WFE,无需清除外设中断挂起位或NVIC

未设置IRQ通道挂起位,因为未设置与事件行相对应的挂起位。

此模式提供了最短的唤醒时间,因为在中断进入/退出时不会浪费时间。

在这里插入图片描述
在这里插入图片描述

4.2.2、停止模式:

停止模式基于Cortex-M3深度睡眠模式和外围时钟的结合门控。稳压器可以配置为正常或低功耗模式。停止中

模式下,将停止1.8 V域中的所有时钟,PLL,HSI和HSE RC振荡器被禁用。 SRAM和寄存器内容被保留。

在停止模式下,所有I / O引脚保持与运行模式下相同的状态。


进入停止模式

有关如何进入停止模式的详细信息,请参见表4。为了进一步降低停止模式下的功耗,可以将内部稳压器设为置于低功耗模式。

这由电源控制寄存器的LPDS位配置(PWR_CR)。

如果正在进行闪存编程,则将停止模式的输入延迟到存储器访问完成。

如果正在进行对APB域的访问,则停止模式条目将延迟到APB为止访问完成。

在停止模式下,可以通过编程各个控制位来选择以下功能:

●独立看门狗(IWDG):通过写入其密钥寄存器或通过以下方式启动IWDG硬件选项。启动后,除非复位,否则无法停止。

●实时时钟(RTC):由备份域中的RTCEN位配置控制寄存器(RCC_BDCR)

●内部RC振荡器(LSI RC):由控制/状态中的LSION位配置寄存器(RCC_CSR)。

●外部32.768 kHz振荡器(LSE OSC):由外部的LSEON位配置备份域控制寄存器(RCC_BDCR)。

除非禁用它们,否则ADC或DAC在停止模式下也可能消耗功率

在输入之前。要禁用它们,需使用ADC_CR2寄存器中的ADON位和ENx位

DAC_CR寄存器中的0必须都写入0。


退出停止模式

有关如何退出停止模式的更多详细信息,请参见表4。

通过发出中断或唤醒事件退出停止模式时,HSI RC振荡器为选择作为系统时钟。

表3.退出时睡眠

退出睡眠说明

模式输入

WFI(等待中断)时:

SLEEPDEEP = 0且SLEEPONEXIT = 1

请参考Cortex™-M3系统控制寄存器。

模式退出中断。唤醒延迟无。

电源AN2629

12/43 Doc ID 13922 Rev 2

当稳压器在低功耗模式下运行时,会增加一个启动延迟,从“停止”模式唤醒时发生。通过在停止期间保持内部调节器为ON模式下,尽管启动时间减少了,但是消耗却更高。

在这里插入图片描述

4.2.3、待机模式:

待机模式可实现最低功耗。它基于Cortex-M3深度睡眠模式,禁用了稳压器。 1.8 V域关闭。 PLL,HSI振荡器和HSE振荡器也是关闭。除备份域中的寄存器外,SRAM和寄存器内容均丢失和备用电路(见图1)。

进入待机模式

有关如何进入待机模式的更多详细信息,请参见表5。

在待机模式下,可以通过对单个控制进行编程来选择以下功能位:

●独立看门狗(IWDG):通过写入其密钥寄存器或通过以下方式启动IWDG硬件选项。一旦启动,除非复位,否则无法停止。

●实时时钟(RTC):由备份域控件中的RTCEN位配置寄存器(RCC_BDCR)

●内部RC振荡器(LSI RC):由控制/状态中的LSION位配置寄存器(RCC_CSR)。

●外部32.768 kHz振荡器(LSE OSC):由外部的LSEON位配置备份域控制寄存器(RCC_BDCR)


退出待机模式

当外部复位(NRST引脚),IWDG复位,

WKUP引脚上出现上升沿或出现RTC警报。唤醒后重置所有寄存器

除了电源控制/状态寄存器(PWR_CSR)之外,其他功能均来自待机模式。

从待机模式唤醒后,程序执行将以与

复位(引导引脚采样,获取向量复位等)。电源中的SBF状态标志

控制/状态寄存器(PWR_CSR)指示MCU处于待机模式。

在这里插入图片描述

4.2.4、模式区别对比:

4.2.4.1三种模式时钟区别:

睡眠模式,cpu时钟关闭所有的外设包括m3核心外设像:NVIC,SYStick,etc,running。

停止模式:所有的时钟停止,但是保留1.8v供电。

待机模式:1.8V断电。


4.2.4.2三种模式唤醒区别:

睡眠模式:所有中断

停止模式:外部中断

待机模式:重新上电,RTC时钟,设定的唤醒管脚上升沿。


4.2.4.3三种模式耗电排名:

睡眠模式>停止模式>待机模式。


4.2.4.4三种模式唤醒速度排名:

睡眠模式>停止模式>待机模式。


4.3、选择适合我们的模式

4.3.1、选择法

三个模式各有优劣,我们应当选择最适合自己的模式:

举例:如果是获取传感器的值,再传感器发送信号过来之前,我们到底需要处于一个什么状态:

这是一个很具体的问题?

我想了一下,大致上可以使用与的方法来实现快速选择:

这里有三个关键:


低功耗时,需要什么状态


有什么方式可以唤醒


唤醒需要多长时间


还是传感器:例如烟雾报警传感器,采用插线供电,平时需要灯的闪烁表示正常。

1.平时需要灯的闪烁表示正常。-》睡眠

2.唤醒方式为外部信号。-》睡眠,待机或者停止

3.唤醒之后,希望可以较快反应。-》睡眠

通过与选则停止模式,满足低电量消耗的要求,但是又要满足平时的闪烁操作。


遥控器,电池供电,平时无操作,按键触发发送红外指令:

1.平时没有操作:停止或者待机。

2.外部中断唤醒:睡眠,待机,停止。

3.唤醒需要较快:待机,睡眠。

综上所述,采用停止模式。


紧急照明夜灯,平时不需要操作,不需要很及时的反应,必须要节省电量来保证紧急时候的使用:

1.平时没有操作:待机或者停止。

2.外部中断唤醒:睡眠待机停止。

3.唤醒不需要太及时:待机、停止。

综上所述:采用待机模式,等待新哈窦娥到来。


4.3.2、关键法:

当然,上面只是一个选择方法。我们在实际的开发项目的时候,更是要考虑到自己的产品的关键性能是什么,例如我推荐的文章在实际中讲到手机关机的时候如果采用待机功能,那么充电还是用户按键就没有办法来区分,也没有办法在关机充电时显示电量。这样对于手机的功能来说当然是得不偿失的。


五、结束

我们还是要搞清楚自己的终极目的:做好产品。

写代码,就像养孩子一样,总是像把它做的是最好。但是很多时候,我们的“孩子”也有自己的想法,比如他是一个智能手机,这个时候为了他的智能,我们要牺牲很多别的方面。当然,这方面应该是产品经理的责任。但是作为实际的开发者,终究是要搞清楚这个“孩子”是怎么在他的是世界里面(市场)立足。这样才能优化他的长处,补足他的短处。

关键字:STM32  低功耗  唤醒 引用地址:stm32之低功耗总结

上一篇:STM32+FreeRTOS+CUBEMX_学习笔记(三)
下一篇:RT-Thread学习笔记【stm32】(二):线程的创建中的一些问题

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved