低功耗运行仍然是各行业应用的关键驱动因素。随着睡眠模式的增加,电源管理突然从单纯的硬件问题转移到软件开发人员必须考虑的事情上。
功耗模式的最简单应用是当系统空闲时,将其置于休眠状态。然而,今天的MCU提供多种低功耗模式,进一步使低功耗设计复杂化。现在,开发人员需要考虑多核的复杂独立性,高频信号处理以及如何可靠地满足系统的所有实时期限。
除了有源(例如LP或低功耗)和睡眠(例如ULP或超低功耗模式,开发人员还可以选择降低核心电压以节省电力。
每种电源模式都会点亮SoC的不同部分。模式节省的功率越多,SoC可以做的越少,唤醒回到活动模式所需的时间越长。
睡眠模式仍然是你的空闲循环去。CPU时钟停止但可以通过中断或来自其他内核的请求快速恢复到活动模式。外设可以保持活动状态,CPU“立即”从中断处执行代码。
使用休眠或深度休眠的决定取决于系统需要唤醒的速度以及系统关闭时哪些外设需要处于活动状态。高频时钟不会被供电,因此您可以丢失一些通信链路(UART),同时保留其他通信链路(SPI和I2C)。您也会丢失ADC,因为它们需要一个MHz时钟。你的PWM也会消失,所以当LED熄灭时不要担心。
事情开始变得复杂的是多核心。低功耗模式会影响CPU和系统。将一个CPU丢弃到深度睡眠模式不会自动关闭系统资源,因为另一个CPU可能正在使用它们。因此,如果两个CPU都处于深度睡眠状态,您只能获得全部低功耗优势。如果您的内核在尝试深度睡眠时不同步,则会显着影响您的整体电源效率。
休眠模式
休眠模式使系统进入最低功耗状态。因为你不能简单地恢复执行;系统需要重置。在非常长的睡眠期间,当您只需要一点智能来唤醒系统时,Hibernate非常有用。这对于实现电源关闭或开启功能或操作低频传感器非常有用。
休眠模式还支持保留RAM以保存有限的状态信息。例如,您可以存储先前的传感器读数。重置系统时,它会检查传感器并将当前值与先前值进行比较。如果它们在阈值范围内,则不会触发任何事件,系统将退回到休眠模式。实现最大功率效率。
仅仅因为你已经设法让CPU进入正确的低功耗模式并不意味着你的运行效率很高。在深度休眠和休眠模式下,漏到I / O引脚可以控制功耗。考虑一个用于偏置电阻的引脚。除了确保使用最高电阻外,还需要将引脚保持高或低,以最大限度地减少功耗(即泄漏)。
休眠模式保持I / O引脚的配置,以便您可以将所有引脚保持在最低功耗状态。例如,将电阻器直接连接到电源是一种常见做法。如果您将电阻器连接到GPIO,而不是电阻器不断吸取功率,您现在可以打开和关闭电阻器。如果您没有意识到这一点,您可能会认为当引脚实际绘制1 mA时,系统正以低7μA的速度运行。从正确的角度来看,效率低143倍,10年的运行寿命降至25天。
影响低功耗运行的另外两个主要因素是降低核心电压和稳压器的选择。例如,PSoC 6可以为其内核提供1.1 V或0.9 V电压。您无法在0.9V时快速为内核提供时钟,但如果您只是检查温度传感器,则50 MHz仍然更多加工比你需要的。
可选择稳压,集成LDO或高效开关模式降压转换器,允许您以成本交换功率效率。使用降压转换器可以提供90%的效率,但代价是外部电感。
随着芯片制造商不断改进低功耗运行,嵌入式系统将能够以更少的成本完成更多的工作。请记住,通过更多选项,可以通过更多方式来撤消所有优化系统的艰苦工作,只需对系统实际执行的操作进行单一,简单的误解。