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做超低功耗产品,结果待机电流降不下去。关键还是看你的产品定位——是追求极致成本,还是追求用户体验。
嗯,电源管理这块就聊到这儿。下一章咱们讲传感器选型,到时候再细聊。