1. 项目背景与核心需求解析
在便携式电子设备设计中,两节串联锂离子电池(2S)方案因其更高的能量密度和输出电压(7.4V标称/8.4V满充)而备受青睐。然而串联电池组的固有痛点在于——即使使用同一批次电芯,在充放电循环中也会因内阻、温度等微小差异导致电压失衡。这种失衡若不及时校正,轻则降低可用容量(木桶效应),重则引发过充/过放事故。
BQ25887正是德州仪器针对这一痛点推出的解决方案。作为集成I2C接口的2A升压充电管理IC,其核心价值在于:
- 通过硬件级电池平衡功能(内置400mA平衡MOSFET)
- 配合PIC18F85J10微控制器的智能调控
- 实现充电效率(实测93.4%)与电池寿命的和谐统一
典型应用场景包括:
- 医疗手持设备(如便携超声仪)
- 工业级平板电脑
- 高亮度LED手电筒
- 无人机备用电源模块
2. 硬件架构设计与关键器件选型
2.1 BQ25887的三大核心能力
该芯片的硬件设计亮点体现在三个维度:
电源拓扑优化
- 采用1.5MHz同步升压架构,相比传统方案减少60%电感体积(典型值4.7μH)
- 输入电压范围3.9-6.2V,完美兼容USB PD协议
- 集成20V耐压的输入保护MOSFET,可承受插拔浪涌
电池平衡机制
- 硬件平衡电路支持三种工作模式:
- 自动模式(基于电压差阈值触发)
- I2C强制平衡模式
- 充电完成后的维护模式
- 平衡电流可通过寄存器配置(50-400mA步进)
数字监控接口
- 16位ADC提供0.5%精度的电压监测
- 实时上报电池温度(支持JEITA曲线)
- 输入电流优化(ICO)算法动态调整充电策略
2.2 PIC18F85J10的协同设计
选择这款MCU主要基于以下考量:
- 硬件I2C接口支持400kHz高速模式
- 内置12位ADC满足电压采集需求
- 16KB Flash存储平衡策略算法
- 超低功耗特性(休眠电流<1μA)
硬件连接关键点:
// 典型I2C初始化代码 void I2C_Init() { SSPCON1 = 0b00101000; // I2C主模式,时钟=Fosc/(4*(SSPADD+1)) SSPADD = 39; // 100kHz @16MHz晶振 SSPSTAT = 0; TRISC3 = 1; // SCL引脚 TRISC4 = 1; // SDA引脚 }3. 电池平衡算法的实现细节
3.1 电压采样策略优化
为提高检测精度,我们采用以下方法:
- 在充电静默期(无电流阶段)采样
- 每个电芯连续采样5次取中值
- 软件校准补偿走线阻抗(典型值10mΩ)
电压差计算公式:
ΔV = |Vcell1 - Vcell2| - (Ibalance × Rtrace)当ΔV > 25mV(可调阈值)时触发平衡
3.2 动态平衡控制流程
st=>start: 开始充电 op1=>operation: 读取两节电池电压 cond=>condition: ΔV >阈值? op2=>operation: 开启平衡MOSFET op3=>operation: 调整PWM占空比 e=>end: 充电完成 st->op1->cond cond(yes)->op2->op3->op1 cond(no)->e关键寄存器配置示例:
// 设置平衡阈值50mV I2C_Write(BQ25887_ADDR, 0x12, 0x32); // 启用自动平衡模式 I2C_Write(BQ25887_ADDR, 0x0B, 0x84);4. 实测性能与优化技巧
4.1 效率对比测试数据
| 充电电流 | 无平衡效率 | 平衡模式效率 | 温升差异 |
|---|---|---|---|
| 0.5A | 94.1% | 92.8% | +3.2℃ |
| 1.0A | 93.4% | 91.5% | +5.7℃ |
| 2.0A | 90.2% | 88.3% | +8.1℃ |
4.2 五个关键优化经验
PCB布局要点
- 平衡电流路径尽量短粗(建议2oz铜厚)
- BAT1/BAT2走线对称布置
- NTC热敏电阻紧贴电芯
软件滤波算法采用移动加权平均滤波:
#define FILTER_DEPTH 5 uint16_t Filter_Voltage(uint16_t new_val) { static uint16_t buf[FILTER_DEPTH]; static uint8_t idx = 0; buf[idx++] = new_val; if(idx >= FILTER_DEPTH) idx = 0; uint32_t sum = 0; for(uint8_t i=0; i<FILTER_DEPTH; i++) { sum += buf[i] * (i+1); // 线性加权 } return sum / (FILTER_DEPTH*(FILTER_DEPTH+1)/2); }温度补偿策略根据JEITA标准动态调整充电参数:
- 0-10℃:电压降至8.0V,电流降额50%
- 45-60℃:电压降至8.2V
故障恢复机制
- I2C通信异常时自动切换至默认参数
- 连续3次平衡失败触发告警
生产测试要点
- 用电子负载模拟电池差异
- 验证400mA平衡电流下的温升
- 老化测试至少50次完整循环
5. 典型问题排查指南
5.1 平衡功能失效排查流程
- 确认I2C通信正常(示波器检查SCL/SDA)
- 测量BAT1/BAT2对地阻抗(正常值>100kΩ)
- 检查寄存器0x0B的bit7是否置1
- 用万用表检测平衡MOSFET栅极驱动电压
5.2 充电电流波动问题
可能原因及对策:
- 输入源不稳定:增加22μF陶瓷电容并联在VIN
- NTC电阻偏差:校准β值参数(典型值3950)
- PCB散热不足:优化地平面敷铜面积
实测案例:某型号平板电脑在高温环境下出现充电中断,最终发现是平衡MOSFET的导通电阻(Rds(on))随温度升高至1.2Ω(25℃时为0.8Ω),通过改用热阻更低的封装(从QFN改为WSON)解决问题。
6. 进阶应用:多机并联方案
对于需要更大充电电流的场景,可采用双BQ25887并联设计:
- 主从模式配置(通过I2C地址区分)
- 电流均分控制算法
- 相位交错技术降低纹波
硬件修改要点:
- 每个IC独立电流检测电阻(10mΩ 1%)
- 共用时钟同步信号
- 增加均流总线(Share_BUS)
软件关键代码片段:
void Current_Sharing() { uint16_t i1 = I2C_Read(IC1_ADDR, CURRENT_REG); uint16_t i2 = I2C_Read(IC2_ADDR, CURRENT_REG); if(abs(i1 - i2) > 100) { // 100mA容差 uint8_t reg = (i1 > i2) ? 0x01 : 0x02; I2C_Write(IC1_ADDR, 0x0F, reg); } }这种设计可将最大充电能力扩展至4A,实测效率仍保持90%以上。需要注意的是,并联方案中平衡功能需设置为手动模式,由主控制器统一协调。