4. 电源管理设计:DC-DC与LDO选型、电源路径管理、电池电量监测与保护
电源管理,说白了就是按摩仪的“心脏”和“血管”。
我见过太多项目,功能做得花里胡哨,结果电池续航一塌糊涂,或者干脆开机就重启。嗯,这期我们就来聊聊怎么把这颗“心脏”设计好。
4.1 DC-DC与LDO选型:效率与噪声的博弈
选电源芯片,其实就是在效率和噪声之间找平衡。你想想看,按摩仪里既有电机这种大功率负载,又有蓝牙芯片这种对噪声敏感的器件。
DC-DC(降压转换器):效率高,但噪声大。
- 适用场景:给电机、加热片供电。这些负载对纹波不敏感,但电流大。
- 选型要点:我个人习惯看轻载效率。按摩仪大部分时间在待机或低档位运行,如果DC-DC在轻载下效率掉到70%以下,那电池就白费了。
- 频率选择:1MHz左右是黄金频率。太高了开关损耗大,太低了电感电容体积大。
避坑指南:我曾经选过一颗标称效率95%的DC-DC,结果在10mA负载下只有60%。后来仔细看手册,才发现那个95%是在500mA下测的。所以,一定要看效率曲线,别只看峰值。
LDO(低压差线性稳压器):噪声低,但效率也低。
- 适用场景:给蓝牙芯片、传感器、运放供电。这些器件对电源纹波极其敏感。
- 选型要点:压差(Dropout Voltage)是关键。如果电池电压3.7V,要输出3.3V,压差只有0.4V。选一个压差0.2V的LDO,就能多用一会儿电池。
- 静态电流:按摩仪待机时,LDO的静态电流可能比负载电流还大。我建议选静态电流低于1μA的型号。
| 参数 | DC-DC | LDO |
|---|---|---|
| 效率 | 高(80%-95%) | 低(取决于压差) |
| 输出纹波 | 大(10-50mV) | 小(<1mV) |
| 静态电流 | 几十μA到几mA | 几μA到几十μA |
| 成本 | 较高(需电感) | 较低 |
| 推荐场景 | 电机、加热 | 蓝牙、传感器 |
我的经验:一个常见的组合是:电池→DC-DC(降压到3.3V)→LDO(再降到1.8V给蓝牙)。这样既保证了整体效率,又给敏感器件提供了干净的电源。
4.2 电源路径管理:让电池和USB和平共处
按摩仪通常支持USB充电和电池供电。这两个电源怎么切换?搞不好就会烧芯片或者充不进电。
理想二极管方案:用PMOS管实现电源路径切换。
- 当USB插入时,PMOS关断,切断电池通路,由USB供电并充电。
- 当USB拔出时,PMOS导通,由电池供电。
- 这样做的好处是:没有二极管压降,效率高。
// 电源路径切换伪代码
if (USB_Detected) {
disable_battery_path(); // 关断PMOS
enable_USB_path(); // 由USB供电
start_charging(); // 开始充电
} else {
enable_battery_path(); // 导通PMOS
disable_USB_path(); // 由电池供电
stop_charging(); // 停止充电
}
注意:切换时一定要加死区时间。我曾经遇到过PMOS和NMOS同时导通,瞬间短路,直接把电池保护板烧了。嗯,从那以后我都在软件里加了至少1ms的延迟。
充电管理芯片:现在很多芯片自带电源路径管理,比如TI的BQ系列、国产的TP4056。我建议直接用集成方案,省心。
- 选型时注意:充电电流是否可调?是否支持热调节?
- 我个人习惯选带NTC(热敏电阻)输入的芯片,可以检测电池温度,防止过热充电。
4.3 电池电量监测:别让用户“心里没底”
用户最怕什么?用着用着突然没电了。所以电量监测不是锦上添花,而是刚需。
电压法:最简单,但最不准。
- 原理:测电池开路电压,查表得到电量。
- 缺点:电池有内阻,负载变化时电压会跳变。比如电机一转,电压瞬间掉0.3V,电量显示就从50%掉到20%了。
- 适用场景:对精度要求不高的低端产品。
库仑计法:准确,但成本高。
- 原理:实时监测充入和放出的电荷量。
- 优点:不受负载变化影响,精度可达1%。
- 缺点:需要校准,且长时间使用后会有累积误差。
我的建议:对于按摩仪这种产品,用“电压法+补偿”就够了。具体做法是:
- 在电机不转时测电压,作为基准。
- 在电机转动时,根据电流大小补偿电压降。
- 每10秒更新一次电量显示,避免频繁跳动。
// 电压法电量估算(简化版)
uint8_t get_battery_level(uint16_t voltage_mv, uint16_t current_ma) {
// 补偿内阻压降:假设内阻100mΩ
uint16_t compensated_voltage = voltage_mv + (current_ma * 100 / 1000);
// 查表得到电量百分比
if (compensated_voltage >= 4100) return 100;
else if (compensated_voltage >= 3900) return 80;
else if (compensated_voltage >= 3700) return 60;
else if (compensated_voltage >= 3500) return 40;
else if (compensated_voltage >= 3300) return 20;
else return 0;
}
4.4 电池保护:安全第一
锂电池很娇贵。过充、过放、过流、短路,任何一个都能让它“发脾气”。
保护板(BMS):这是第一道防线。
- 过充保护:电压超过4.25V时切断充电。
- 过放保护:电压低于2.8V时切断放电。
- 过流保护:电流超过设定值(比如3A)时切断输出。
- 短路保护:瞬间大电流时立即切断。
软件保护:这是第二道防线。
- 我习惯在MCU里再加一层保护。比如检测到电池电压低于3.0V时,强制进入休眠模式,并关闭电机。
- 充电时,如果检测到电池温度超过45°C,停止充电。
血的教训:我曾经以为保护板能搞定一切,结果有一次保护板失效,电池过放到2.5V,直接报废了。从那以后,我坚持“硬件保护+软件保护”双重保险。
电池选型:
- 容量:按摩仪一般用1000mAh到3000mAh的18650或聚合物电池。
- 放电倍率:电机启动电流大,建议选1C以上放电倍率的电池。
- 温度范围:按摩仪可能用在冬天户外,选-20°C到60°C的电池。
好了,电源管理这块就聊这么多。说白了,就是选对芯片、管好路径、测准电量、保好安全。下一章我们聊聊电机驱动和振动控制,那可是按摩仪的“灵魂”。