对于嵌入式系统,电源芯片对于低功耗设计是一个很重要的器件。电源芯片自身的功耗以及转换效率在很大程度影响电池的使用时间。进行低功耗的稳压电路设计,需采用低功耗的LDO或者DCDC芯片,如TI的TPS797系列,自身功耗仅1.2uA。

在满足功能需求的情况下,尽量选用带触发输出功能外部器件而非需要轮询的外部器件,这样可以减少MCU的运行时间,平时MCU可以一直处于睡眠状态下,在满足触发条件时有外部器件通过中断唤醒MCU工作。对外围元器件的电源控制,采用带关断功能的器件,进入低功耗模式下不需要工作的外设,可以使用MOS管电路配合MCU控制对局部的电路进行电源管理。在该设备不需要工作时,尽量关断该部分电源,以达到更低的功耗。

多级电压设计,电压和功耗有着密切的联系。因此功耗的降低可以考虑对于不同的电路模块,使用不同的电压等级,可以采用DVFS动态电压频率技术,通过将不同电路模块的工作电压及工作频率降低到恰好满足系统最低要求,来实时降低系统中不同电路模块功耗的方法。

硬件设计对于MCU的每个IO口都要避免IO口漏电流。当外设掉电时,IO口仍然会有潜在的电源输出,所以IO口需要默认配置成低电平或者高电平状态,避免漏电流。适当的降低CPU的运行频率,降低MCU的运行速度,可以有效的降低运行时需要消耗的电流,芯片的功耗和主频是线性的关系,更高的时钟频率意味着更快的MCU运行速度,那么MCU内部CMOS电路就更快的开关频率,导致更高的运行电流和待机电流。

合理的使用MCU的待机模式,在当前没有任务需要处理时,将MCU进入到低功耗的睡眠模式。对于使用嵌入式操作系统的嵌入式产品,一般都是在idle空闲任务中进入睡眠模式,但是为了进一步降低功耗,实现低功耗最优设计,我们还不能直接把睡眠或者停机模式直接放在空闲任务就可以了,需要设计一种更先进的休眠机制,比如在freertos操作系统中使用tickless 低功耗机制,进入空闲任务后,首先要计算可以执行低功耗的最大时间,也就是求出下一个要执行的高优先级任务还剩多少时间。然后就是把低功耗的唤醒时间设置为这个求出的时间,到时间后系统会从低功耗模式被唤醒,继续执行多任务。