广告

让微控制器进入休眠状态后,到底能省多少能耗?

2019-08-15 10:34:37 Jacob Beningo,EEWeb 阅读:
低功耗模式如何在真正的微控制器(MCU)上实现?这些模式如何影响嵌入式系统?在这篇文章中,将更详细探讨如何让微控制器进入睡眠状态,并看看到底能够节省多少能耗。

在《Arm Cortex-M低功耗模式基本原理(Arm Cortex-M low-power mode fundamentals)》中,探讨了在每种Arm Cortex-M处理器上可以找到的低功耗模式的基本原理,以及如何使用WFI和WFE指令让处理器进入休眠模式。实际上我们真正要了解的是,低功耗模式如何在真正的微控制器(MCU)上实现?这些模式如何影响嵌入式系统?在这篇文章中,将更详细探讨如何让微控制器进入休眠状态,并看看到底能够节省多少能耗。wA8ednc

低功耗模式实验

探索低功耗模式的最佳方法是选择一个微控制器并以各种低功耗模式实际执行该处理器。本文中,笔者决定翻出积尘已久的NXP Kinetis-L Freedom电路板,我曾经不仅用它进行过实验,而且还应用于许多产品、应用和课程。无论对错,我决定不仅要测量微控制器的能耗,还要测量整个开发板的能耗。微控制器通常是电路板上的耗能大户之一,但测量整个系统的电流经常提醒我它并不是电路板上唯一的耗电组件。微控制器的优化长路迢迢,但其实它并不是唯一需要优化能耗的组件。wA8ednc

从基线测量开始

每当我努力优化一个产品的能耗时,首先会从基线能量测量开始。通常我会透过分析几秒或几分钟内设备的电流消耗来了解应该从哪里开始,在我的开发板实验中,将Kinetis-L置于运作模式,无休眠模式,所有周边均运作并设置电路板定期切换LED。透过采用IAR嵌入式工作台的I-Jet除错器,以及I-Scope,可以为该电路板配置一个简单基线,即LED关闭时电流消耗大约为16.9mA,LED打开时大约为18.0mA,如图1所示。显然,从哪里开始进行测量很重要,否则分析结果可能明显偏离。wA8ednc

016ednc20190814wA8ednc

图1 开发板的电流测量,LED每秒切换一次。(数据源:作者)wA8ednc

采用等待模式和深度休眠模式优化能耗

节省能耗最快的方法是执行等待或深度休眠模式。研究Kinetis-L处理器的数据表可以得出,等待模式的能耗在3V电压下的电流介于3.7和5.0mA之间。在此模式下,CPU和周边频率被禁用,而闪存处于休眠模式,此时允许处理器在中断时间范围内(12~15个频率周期)仍然可以被唤醒。等待模式易于实现,设置进入等待模式的程序代码如下所示:wA8ednc

void Sleep_Wait(void)wA8ednc

{wA8ednc

SCB_SCR &=~ SCB_SCR_SLEEPDEEP_MASK;wA8ednc

asm(“WFI”);wA8ednc

}wA8ednc

只需这两行程序代码,开发板的电流消耗就从18.0mA降至15.9mA。电流消耗减少了11.6%。如果电路板由680mA电池供电,则该设备的电池寿命将从37.8小时变为42.8小时,两行程序代码就可以将电池寿命延长五小时。wA8ednc

这些高阶电源模式的好处在于可以轻松地再向前迈一步。可以使用以下程序代码将处理器置于深度休眠等待模式,而不仅仅是等待模式:wA8ednc

void Sleep_Deep(void)wA8ednc

{wA8ednc

SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;wA8ednc

asm(“WFI”);wA8ednc

}wA8ednc

我们所做的仅仅是调整了SCB_SCR寄存器中的1位,就已经将最初的18mA电流消耗减少为14.8mA。电流消耗减少了17.8%。同样,假设电路板由680mA电池供电,电池寿命现在已经从37.8小时增长为46小时,只需几行程序代码就可以节省大量能耗,而这只是冰山一角。wA8ednc

利用Stop模式和VLLS模式实现微安级电流消耗

采用停止模式可以禁用核心和系统频率,这有可能将微控制器电流消耗再进一步降低2mA。 你会发现,功耗模式越低,实现它所需的程序代码就越多,而唤醒系统恢复工作的程序代码就越复杂。使Kinetis-L进入停止模式的程序代码如下所示:wA8ednc

void Sleep_Stop(void)wA8ednc

{wA8ednc

volatile unsigned int dummyread = 0;wA8ednc

SMC_PMCTRL &=~ SMC_PMCTRL_STOPM_MASK;wA8ednc

SMC_PMCTRL |= SMC_PMCTRL_STOPM(0);wA8ednc

dummyread = SMC_PMCTRL;wA8ednc

Sleep_Deep();wA8ednc

}wA8ednc

请注意,停止模式透过电源管理控制寄存器控制,一旦状态被设置,就会调用Sleep_Deep函数来完成电源模式的设置并执行WFI。wA8ednc

到目前为止,本文一直在谈论1~2mA的微控制器能耗,现代微控制器将提供仅消耗μA甚至nA的电源模式。Kinetis-L处理器于2013年左右首次亮相,其超低漏电停止(VLLS)模式仅耗能135~496μA。初始化此电源模式的程序代码如下所示:wA8ednc

void Sleep_VLLS1(void)wA8ednc

{wA8ednc

volatile unsigned int dummyread = 0;wA8ednc

SMC_PMCTRL &=~ SMC_PMCTRL_STOPM_MASK;wA8ednc

SMC_PMCTRL |= SMC_PMCTRL_STOPM(0x4);wA8ednc

SMC_VLLSTRL = SMC_VLLSCTRL_LLSM(1);wA8ednc

dummyread = VLLS_CTRL;wA8ednc

Sleep_Deep();wA8ednc

}wA8ednc

讲到这里,你会发现微控制器已经几乎不消耗任何能量了!wA8ednc

低功耗模式对唤醒延迟的影响

正如我们目前所看到的那样,将处理器设置为越来越低的电源模式是节省能源的好方法,但这是需要付出代价的。处理器的能量状态越低,唤醒处理器恢复工作所需的时间就越长。例如,如果使用标准停止模式,则处理器被唤醒并再次开始执行程序代码需要2μs加上中断延迟,这还可以接受。但是,如果在Kinetis-L上设置了其中一种VLLS模式,将需要启动处理器的唤醒延迟再加上额外的53~115μs。有些应用可能无法接受这种状况,表1显示了Kinetis-L从低功耗模式到运作状态的各种转换。wA8ednc

017ednc20190814wA8ednc

表1 Kinetis-L从低功耗模式到各种模式的转换时间。(数据源:Kinetis-L数据表)wA8ednc

结论

Arm微控制器都具有标准的低功耗模式,但每家芯片厂都会定制开发人员可用的更多低功耗模式。正如我们所看到的,芯片供货商通常会提供几种容易实现的模式,对唤醒延迟的影响最小,他们还会提供几种超低功耗模式,几乎可以关闭处理器并且仅消耗几百微安或更少能量。开发人员通常需要在能耗和系统被唤醒需要的时长,以及响应事件的速度之间进行权衡,而权衡一定是基于应用的,所以不要指望能够在每个产品和应用上都执行最低功耗模式。wA8ednc

(参考原文: How low (power) can you go?,by Jacob Beningo,EETTaiwan编译)wA8ednc

 wA8ednc

本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 可解决工业自动化和IIoT挑战的MCU 工业自动化和工业物联网(IIoT)设计人员的性能要求不断变化。就MCU而言,他们希望获得更快的处理速度、更多的内存、更好的连接性和更多的安全功能。
  • 第三代半导体——碳化硅材料之制程与分析 SiC功率电子是加速电动车时代到来的主要动能。以SiC MOSFET取代目前的Si IGBT,不仅能使电力移转时的能源损耗降低80%以上,同时也可让芯片模块尺寸微缩至原本的1/10,达到延长电动车续航里程及缩短充电时间的功效。
  • 苹果iPhone 14 Pro、iPhone 14 Pro Max 将采用更快的 随着iPhone 14系列发布的临近,iPhone 14系列的内存供应商也被曝光。一份由DigiTimes发表的报道显示,今年晚些时候到达的"Pro"型号将配备6GB LPDDR5内存,这比当前一代的iPhone 13 Pro和iPhone 13 Pro Max都有6GB LPDDR4X内存提升了一代。
  • 国际象棋机器人Chessrobot夹断对手手指,意外还是设计缺 据悉,在7月19日的莫斯科国际象棋公开赛期间,一位7岁小男孩疑似因提前走子犯规手,意外被“对手”国际象棋机器人Chessrobot夹住手指,造成指骨骨折,该事件登上了热搜榜。该男孩是莫斯科9岁以下最强的30位棋手之一。
  • 小米12S Ultra游戏性能超越iPhone 13 Pro Max?高通骁龙 高通将骁龙8 Plus Gen 1的量产交给台积电之后,其生产技术带来了许多改进,其中之一是提高了游戏性能。众所周知,Apple 的 A15 Bionic 是目前公认的最快的移动 SoC,但这一认知却被小米 12S Ultra 搭配高通骁龙8 Plus Gen 1所颠覆。
  • 电动两轮车需要什么样的MCU方案? 电机控制器作为智慧电动两轮车的“控制中心”,操控着车辆的加速、定速巡航、能量回收。在6月29日全球领先的专业电子机构媒体AspenCore和深圳市新一代信息通信产业集群联合主办的“2022国际AIoT生态发展大会-智慧两轮车分论坛”上,专注于MCU研发和生产的灵动微电子,分享了智慧两轮车需要什么样的电机驱动芯片。
  • 世界上尺寸最大的芯片Wafer Scale Engine-2打破了在单 Cerebras公司售价数百万美元的“全球最大AI芯片”Wafer Scale Engine-2又有新消息,在基于单个Wafer Scale Engine-2芯片的CS-2系统上训练了世界上最大的拥有200亿参数的NLP(自然语言处理)人工智能模型。
  • 芯海:信号链MCU新标杆——SmartAnalog系列 6月17日,在AspenCore举办的“全球MCU生态发展大会”上,芯海科技高级产品经理王伟发表了“信号链MCU新标杆:SmartAnalog系列”主题演讲。
  • IoT时代新型应用给MCU技术和生态带来的机遇与挑战 在AspenCore举办的“全球MCU生态发展大会”上,英飞凌科技大中华区安全互联系统事业部技术市场总监翁伟钿发表了“IoT时代新型应用给MCU技术和生态带来的机遇与挑战”主题演讲。并重点介绍了三种面向细分市场的MCU解决方案。
  • 灵动微电子:MM32 MCU“星”平台,新生态 6月17日,在AspenCore举办的“全球MCU生态发展大会”上,灵动微电子应用开发总监金昭发表了“MM32 MCU‘星’平台,新生态”主题演讲。
  • Microchip CEO Steve Sanghi:“领导者应独出心裁” 我能给出的主要建议是,领导者应独出心裁。领导者在领导他人看问题和做事情时应与众不同,并应能变不可能为可能。我们要勇于挑战自己,多和有能力的人相处。还要为员工下放更多的权力,以便促进他们释放出自己的全部潜力。
  • 拆解10元4个的人体感应灯:一个鼓包,一个漏液… 前一阵子10元包邮买了4个TCL华瑞照明人体感应灯,2个正白、2个暖白。拆开看了一下,发现4个人体感应灯自带的锂电池容量不大且不带保护板,那2个不能点亮的锂电池,一个鼓包,一个漏液,都过放了……
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了