开发工具调整 MCU 的功耗

构成物联网 (IoT) 的众多器件关联在一起的其中一个原因是对低能耗的要求。为了满足这一要求,需要在一个整体策略内,从多个层面进行优化。一个成功的设计不仅需要选择低功耗的元器件,还要使用软件以最有效的方式使这些元器件协同工作,从而节省可用的电池容量。即使是硬件和软件实现的稍微变动,也会对整体能耗造成很大的影响。
大多数 IoT 器件的核心是为高能效设计的微控制器 (MCU)。典型的低能耗 MCU 包括一系列智能外设,其代表核心处理器来控制 I/O 和基本的系统功能。串行端口 (UART) 通常能够自主地发送和接收数据,而在处理器内核上运行的软件只需在数据接收完成后从相应的缓冲器中传输字节。通过在诸如 Silicon Labs 的 Gecko EFM32 系列的 MCU 等器件上提供链接的 DMA 传输,甚至是这种交互都可以减至最少。这种情况下,处理器内核只需在收到完整消息后唤醒以检查存储器的内容。
通过允许外设管理 I/O,MCU 可以在大部分时间里都处于休眠模式,这样 MCU 的许多部分将关闭,而不会耗电。占空比是处于活动模式的时间与处于休眠模式的时间之比。低占空比对于电池供电的 IoT 应用非常重要,因为休眠模式仅仅消耗微安量级的电流,而活动模式通常会高出几个数量级。
低占空比允许处理器内核大部分时间处于休眠模式,仅在需要时唤醒以收集数据或进行通信。实施低占空比策略的关键是了解软件如何与硬件进行交互。需要确定哪些功能导致 MCU 唤醒时间过长,然后尽可能更换或重写。一直以来,在开发阶段的早期很难实现这一点,因为需要对硬件成品进行测试才能确定。
Silicon Labs 的 Pearl Gecko 入门套件及类似评估板包括高级能量监视器 (AEM) 功能。当与公司的 Simplicity Studio 中的高级工具结合使用时,可以在软件开发期间,提供极有价值的洞察信息,让开发人员了解应用需要多少能量。这些信息不仅显示了休眠模式的有效性,还揭示功能层级的优化。
Silicon Labs Pearl Gecko 入门套件板上的 AEM 模块图片
图 1: Pearl Gecko 入门套件板上 AEM 模块的实施。
AEM 功能可监控从通过 USB 总线获取电力的板载 LDO 流出的电流。通常,USB 将用于支持调试及将软件下载到目标 MCU。如图 1 所示,当板载开关设置为电池供电模式时,将无法测量电流。
当电源开关设置为 AEM 模式时,板控制器收集的数据将传送至 Simplicity Studio 工具,并可使用能量分析器进行显示。AEM 可以测量 0.1 μA 至 50 mA 大范围(动态范围达 114 dB)的电流。这样便可精确分析不同休眠模式状态的影响以及活动模式的功耗。
为了精确测量跨如此大范围的电流消耗,可以将电流检测放大器与双增益级一起使用。放大器用于测量小型串联电阻器上的压降,而增益级使用两种不同的增益设置进一步放大该电压,从而获得两个电流范围。这两个范围之间的过渡发生在 250 μA 左右。在样本导出之前,会在评估板控制器内对数字进行滤波和平均化处理。
每经过一个计时器刻度,AEM 便会对电流进行一次采样和转换,并通过 USB 将电压和计时信息一起发送至开发工具,其每秒生成的电流样本高达 6250 个。
由于能量分析依赖于跟踪数据进行关联,因此需要将 MCU 上运行的代码编译为包含发送使用任意记录格式调试 (DWARF) 数据的语句。发送至调试器的程序计数器 (PC) 样本通过调试数据与目标文件相关联,以找到在 MCU 上运行的相关源文件、函数和 C 代码行。这样便可以将功率测量与各个功能和任务关联起来。
在 Simplicity Studio 中使用分析工具时,用户可以访问三个窗口。它们显示了相关代码、电流消耗图和功能级别视图。通过单击电流图上的任意点,可高亮显示代码列表窗口中的部分代码。这对应于在给定时刻运行且具有给定级别的电流消耗的实际代码段。功能列表提供了每个功能的总能耗及其占整个应用测量总量的百分比。如果用户想要稍后分析信息,则可以将数据导出到文件,然后再将其导入以供进一步分析。
为了说明如何使用 Simplicity Studio 中提供的功耗监控工具,我们来看一个通过 UART 端口进行通信的 MCU 示例。将数据从 Gecko 的 LEUART 缓冲器移至主存储器以供稍后处理的一种简单直接的方法是定期轮询外设。如果数据可用,状态标记 (LEUART_STATUS_RXDATAV) 将指示可以检索数据。
长期高功耗图
图 2: 采用串口轮询的长期高功耗。
在活动处理器内核上运行代码会导致产生几毫安的恒定电流消耗。通过单击图表,可以高亮显示产生此功耗的功能。为了节省能耗,MCU 需要避免使用轮询来检查数据可用性。为实现此目的,可以在数据获取之间将处理器置于休眠状态,并在接收缓冲器数据变得可用时使用中断来唤醒处理器。电流消耗在休眠期间明显下降,而在中断服务例程 (ISR) 运行时则会达到峰值。在能量分析器窗口中准确找到 ISR 后便可以看出这一点。
中断服务响应的实施图
图 3: 实施中断服务响应可以将具有较高电流消耗的时间段缩至更短。
但是,处理数据接收中断后,代码的其他部分可能显示为因保持处理器处于活动状态而消耗了比预期更多的功率。单击相关功能可显示传输功能现在负责额外的功耗。虽然对传输功能进行编程的一个简单方法是设置 while{} 循环以等待每个字节的传输完成,但这将使处理器的运行时间超过必要的运行时间。与接收端口的情况类似,可以将该循环替换为中断(在每个字节传输完成后唤醒处理器)。现在处理器会在每帧字节之间进入休眠模式,从而降低平均电流消耗。
字节级传输之间的休眠图
图 4: 在字节级传输之间进入休眠可进一步降低功耗。
Gecko MCU 上的 LEUART 模块可以在深度休眠模式下工作。在此模式下,高频振荡器处于关闭状态,而低频振荡器(RC 或晶体)仍在运行并为 LEUART 提供时钟。利用这种模式可以使 ISR 处理之间的电流消耗降至微安量级。
提高能效的深度休眠模式图
图 5: 使用深度休眠模式可提高低占空比应用的能效。
通过将更多的缓冲器处理移至链接的 DMA 引擎,使其负责在发送或接收全部帧后触发中断,可以实现进一步的改进。这种策略可以使处理器内核休眠更长时间,且主要通过功能级别的数据分析任务来优化功耗。

结论:

上述示例展示了电流监控和调试工具在优化 MCU 应用能效方面的重要性。不是等到开发结束才能执行能量优化,而在整个开发阶段都可以执行分析,开发人员可以清晰地看到迭代改进。再加上高级休眠模式和无需长时间的处理器干预即可运作的智能硬件,工程团队可以轻松地实现能效方面的重大改进。

用户喜欢...

新品推荐#8 CC1352R SimpleLink多频段无线MCU

德州仪器CC1352R SimpleLink多频段无线微控制器(MCU)是一种多协议Sub-1和2.4GHz无线MCU。该MCU面向无线M-Bus,IEEE 802.15.4g,支持IPv6的智能对象(6LoWPAN),Thread,Zigbee,KNX RF,Wi-SUN,Bluetooth5低能耗和...


利用市场上基于FirstFarm®®M33的MCU - 第2部分:生命周期安全管理

对于基于微控制器的系统的开发人员而言,物联网(IoT),工业自动化或个人电子等快速增长应用的广泛设计要求往往会迫使系统功能,性能或功耗之间达成妥协。面对不断增长的安全威胁,在...


第一款基于Arm®Cortex®-M33的MCU - 第1部分:管理功耗和性能

开发人员不断发现自己正在努力平衡在各种功能和应用程序中以较低功耗实现更高应用程序性能的经常冲突的需求。这些应用包括物联网(IoT),工业自动化,医疗系统和消费设备。在这些应用...


使用SPI XiP Flash扩展微控制器程序存储器的原因和方法

随着微控制器应用变得越来越复杂,开发人员正在为应用固件使用更多的Flash程序存储器对于开始执行相对复杂的边缘计算的物联网(IoT)端点尤其如此。但是,有时应用程序可以扩展到需要外...


构建更有效的智能设备:第 1 部分 – 使用 MCU 和 PMIC 的低功耗设计

本系列文章分为三个部分,将探讨如何构建更有效的智能设备。第 1 部分(本文)讨论用于平衡功率和性能的低功耗设计方法。第 2 部分解决应对用户透明安全性的挑战。第 3 部分检讨满足设...


MCU提供基于硬件的物联网安全性

伦敦 - 安全突然成为一个热门话题。考虑到所有关于连接设备和实现物联网(IoT)设备的讨论,以及对网络攻击的潜在威胁的更多认识,这并不令人惊讶。认识到这一点,意法半导体和恩智浦半...


构建更有效的智能设备:第1部分 - 采用MCU和PMIC的低功耗设计

无线物联网和可穿戴电子产品依赖于能够延长电池寿命的低功耗设计。然而,紧张的电力预算与更多功能的需求相冲突,这些功能可能迫使开发人员转向使用大型电池和充电需求,这对用户来说...


为物联网设计添加高性能语音关键字定位:第2部分 - 使用MCU

编者注:使用新兴的高效算法类,任何开发人员现在都可以在低功耗,资源受限的系统上部署复杂的关键字定位功能。这个由两部分组成的系列文章的第一部分展示了如何使用FPGA实现这一目标...


物联网(IoT)的兴起 预计未来五年微控制器市场将稳步上升

旧金山 - 据市场研究公司IC Insights称,预计未来五年微控制器市场将稳步上升,主要原因是传感器的普及和物联网(IoT)的兴起。 IC Insights表示,预计今年MCU出货量将增长18%,达到306亿部。该...


快点?蓝牙MCU无线耳塞解决方案的关键

设计蓝牙无线耳塞时会遇到许多挑战。 同步这对耳塞对于可接受的操作至关重要。 这对于完全无线的解决方案来说可能是困难的,这就是为什么许多系统跳过此任务并在耳塞之间运行连线的原...


Microchip发布了支持快速物联网实施的32位MCU

Microchip Technology Inc.最近发布了两款物联网芯片,专门用于简化产品开发,同时加强物联网终端的安全性 - 随着物联网设备数量迅速增加,这一问题日益受到关注。 该 SAM L10和L11 SAM 是32位微控制...


使用CLC扩展PIC®MCU功能

可配置逻辑单元(CLC)是一种灵活的外设,可为PIC单片机创建片上自定义逻辑功能。 该外设允许用户指定信号组合作为逻辑功能的输入,并使用逻辑输出来控制其他外设和I / O引脚。 这为嵌入...


选择并应用适用于物联网的低功耗微控制器

对于电池供电的连接设备来说,能量消耗是至关重要的,以最大限度地延长电池更换之间的时间,甚至允许设备运行在环境能源之外。尽管许多嵌入式系统开发人员精通代码优化,但为物联网(...


三种破解MCU 技术,就是这么简单!

MCU的安全等级正在逐步提升,一些公司甚至推出了安全主控,这是很好的现象,说明大家越来越重视嵌入式领域的信息安全和程序安全了。但对于很多特殊行业,比如消费类电子产品,低成本...


无线 MCU 选型,你必须知道的六个套路

物联网市场的高速发展,无疑也在搅动半导体行业原有的格局,为了在物联网时代不掉队,各个芯片厂商都在努力发展适应市场需求的新产品品类。因为联网是物联网终端设备的基本需求,所...


使用CircuitPython开发板简化基于ARM®Cortex®-M0 +的物联网嵌入式设计

许多嵌入式应用使用高级MCU,但只需要基本的硬件控制功能,而不需要高级嵌入式设计的硬实时要求。开发商和制造商经常沉浸在硬件设计,C / C ++编程和实时操作系统的细节中。幸运的是,有...