4、电源管理方案:电池选型与充电管理芯片

电源管理,说白了就是给智能药盒选个「心脏」。我做了这么多年嵌入式,发现很多产品死就死在电源上——不是续航不够,就是充电电路烧了。今天咱们就把这块掰开揉碎了讲。

4.1 电池选型:锂电还是干电池?

这个问题我经常被问到。我的回答是:看场景。

4.1.1 干电池方案

干电池最大的优势就是「随手可得」。你想想看,老人家里没电了,去楼下便利店买两节7号电池就能续命。我做过一个给农村老人用的药盒,用的就是两节AA电池。

但干电池也有硬伤:

  • 电压会掉:新电池1.5V,用到后面可能只有1.0V,电路得能扛得住
  • 容量有限:一节AA碱性电池大约2000mAh,两节串联也就3V/2000mAh
  • 不可充电:用完就扔,不环保,长期成本高

我个人习惯,如果产品定位是「低功耗、长待机、不频繁充电」,干电池反而是好选择。比如一天只响几次闹钟的药盒,两节AA电池撑半年没问题。

4.1.2 锂电池方案

锂电池现在几乎是智能硬件的标配。3.7V的标称电压,直接给MCU和屏幕供电,不用升压。常见的18650电芯容量在2000-3500mAh,聚合物软包电池可以做到更薄。

我建议选锂电池时注意三点:

  • 容量别贪大:1000mAh足够药盒用一周,再大体积就上去了
  • 带保护板:过放、过充、短路保护必须有,否则容易起火
  • 工作温度:普通锂电0-45°C,北方冬天放室外可能直接罢工

我的经验之谈:有一次我图便宜买了不带保护板的电芯,结果客户反馈药盒用着用着就鼓包了。从那以后,我选电池只看正规厂家的带保护板型号,贵几块钱但省心。

4.2 充电管理芯片:TP4056 vs IP5306

选充电芯片,说白了就是看你要「简单够用」还是「功能齐全」。我常用的两款芯片,正好代表了这两个方向。

4.2.1 TP4056:经典线性充电方案

TP4056是国产芯片里我用得最多的。它就是个线性充电器,外围电路极其简单——几个电阻电容就能工作。

关键参数:

参数
充电电流 最大1A(通过电阻设定)
输入电压 4.5V-6.5V(典型5V)
充电精度 ±1.5%
封装 SOP-8/MSOP-8
价格 约0.3元

典型电路是这样的:

// TP4056 典型应用电路
// VCC(5V) -> IN 引脚
// BAT 引脚 -> 电池正极
// PROG 引脚 -> 接电阻到GND设定充电电流
// 例如:1.2kΩ电阻对应1A充电电流

// 关键引脚:
// CHRG: 充电中,低电平
// STDBY: 充满,低电平
// 这两个引脚可以直接接LED指示状态

TP4056最大的问题是发热。线性充电嘛,压差越大发热越厉害。5V输入充3.7V电池,效率也就70%左右。我建议充电电流不要超过800mA,否则散热是个麻烦。

小技巧:TP4056的PROG引脚对地电阻,我习惯用1.5kΩ,对应约800mA充电电流。这样既不会太热,充电速度也还能接受。

4.2.2 IP5306:升压+充电+电量显示一体方案

IP5306就高级多了。它集成了充电管理、升压输出、电量显示、手电筒驱动等功能。说白了,一颗芯片搞定所有电源相关的事。

我为什么推荐它?

  • 同步升压:效率高达93%,比TP4056的线性充电省电多了
  • 电量显示:直接驱动4颗LED显示电量,省掉MCU的ADC采样
  • 路径管理:边充边用,电池没电时也能插着USB工作
  • 待机功耗:小于100μA,适合电池供电产品

IP5306的典型应用:

// IP5306 典型应用电路
// VIN -> 5V输入
// BAT -> 电池正极
// LED1-LED4 -> 电量指示LED
// KEY -> 按键(短按显示电量,长按开关手电筒)

// 关键配置:
// 充电电流:默认1A,可通过ISET引脚调整
// 升压输出:5V/2.1A
// 电量检测:自动检测,无需MCU干预

注意:IP5306的散热焊盘必须良好接地,否则大电流充电时芯片会过热保护。我见过有人layout时没注意,结果充电到一半就停了。

4.3 低功耗设计:让药盒活得更久

低功耗设计,说白了就是「能睡就睡,醒了赶紧干完活继续睡」。我总结了几条实用原则。

4.3.1 MCU的睡眠模式

选MCU时,一定要看它的睡眠电流。比如STM32L0系列,睡眠模式只有0.4μA。而普通STM32F1系列,睡眠模式也要几十μA。

我习惯这样设计:

  • 平时深度睡眠:电流<1μA,RTC定时唤醒
  • 闹钟响时:唤醒MCU,驱动蜂鸣器和屏幕,持续30秒
  • 用户按键:外部中断唤醒,处理完继续睡

4.3.2 外围器件的功耗控制

很多新手容易忽略外围器件的功耗。比如:

  • LED指示灯:用1mA驱动就够了,别用10mA
  • 蜂鸣器:用有源蜂鸣器,无源的虽然便宜但驱动复杂
  • 显示屏:段码LCD比OLED省电得多,OLED一个像素就要几十μA
  • 传感器:不用时彻底断电,别只靠软件关断

避坑指南:我曾经在一个项目里用了I2C接口的温湿度传感器,想着软件关断就行了。结果发现传感器在待机时还有20μA的电流。后来加了个MOS管,不用时彻底断电,待机电流直接降到0.1μA。

4.3.3 电源路径管理

如果用了IP5306,路径管理是自动的。但如果你用TP4056+升压芯片的方案,就得自己设计。

我的做法是:

  • USB插入时:直接由USB供电,同时给电池充电
  • USB拔出时:自动切换到电池供电
  • 电池电压过低:关断升压电路,进入保护模式

这里用到一个关键器件——理想二极管控制器,比如LTC4412。它能实现「或」逻辑,自动选择电压高的那一路供电。

4.4 实际项目中的电源方案对比

我整理了一个表格,方便你根据需求选择:

方案 成本 待机功耗 充电效率 适用场景
干电池+TP4056 极低 N/A 低功耗、不频繁充电
锂电池+TP4056 70% 简单药盒、成本敏感
锂电池+IP5306 中高 93% 功能丰富、需要电量显示
锂电池+专用PMIC 极低 95%+ 高端产品、医疗级

我个人最推荐的是「锂电池+IP5306」方案。成本增加不多,但省去了很多外围电路设计,而且电量显示和路径管理都是现成的。你想想看,一颗芯片解决所有问题,多省心。

最后说一句:电源设计没有银弹。我见过有人为了省几毛钱,用TP4056硬扛1A充电,结果板子热得能煎鸡蛋。也见过有人用IP5306做超低功耗产品,结果待机电流降不下去。关键还是看你的产品定位——是追求极致成本,还是追求用户体验。

嗯,电源管理这块就聊到这儿。下一章咱们讲传感器选型,到时候再细聊。