如何实现MCU产品最佳低功耗?

2019-01-15 12:13:24

【技术大神】如何实现MCU产品最佳低功耗?

 

随着科技的进步,我们的生活中也出现了越来越多的以MCU作为主控器的产品,从简单的电饭煲,电磁炉,全自动洗衣机到复杂的扫地机器人,航拍无人机,头戴式虚拟现实眼镜,随处都可以找到MCU的身影。而且越来越多的设备都使用了便捷的锂电池供电,这就对产品的功耗,特别是待机功耗提出了严格的要求。因此在产品设计时,如何降低产品的功耗就成了硬件工程师和软件工程师的一门必修课。


硬件工程师在对MCU等主动器件进行选型时,优先选择工作功耗低,休眠功耗低的芯片;在使用被动器件设计电路时,尽量避免设计出增加系统无用功耗的电路。软件工程师在MCU进入休眠前,记得要关闭MCU内部不用的外设,只留下某些中断功能,以保证MCU能正常被唤醒即可;同时,还需要对每个IO在进入休眠前的状态进行确认,不要让休眠时无需工作的外部电路受该IO控制,继续工作而耗电。


以ADC采样电路为例,典型的设计如图一所示。在这种设计下,若MCU进入到休眠状态,a、b两点之间还是有电势差,这就一定会有电流,尽管可以通过增大电阻阻值的方式来减小电流,但是并不能去除。若MCU管脚还有剩余,则可以如图二所示,使用GPIO来代替GND的方法,这样,当使用ADC采样电压时,可以将GPIO设置为输出低电平,实现正常采样,此时的电路结构和图一等效;在MCU在进入休眠前,可以将GPIO设置输出高电平,这样,a、b两点电压一样,没有电势差,就不会形成电流,因此,这样处理后,休眠时,图二的功耗会远远小于图一的功耗。


图片关键词

图1:典型的ADC采样电路


图片关键词

图2:有低功耗需求的ADC采样电路


说完了被动器件,我们再来看看主动器件。这里以Silicon LabsEFM32为例进行说明。
EFM32 系列的MCU共有六种Energy Mode,图三很好的说明了这六种模式的区别,即使用不同模式时,分别关闭了哪些外设。例如,使用EM2(Deep Sleep)时,LE LCD Controller、LE Timer、LE Sensor IF、LE USB、LE UART都是被关闭的。此时,MCU的功耗可以从图四中看出,为0.9~1.4μA,唤醒时间为2μS。因此在编写代码时,要选择合适的Energy Mode,这样,MCU的休眠功耗才会达到比较理想的效果。


图片关键词

图3:EFM32 不同能耗模式关闭的外设


图片关键词

图4:EFM32 不同能耗模式的性能参数


综上,要使产品的总体功耗最优,一定要从硬件和软件两个方面进行考量,综合设计,这样,做出的产品才会实现最佳低功耗的目的。