历史上的今天
返回首页

历史上的今天

今天是:2025年08月13日(星期三)

正在发生

2019年08月13日 | STM32-(33):低功耗模式与唤醒

2019-08-13 来源:eefocus

功耗管理

很多单片机都有低功耗模式,STM32也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。

用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。

STM32的低功耗模式有3种:

  1. 睡眠模式(CM3内核停止,外设仍然运行)

  2. 停止模式(所有时钟都停止)

  3. 待机模式(1.8V内核电源关闭)

在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。停机模式是次低功耗的,其典型的电流消耗在20uA左右。最后就是睡眠模式了。用户可以根据自己的需求来决定使用哪种低功耗模式。

此外,在运行模式下,可以通过以下方式中的一种降低功耗:

  1. 降低系统时钟

  2. 关闭APB和AHB总线上未被使用的外设的时钟。

三种低功耗模式

在这里插入图片描述
1、睡眠模式下,CPU时钟处于停止状态,但是所有的外设继续运行,电源功耗耗相应地减少。任一中断或唤醒事件可将微处理器从睡眠模式中唤醒。
2、停止模式是在 CorteX-M3的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在1.8 V 供电区域的的所有时钟都被停止, PLL、HIS和 HSE RC振荡器的功能被禁止, SRAM 和寄存器内容被保留下来。
3、待机模式可实现系统的最低功耗。该模式是在 CorteX-M3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。 PLL、HSI和 HSE 振荡器也被断电。SRAM和寄存器内容丢失。只有备份的寄存器和待机电路各维持供电 。

重点分析待机模式

在这里插入图片描述

在这里插入图片描述

1、 在进入待机模式后,除了复位引脚以及被设罝为防侵入或校准输出时的TAMPER引脚和被使能的唤醒引脚(WK_UP脚),其他的IO引脚都将处于高阻态。
2、 从待机模式唤醒后,除了电源控制/状态寄存器(PWR_CSR) , 所有寄存器被复位。从待机模式唤醒后的代码执行等同于复位后的执行。

电源控制寄存器(PWR_CR)

1.通过设置PWR_CR中的PDDS位,使CPU进入深度睡眠时进入待机模式,同时通过CWUF位,清除之前的唤醒位。
在这里插入图片描述

电源控制/状态寄存器(PWR_CSR)

通过设置PWR_CSR的EWUP位,来使能WKUP引脚用于待机模式唤醒。我们还可以从WUF来检查是否发生了唤醒事件。
在这里插入图片描述

从待机模式唤醒步骤

1 )使能电源时钟•
因为要配置电源控制寄存器,所以必须先使能电源时钟。
在库函数中,使能电源时钟的方法是:
RCC_APB1PeriphClockCmd ( RCC_APB1Peripli_PWR, ENABLE ): //使能 PWR 外设时钟

2 ) 设 置WK_UP引脚作为唤醒源.
使能时钟之后再设置PWR_CSR的 EWUP 位,使能 WK_UP 用于将 CPU 从待机模式唤醒。
在库函数中,设置使能 WK_UP 用于唤醒CPU 待机模式的函数是:
PWR_WakeUpPinCmd(ENABUE); // 使能唤醒管脚功能

  1. 设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式.
    void PWR_EnterSTANDBYMode(void ):

  2. 最后编写WK_UP中断函数.
    因为我们通过 WK_UP 中断 ( PA0 中断)来唤醒CPU, 所以我们有必要设置一下该中断函
    数,同时我们也通过该函数里面进入待机模式

实验

实现如下功能:通过长按(3秒)WK_UP按键开机,并且通过LED的闪烁指示程序已经开始运行,再次长按该键,则进入待机模式,LED灯关闭,程序停止运行。类似于手机的开关机。
在这里插入图片描述

中断设置初始化函数

在这里插入图片描述

主函数

在这里插入图片描述


推荐阅读

史海拾趣

Blue Giga公司的发展小趣事

Blue Giga的创立可以追溯到芬兰埃斯波的一个科技孵化器。创始人看到了物联网和短距离无线连接技术的巨大潜力,决定成立一家公司专注于这一领域。初期,Blue Giga面临着资金紧张、市场认知度低等诸多挑战,但凭借其卓越的技术和不懈的努力,逐渐在行业中崭露头角。

Gruner AG公司的发展小趣事
使用绝缘测试仪等工具检查输入和输出之间的电气隔离性能是否符合要求。
Antex公司的发展小趣事

面对日新月异的电子行业发展趋势,Antex公司始终保持敏锐的市场洞察力和创新精神。公司积极推进技术开发、设备强化,不断探索新的生产技术和应用领域。同时,Antex还注重人才培养和团队建设,为公司的未来发展储备了丰富的人才资源。

这些故事只是Antex公司发展历程中的一部分,它们展示了公司在电子行业中的不断努力和追求卓越的精神。未来,随着技术的不断进步和市场的不断变化,Antex将继续保持创新和发展,为电子行业的繁荣做出更大的贡献。

请注意,以上内容仅为概述,并未详细展开每个故事的每一个细节。如果需要更具体、更详细的故事,建议查阅Antex公司的官方资料或相关新闻报道,以获取更准确、更全面的信息。

ABCO公司的发展小趣事

随着技术的不断进步,ABCO公司意识到只有不断创新才能在竞争中保持领先地位。因此,公司加大了对研发的投入,建立了一支高效的技术团队。这支团队不仅成功研发出了多款具有自主知识产权的新型传感器,还积极探索传感器与其他电子设备的融合应用,为公司开辟了新的增长点。

Efficient Power Conversion公司的发展小趣事

随着EPC公司氮化镓技术的不断完善和成熟,其产品开始受到市场的广泛认可。无线电源传送、全自动汽车、高速移动通信等领域的企业纷纷采用EPC公司的氮化镓功率半导体器件,以提高其产品的性能和效率。EPC公司的市场份额逐渐扩大,成为氮化镓功率管理技术领域的领军企业。

Allied Controls Incorporated公司的发展小趣事

随着EPC公司氮化镓技术的不断完善和成熟,其产品开始受到市场的广泛认可。无线电源传送、全自动汽车、高速移动通信等领域的企业纷纷采用EPC公司的氮化镓功率半导体器件,以提高其产品的性能和效率。EPC公司的市场份额逐渐扩大,成为氮化镓功率管理技术领域的领军企业。

问答坊 | AI 解惑

影响FPGA设计中时钟因素的探讨

影响FPGA设计中时钟因素的探讨,个人推荐!…

查看全部问答>

电源问题

3.6V电池供电,想最终得到正负2.5V电压。 先用MAX770升压到5V,然后用ME7660进行负压变换得到正负5V电压。 然后通过电阻分压,得到正负2.5V电压。 不知道以上办法可不可行。 有没有更好的方法??用更简单的芯片来实现这个功能??…

查看全部问答>

汽车电子系统出现集成化供应新趋势

作为汽车产业与电子产业的完美结合,汽车电子业的发展相对于汽车市场而言更加迅猛。据估计,近几年的年增长率均超过50%,是拉动汽车工业发展的重要因素。到目前为止,绝大多数国外大型的跨国汽车电子企业已在中国设厂。为了进一步扩大在中国的市场 ...…

查看全部问答>

艾克赛尔(Axelwave)无线网络――无线监控在高速公路的应用

近年来中国经济的飞速发展,使中国的公路建设,尤其是高速公路的建设上了一个新台阶。而随着现代化高速公路的建设,新一代高速公路视频监控系统,日益成为高速公路监管的重要手段。无线监控凭借其简便、快速、受环境影响小的特点,也逐步成为高速公 ...…

查看全部问答>

采用MPC8260和FPGA的DMA接口设计

在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号经过变频器处理和A/D变换之后,经过高速通道把采集的信号送入主控板进行数据分发处理。系统的结构框图如图1所示。 图1  主控板的系统结构框图  主控板的硬件核 ...…

查看全部问答>

自己动手设置STM32头文件配置系统PLL时钟及操作I/O口

自己动手设置STM32头文件配置系统PLL时钟及操作I/O口简单操作例程! …

查看全部问答>

急求WINCE5.0下录音成mp3的程序

wince提供的api只能录制成wave吧? 录成mp3需要使用开源的lame库? 我现在在模拟器上能录制成wave, 调用lame库把wave转成mp3不成功,似乎是lame库内存异常了. 哪位大侠有CE5.0下能用的lame库? 或者还有其它方式能直接录成mp3? 我的邮箱:victor_20 ...…

查看全部问答>

这个VHDL的信号赋初值语句怎么理解?

signal abc: std_logic_vector(5 downto 0):=(others=>\'0\');困扰很久,一直不明白。哪位大侠能给详解一下?谢谢!…

查看全部问答>

Altium Designer6.9破解文件

很好的一个破解文件啊,值得收藏!!!…

查看全部问答>

【有圖有真相】基于MSP430 LaunchPad 和2.4G RF Module 的聊天室

前段時間在論壇的活動中拿了MSP430 LaunchPad,總要起點作用吧。 就做了這個史上最無聊,最無用的聊天工具。辦公室的工程師每人分一塊LaunchPad,接上我們公司常用的2.4G RF Module 用VB寫了個上位機軟件 然后就可以大家一起吹水了。 史上最 ...…

查看全部问答>