1、低功耗设计哲学:为什么电池供电系统要省电?

做电池供电系统这些年,我最大的体会就是——省电不是锦上添花,而是生死存亡。你想想看,一个传感器节点,如果电池只能撑三天,那客户凭什么买单?

我个人习惯,在项目启动前先问自己三个问题:

  • 这个设备能用多久?
  • 用户愿意多久充一次电?
  • 电池没电了,系统会怎样?

这三个问题,说白了就是低功耗设计的起点。别急着写代码,先把哲学想清楚。

1.1 能量守恒与效率思维

先讲个基础概念——能量守恒。电池里的能量是有限的,你用掉的每一焦耳,都来自化学能到电能的转换。这个转换效率,我见过最差的只有70%,好的能做到95%以上。

我在项目中遇到过一件事:一个温湿度采集器,用CR2032纽扣电池,理论续航两年。结果三个月就没电了。查了半天,发现是LDO的静态电流比MCU还大。嗯,这就是典型的「效率思维」没到位。

效率思维的核心就一句话:每一毫安时都要花在刀刃上。你想想看:

  • MCU跑10MHz能干活,为什么要跑48MHz?
  • ADC采样1000次够用,为什么要采10000次?
  • 无线发送功率能调低,为什么要开最大?

这些不是技术问题,是思维习惯问题。我建议你在设计初期就画一张能量流向图,看看能量到底消耗在哪里。

核心观点:低功耗设计不是「省着用」,而是「用得巧」。效率思维比任何技巧都重要。

1.2 功耗的三大来源

搞清楚了为什么要省电,接下来看看电到底耗在哪了。功耗来源分三类,我习惯叫它们「三座大山」。

1.2.1 动态功耗

动态功耗,说白了就是芯片在工作时消耗的电。MCU执行指令、GPIO翻转、外设工作,这些都会产生动态功耗。公式很简单:

P_dynamic = C × V² × f

其中C是负载电容,V是工作电压,f是工作频率。你看,电压的影响是平方级的。所以降低电压,效果立竿见影。

我记得有一次做电机控制,MCU跑在3.3V、48MHz,功耗8mA。后来我把电压降到1.8V,频率降到16MHz,功耗直接掉到1.2mA。控制周期虽然长了点,但完全够用。

技巧:动态功耗和频率成正比,和电压的平方成正比。优先降电压,再考虑降频率。

1.2.2 静态功耗

静态功耗,就是芯片「闲着」的时候也在耗电。CMOS电路里,即使没有时钟翻转,晶体管也有漏电流。这个漏电流虽然小,但架不住时间长啊。

我曾经做过一个项目,设备大部分时间都在休眠,每天只工作10秒。结果静态功耗占了总功耗的80%!后来换了低漏电的MCU,静态电流从10μA降到0.5μA,续航直接翻了20倍。

静态功耗的典型来源:

  • MCU的休眠模式电流
  • LDO的静态电流
  • 上拉/下拉电阻的漏电
  • 电容的漏电流

注意:别小看微安级的静态电流。一个10μA的漏电,在一年里会消耗87.6mAh的电量。对于小电池来说,这可能是致命的。

1.2.3 漏电功耗

漏电功耗,其实是静态功耗的一种,但我要单独拿出来说。因为它太容易被忽略了。

漏电主要来自:

  • IO引脚的漏电流
  • PCB板表面的漏电
  • 电容的ESR损耗
  • 电池自放电

嗯,这里要注意。PCB板表面的漏电在潮湿环境下会急剧增加。我在南方做项目时就吃过这个亏——设备在实验室测得好好的,一到客户现场就掉电快。后来发现是湿度大,板子表面有凝露,漏电流从nA级飙到了μA级。

避坑指南:我曾经因为没考虑PCB漏电,导致一个产品返工三次。后来学乖了,所有高阻抗节点都加防潮涂层,IO引脚全部配置成高阻或输出低电平。

1.3 低功耗设计的「木桶效应」

木桶效应,大家应该都听过——一个木桶能装多少水,取决于最短的那块木板。低功耗设计也是一样。

你想想看:

  • MCU休眠电流做到0.1μA,但LDO静态电流10μA——短板在LDO
  • 所有芯片都选低功耗,但PCB漏电5μA——短板在PCB
  • 硬件设计完美,但软件每10ms轮询一次——短板在软件

我见过太多这样的案例了。工程师花大价钱买了超低功耗MCU,结果外围电路没优化,整体功耗还是下不来。说白了,低功耗是系统级的事情,不是某个芯片的事情。

下面这张图,是我自己总结的低功耗设计知识体系:

低功耗设计知识体系 低功耗设计哲学 动态功耗 静态功耗 漏电功耗 MCU工作电流 外设功耗 GPIO翻转功耗 休眠模式电流 LDO静态电流 上拉/下拉电阻 IO引脚漏电 PCB表面漏电 电容ESR损耗 木桶效应:最短的板决定整体功耗 低功耗设计 = 系统思维 + 细节把控 + 持续优化

你看这张图,三大来源就像三块木板。动态功耗这块板再短,如果静态功耗的板更短,那整体功耗还是下不来。我建议你每次做低功耗设计时,都画一张类似的图,把每个模块的功耗标出来,看看哪块板最短。

实用建议:用Excel或Python画一张功耗分布饼图。哪个模块占比最大,就先优化哪个。别一上来就盯着MCU的休眠电流,说不定LDO才是真正的「电老虎」。

最后说一句:低功耗设计不是一蹴而就的。它需要你在硬件、软件、系统三个层面反复迭代。我做了十几年嵌入式,到现在也不敢说完全掌握了。但有一点我可以肯定——只要你养成了「每毫安时都要花在刀刃上」的思维习惯,你就已经赢了一半


专注资料整理