在处理电池供电产品,特别是那些要求单节电池可持续运行一年甚至几年的场景中,低功耗是一个关键指标。这类产品对平均电流的要求非常低,通常在微安或纳安级别。
我的前公司涉足多个电池供电产品项目,它们共享一个显著特点:极低的待机电流。
以下是基于我的工作经验和市场上类似产品的分析,我将探讨低功耗设计的要点以及实现低功耗的方法。
一、待机产品和其特性
低功耗产品通常要求待机功耗极低,有些产品在待机状态下消耗零功率,而有些产品则在待机时交替或同时运行多个外设模块。
1. 待机零功耗
对于待机零功耗的产品,关键在于确保工作时的功耗尽可能低。如果产品的工作时间也很短,那么在低功耗方面的研发投入相对较少。
举例:电视遥控器
这类产品在待机时功耗为零,通过按键唤醒,唤醒后工作几毫秒(具体时间根据型号而定)再次进入待机状态。
实现方法:
按键操作通电,启动微控制器(MCU),执行必要任务后,通过MCU控制总电源切断电源。
换言之,通过外部开启电源,再通过内部控制电源断开的机制实现了这一功能。
2.间歇待机
有些产品是间歇性待机,比如:工作1ms,待机499ms。
比如IC卡设备:
IC卡设备如果一直处于寻卡工作状态,电流其实相对较大,而很多时候都没有IC来感应。
实现原理:
这种产品,可以间隔0.25s,或者0.5s来感应(寻卡)一次,同时不会给人带来“卡顿”的感觉。(寻卡工作的时间其实很短)
(图片来自网络)
同理,类似的产品还有很多,比如无线遥控天然气、水表等。
这种做法目的是为了让产品功耗更低,但人看起来产品一直在工作。
3.长期待机
有些产品的MCU是通过外围设备唤醒,比如通过触摸按键唤醒产品。
这种产品相对上面两种难度更大,要同时保证MCU内部资源,以及外部资源在工作和待机时功耗都要尽量低。
二、实现低功耗的方法
结合上面产品的描述可以总结几点实现低功耗的方法。
1.控制电源开关
通过控制系统总电源、(高功耗)外围模块电源的开关,特别是使用频率低、功耗大的外围模块,在需要时才开启。
2.控制MCU内部外设
有些MCU产品的外设在上电时默认是开启的(比如STM8S),不用的外设一定要关闭,在需要时才开启。
3.控制时钟频率
这里说的控制时钟频率不单纯是降频,是根据实际工作情况(工作模式、时长等)调整频率。
有些产品它在执行任务A时,要求快速处理(不如跑一段算法),则需要调整到更高的频率;
而在执行任务B时,处理简单事情(比如控制LED亮灭),则需要将时钟调整到很低状态。
同时,还需要结合工作时长,比如上面任务A,如果时间很长,这个频率也需要综合考虑。
4.控制IO状态
现在MCU基本都有多种状态:
-
模拟输入 -
浮空输入 -
下拉输入 -
上拉输入 -
开漏输出 -
推挽输出 -
复用开漏输出 -
复用推挽输出
在低功耗状态、工作过程都需要设置成合理状态。比如通常在待机时,将不用的引脚设置成模拟输入。
5.检查硬件
检查是否存在漏电流,比如不合格电容、电阻等器件。
还有虚焊或板卡上存在残留焊锡等情况,都会导致功耗增加。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !