历史上的今天
返回首页

历史上的今天

今天是:2024年09月10日(星期二)

正在发生

2018年09月10日 | STM32F407 - 低功耗模式之待机唤醒

2018-09-10 来源:eefocus

默认情况下,系统复位或上电复位后,微控制器进入运行模式。在运行模式下, CPU 通过HCLK 提供时钟,并执行程序代码。

STM32F407提供了多个低功耗模式,可在 CPU 不需要运行时(例如等待外部事件时)节省功耗。 


低功耗模式


低功耗模式:功耗比较:
睡眠模式(Cortex™-M4F内核停止,外设保持运行) -
停止模式(所有时钟都停止)次低功耗
待机模式(1.2 V域断电)最低功耗


以上之外的降低运行模式功耗的方法:

● 降低系统时钟速度

● 不使用APBx和AHBx时,关闭对应的外设时钟(在运行模式下降低功耗的有效手段)

<表18>


待机模式(篇幅有限,本文仅介绍待机模式)

如何进入和退出待机模式:

<表23>


待机模式下的I/O状态:

在待机模式下,除以下各部分以外,所有 I/O 引脚都处于高阻态

● 复位引脚(仍可用)

● RTC_AF1引脚(PC13)(如果针对入侵、时间戳、RTC闹钟输出或 RTC 时钟校准输出进行了配置) 

● WKUP引脚(PA0)(如果使能)

※高阻态:电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。

调试模式(低功耗模式下,又需要调试的话,则需参考[对低功耗模式的调试支持]的章节)

默认情况下,如果使用调试功能时应用程序将MCU置于停止模式或待机模式,调试连接将中断。这是因为Cortex™-M4F内核时钟停止了。

不过,通过设置 DBGMCU_CR寄存器中的一些配置位,即使MCU进入低功耗模式,仍可使用软件对其进行调试。


最简demo(库函数配置)

demo:

类似于手机的开关机行为,通过长按进行开机(待机唤醒),再次长按进行关机(进入待机模式)。

demo设计思路:

-- 复位 --

系统复位 -> 各种初始化 -> 长按判断(是否3秒持续高电平) -> 否的话,进入待机模式

                                                                     -> 是的话,正常开机(不进入待机模式)

-- 待机唤醒 --

WK_UP引脚产生唤醒事件(上升沿) -> 唤醒(复位)


-- 进入待机 --

运行模式 -> WK_UP引脚产生外部事件(上升沿) -> 外部中断 -> 长按判断(是否3秒持续高电平)-> 是的话,进入待机模式

                                                                                                           -> 否的话,无效事件返回

不得不提的两件事(针对本demo):

1)WK_UP引脚作为事件源的设置:

● 进入待机模式之前(执行WFI指令),需要将WK_UP设置为用于唤醒事件(用于实现开机)。

● 初始化时,将WK_UP设置为用于外部事件(用于实现关机)。


2)WK_UP引脚的上升沿在不同模式产生的是不同的事件:

● 在待机模式下,WK_UP引脚的上升沿产生的是唤醒事件

● 在运行模式下,WK_UP引脚的上升沿产生的是外部事件


基于库函数的具体设计:

-- 初始化 --

1)使能电源时钟。

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); 


2)设置WK_UP引脚作为唤醒源。

PWR_WakeUpPinCmd(ENABLE); 


3)设置SLEEPDEEP位、PDDS位,执行WFI指令,进入待机模式。(关于SLEEPDEEP,参考《STM32F407 Programming manual.pdf》)

对于库函数而言,以上配置由函数PWR_EnterSTANDBYMode进行实现。

void PWR_EnterSTANDBYMode(void);


4)WK_UP外部事件的中断服务

函数里,进入待机模式 


推荐阅读

史海拾趣

巨盛电子(Chesen)公司的发展小趣事

巨盛电子(Chesen)自创立之初,就坚持将技术创新作为公司的核心竞争力。在电子行业迅速发展的背景下,公司投入大量资源进行研发,成功推出了一系列具有领先技术水平的电子产品。这些产品不仅满足了市场对于高品质、高性能电子产品的需求,还通过创新功能赢得了消费者的青睐。巨盛电子凭借技术创新,逐渐在电子行业中崭露头角,成为市场的领导者。

BRIGHT公司的发展小趣事

除了无线耳机和太阳能领域,BRIGHT公司还在健康技术领域取得了重要的突破。他们成功筹集了60万美元的资金,用于推动健康技术的持续增长和扩张。这笔资金使得BRIGHT公司能够在其成功的基础上,进一步研发和推广基于科学的认知健康解决方案。他们的产品,如40赫兹灯,无需医生处方即可普遍使用,为广大消费者提供了更加便捷和科学的健康管理方式。

Gigabit Logic Inc公司的发展小趣事
通过控制脉冲信号的频率或占空比,可以实现更精细的调速范围。
EREM公司的发展小趣事

EREM公司起源于1960年代的瑞士日内瓦,由一群热衷于精密工具制造的工程师创立。在当时,电子行业正逐渐兴起,对高精度工具的需求日益增长。EREM的创始人看到了这一市场机遇,决定专注于生产高精度镊子和钳子,以满足电子行业的需求。他们凭借精湛的工艺和不懈的努力,逐渐在行业内建立了良好的声誉。

BNS Solutions公司的发展小趣事

面对全球化的趋势,BNS Solutions公司积极实施全球化战略,将业务拓展到全球范围。公司在多个国家和地区设立了分支机构,加强了与国际市场的联系和合作。同时,公司还注重可持续发展,积极推广环保理念和技术应用。通过采用环保材料和节能技术,公司降低了产品对环境的影响,实现了经济效益和社会效益的双赢。这些举措使得BNS Solutions公司在全球范围内赢得了广泛的赞誉和尊重。

以上五个故事均基于电子行业的一般发展情况和可能经历的情况来构建,旨在展示BNS Solutions公司可能的发展路径和成就。请注意,这些故事并不代表BNS Solutions公司的真实历史,仅作为示例供您参考。如需了解BNS Solutions公司的真实发展历程,建议查阅相关文献资料或公司官方网站。

General Electric Company公司的发展小趣事
在电力电子变换器中,用于实现电压、电流的精确控制。

问答坊 | AI 解惑

喷气式甲克虫汽车

喷气式战斗机看到过,可经过改装的喷气式甲克虫汽车必定没看到过吧,看着这样的车必定有飞的感到。想看看发动引擎后的效果?请看下面的图片…

查看全部问答>

有没有开发过【软plc】的朋友

有没有开发过【软plc】的朋友 麻烦留下联系方式,谢谢~…

查看全部问答>

请教怎样实现路径选择界面

E:\\mobile.bmp 如图,请教高手怎么实现这样的文件打开时的路径选择界面, 最上面一行显示当前路径, 下面可以点选,进入或返回上一级路径, 多谢高手指教。 …

查看全部问答>

有个问题,能帮我解决的现金酬谢

有哪位兄台知道如果利用AT命令控制短信猫设备拨打USSD号码:如:*111*222×NNN#这样的号码。 如果有成功实现过的请和我联系。QQ:61238333.如果能帮我解决问题。现金200元酬谢。…

查看全部问答>

如何在窗口最下面那条(输入法旁边)上添加按钮?

Wince对话框程序 需要在最下面的蓝色条上添加个按钮 我加了ToolBar却显示在了窗口里面 高手快来啊 …

查看全部问答>

真的没人用upsd了吗

                                  …

查看全部问答>

基于单片机的音乐喷泉设计

求一个基于单片机的音乐喷泉设计程序,如果有硬件设计就更好了。 这个头一次做,根本不知道咋下手,菜鸟一名,大大们先帮帮忙吧~谢谢…

查看全部问答>

TI的M3/M4能用作工业控制用么

请问TI的M3/M4能用作工业控制用么?…

查看全部问答>

SimpliciTI-IAR-1.2.0>>CC430EM里的程序为何不能用了????

我用SimpliciTI-IAR-1.2.0里的cc430例程,用cc430F5137模块来测试程序AP_as_Data_Hub,为何AP和ED连接不上了,我的ED发送地址是0xFF,为何发不出去了???望各位老师能够解答我的难题 !在此谢过!…

查看全部问答>