嵌入式软件-充分利用低功耗模式

描述

低功耗运行仍然是各行各业应用的关键驱动因素。随着睡眠模式的加入,电源管理突然从单纯的硬件问题转变为软件开发人员必须考虑的问题。

电源模式的最简单应用是,当系统空闲时,将其置于睡眠状态。然而,当今的MCU提供多种低功耗模式,使低功耗设计进一步复杂化。现在,开发人员需要考虑多核、高频信号处理的复杂独立性,以及如何可靠地满足系统的所有实时期限。

我请赛普拉斯半导体的系统工程师Greg Verge分享他的经验,如何优化双核PSoC 6的多种电源模式的使用。除了活动(例如 LP 或低功耗)和睡眠(例如 ULP 或超低功耗)模式外,这款 Cortex M0 + Cortex M4 SoC 还支持深度睡眠和休眠模式。开发人员还可以选择降低内核电压以节省功耗。

每种电源模式点亮 SoC 的不同部分(请参阅表 1)。Active 为整个芯片供电,而 Hibernate 仅驱动保持 RAM、实时时钟和 I/O 引脚配置所需的最低功率。模式节省的电量越大,SoC 的功能就越少,唤醒回活动模式所需的时间就越长。

睡眠模式仍然是您的空闲循环。CPU 时钟停止,但可以通过中断或来自另一个内核的请求快速恢复到活动模式。外设可以保持活动状态,CPU “立即”从中断的位置执行代码。

深度睡眠很像睡眠,但更多的芯片关闭,唤醒时间更长。使用睡眠或深度睡眠的决定取决于系统需要唤醒的速度以及系统关闭时哪些外围设备需要处于活动状态。高频时钟不会上电,因此您会丢失一些通信链路(UART),同时能够保留其他链路(SPI和I2C)。ADC也需要一个MHz时钟。您的PWM也会消失,所以当LED熄灭时不要担心。

事情开始变得复杂的地方是多核。低功耗模式会影响 CPU 和系统。将一个 CPU 放入深度睡眠不会自动关闭系统资源,因为另一个 CPU 可能正在使用它们。因此,只有当两个 CPU 都处于深度睡眠状态时,您才能获得完全的低功耗优势。如果您的内核在尝试深度睡眠时不同步,这可能会严重影响您的整体电源效率。

休眠模式

休眠模式使系统进入最低功耗状态。休眠是一种承诺,因为你不能简单地恢复执行;系统需要重置。休眠在很长的睡眠期间很有用,此时您只需要一点智能即可唤醒系统。这对于实现断电/打开功能或操作低频传感器非常有用。

休眠模式还支持保留 RAM 来保存有限的状态信息。例如,您可以存储以前的传感器读数。重置系统时,它会检查传感器并将当前值与以前的值进行比较。如果它们在阈值内,则不会触发任何事件,系统将回落到休眠模式。实现最大功率效率。

仅仅因为您设法使CPU进入正确的低功耗模式并不意味着您正在运行。在深度睡眠和休眠中,I/O 引脚泄漏可能会主导功耗。考虑一个用于偏置电阻器的引脚。除了确保尽可能使用最高电阻外,引脚还需要适当地保持高电平或低电平,以最大程度地减少功耗(即漏电)。

休眠模式保持 I/O 引脚的配置,以便您可以将所有引脚保持在最低功耗状态。例如,通常的做法是将电阻器直接连接到电源。如果将电阻连接到 GPIO,而不是电阻器不断获取功率,则现在可以打开和关闭电阻器。如果您不知道这一点,您可能会认为系统以7 μA的低电流运行,而引脚实际上正在消耗1 mA。从这个角度来看,效率降低了 143 倍,将 10 年的使用寿命缩短到 25 天。

影响低功耗运行的另外两个主要因素是降低内核电压和稳压器的选择。例如,PSoC 6 可以为内核提供 1.1 V 或 0.9 V。你无法以0.9V的速度为内核提供时钟,但如果你只是检查温度传感器,50 MHz的处理能力仍然比你需要的要多得多。

稳压器(集成LDO或高效开关模式降压转换器)的选择允许您以功率效率换取成本。使用降压转换器可提供 90% 的效率,但代价是使用外部电感器。

随着芯片制造商不断改进低功耗操作,我们的嵌入式系统将能够事半功倍。请记住,随着更多选项的出现,更多的方法可以消除您优化系统的所有辛勤工作,而对系统实际在做什么的单一,简单的误解。

cpu

表 1:不同的电源操作模式使开发人员能够优化运行时功耗,但您仍然需要小心。这里显示的是赛普拉斯半导体双核PSoC 6的模式、电流和唤醒时间。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分