豌豆爹 发表于 2022-5-19 14:55

单片机项目: stm32低功耗模式分析

在为应用选择微控制器时,电源约束是设计者的一个关键考虑因素,尤其是在电源起着重要作用的物联网应用中。物联网节点只有在使用一块电池可以维持数年甚至数十年的情况下,才能在这个领域发挥作用。
半导体制造商之间对低功耗器件的竞争非常激烈,每个制造商都有自己的 SOC/MPU/MCU 专用线,分为低功耗和超低功耗两类。
ATMEL (现在的微晶片科技)的 ATtiNY 8位微控制器系列在十年前被认为是休眠之王。事实上,ATTINY 在深度睡眠模式下消耗0.2 μA 的能量为他们赢得了工程师的尊重,并成为低功耗应用程序设计者的首要任务。
今天,ATtiny 由于其在半导体扩展和功率管理方面的快速发展而被纳入其他各种微控制器芯片。然而,由于应用程序和用户需求的多样性,甚至在睡眠模式(RTC,DMA,DAC active 等)下,很难就谁是低功耗竞赛的先驱达成共识。
近几十年来,32位微控制器越来越受欢迎。8位微控制器大多数是5伏容忍,而32位微控制器站在3.3伏。这种功率差异与紧凑的设计和更多的通用输入/输出引脚导致了32位单片机的相当大的市场份额。32位微控制器不仅消耗低功耗,而且在单个芯片中提供其他外围设备和协议。
在本教程中,我将讨论并测量由意法半导体提供的 STM32F0xx 32位系列微控制器的功耗。
Stm32f0xx 有三种类型的低功耗模式。

[*]停止模式

[*]睡眠模式

[*]待机模式
停止模式功能
在停止模式下,实时时钟由大规模集成电路(LSI)(低速内部时钟源)供电。关闭 HIS (高速内部)和 HSE (外部)时钟总线。功率调节器处于低功率模式。调节器在低功率模式意味着闪光灯也在电源关闭模式。在停止模式下,除了连接到 RTC 的时钟之外,所有的时钟都停止了。从停止模式退出是可能的与实时时钟中断或任何其他全局中断。
睡眠模式功能
在睡眠模式下,处理器的 CPU 进入关机模式。单片机外围设备全部运行正常。对于从睡眠模式退出,任何全局中断都可以被利用,或者任何事件(外部/内部)都可以使设备从睡眠状态退出到清醒状态。
在进入停止或休眠模式之前,也可以通过禁用外围设备和 GPIO 管脚来节省电力。这样可以防止任何泄漏电流流出电池。
待机模式
在待机模式下,所有的时钟都会停止,静态 RAM 将丢失所有内容。只有 RTC 时钟处于活动状态。从备用模式退出启动过程,类似于重置单片机。唯一的区别是,使用备用重置,RTC 寄存器内容不会丢失,并且 RTC 维护数据。从待机模式退出是可能的,在一些专用的 MCU 引脚上有一个外部事件,或者 RTC 报警可以使 MCU 脱离待机模式。
比较结果
理想状态根据数据表,在运行模式下的理想状态下,stm32需要消耗12.7毫安的电流。

豌豆爹 发表于 2022-5-19 14:56

在我的程序代码中,我禁用了所有的外围设备,制作了所有 GPIO 的模拟器件,以减少任何泄漏,并尽可能节省电力。使用电流表,单片机在运行模式下的电流消耗记录为13.26毫安。


睡眠模式状态睡眠模式代码管理单元拍摄如下。我进入睡眠模式配置所有的 GPIOS 模拟和禁用的 GPIO 的时钟。退出睡眠模式是在 EXTI 外部中断。按钮映射到 EXTI 引脚。


根据数据表,目前睡眠状态下的消耗量为0.8毫安。


测量睡眠状态下的电流消耗量,电流表显示0.82 mA。


待机和停机模式
单片机最容易进入的低功耗状态是待机状态。只需要设置一个全局电源寄存器位就可以进入待机模式。在进入待机模式之前,我们必须从待机模式定义退出引脚/协议。下面的代码调用了 stm32f051微控制器的待机模式。


停止模式需要大量的寄存器更新进入它。从停止模式退出也需要许多寄存器被操作。要查看停止模式代码,请下载项目代码。
根据停止模式下的数据表,消耗4ua 的电流,待机消耗3.3 uA 的电流。











豌豆爹 发表于 2022-5-19 14:57

停止状态下安培表的电流消耗记录为7.4 uA,待机状态下为4.6 uA。


从所有低功耗状态退出需要清除一些位/标志。外部和内部中断在退出低功率状态中起着重要作用。周边中断,特别是实时时钟,需要掌握从低功耗状态唤醒。
我使用 stm32f0发现开发板来测试低功耗状态。


我在项目代码中定义了所有内容。启动时,主板上的 LED 闪烁,然后单片机进入停止模式。利用 RTC (实时时钟)中断从停止模式唤醒。RTC 被编程为5秒钟。5秒后,单片机将退出停止模式。
退出停止模式导致的再次眨眼,并在几眨眼之后,单片机进入睡眠模式。要从睡眠模式中醒来,请按下面板上的按钮。再次,退出睡眠模式导致的闪烁,最后,单片机进入待机模式。要退出待机状态,请按下按钮。Standby 重置 MCU 并从头开始执行。




Jacquetry 发表于 2022-10-5 21:34

了解到参数了

Uriah 发表于 2022-10-7 07:23


将小灯接在单片机的P1.0端口上

Bblythe 发表于 2022-10-7 10:22


让其作为芯片休眠唤醒脚

Pulitzer 发表于 2022-10-7 13:21


调用make_youtiao()

qiufengsd 发表于 2022-10-24 21:14

STM32低功耗问题求助可以定时自动唤醒嘛

AdaMaYun 发表于 2022-10-24 21:21

qiufengsd 发表于 2022-10-24 21:14
STM32低功耗问题求助可以定时自动唤醒嘛

依靠定时时间呗应该可以自动推出低功耗模式

earlmax 发表于 2022-10-24 21:28

STM32如何进入休眠低功耗状态?

louliana 发表于 2022-10-24 21:55

STM32进入低功耗后全局变量的值会变化么?

wilhelmina2 发表于 2022-10-24 22:20

stm32 低功耗 最低多少

vivilyly 发表于 2022-10-25 18:31

stm32 低功耗,最低是2μA。         

macpherson 发表于 2022-10-25 19:19

stm32的l系列是低功耗系列的,可以进入深度休眠达到非常低的功耗。

uiint 发表于 2022-10-25 20:10

stm32在低功耗模式下能用systick中断吗

mmbs 发表于 2022-10-25 21:04

stm32的工作模式可以深度休眠吗

fengm 发表于 2022-10-25 22:01

如何测量STM32芯片进入低功耗模式后的电流

jf101 发表于 2022-10-25 22:28

楼主从低功耗或是待机和停机模式下唤醒是怎么设置的

vivilyly 发表于 2022-11-1 11:27

stm32 低功耗之前怎么降低主频   

beacherblack 发表于 2022-11-1 16:09

STM8的低功耗系列 和 STM32的低功耗系列 哪个更省电?
页: [1] 2
查看完整版本: 单片机项目: stm32低功耗模式分析