1. 项目背景与核心器件选型
在锂离子电池组应用中,电池电压平衡是确保系统安全性和寿命的关键技术。当多节电池串联时,由于制造工艺差异和使用环境不同,各单体电池的电压会出现不一致现象。这种不一致会导致部分电池过充或过放,严重影响电池组的整体性能和安全性。
MP2672A是一款专为双节串联锂离子电池设计的智能充电管理IC,其核心优势在于:
- 集成NVDC(窄电压DC)电源路径管理,可在4V至5.75V输入电压范围内工作
- 内置主动均衡电路,当两节电池压差超过30mV(典型值)时自动启动平衡
- 支持2A最大充电电流,充电效率可达92%以上
- 提供I2C接口的寄存器配置方式(主机控制模式)
MK60DN512VLQ10是NXP Kinetis K60系列微控制器,具有以下特点:
- ARM Cortex-M4内核,运行频率100MHz
- 512KB Flash存储,128KB RAM
- 丰富的外设接口,包含多个I2C、SPI、UART模块
- 12位ADC模块(16通道),适合电池电压采集
- 低功耗模式支持,适合便携式设备
实际选型中发现,MK60DN512VLQ10的I2C接口时钟频率最高支持400kHz,而MP2672A的I2C时序要求完全兼容标准模式(100kHz)和快速模式(400kHz),两者配合使用时需注意时序匹配。
2. 硬件系统设计详解
2.1 电源架构设计
系统采用三级电源架构:
- 输入级:USB Type-C接口(5V/3A)作为主输入源
- 转换级:MP2672A实现升降压转换和充电管理
- 输出级:两节18650锂离子电池串联(标称7.4V)
关键电路设计要点:
- 输入滤波:在VIN引脚附近放置10μF陶瓷电容(X7R材质)和100nF去耦电容
- 电池连接:BAT1和BAT2引脚需分别连接0.1Ω电流检测电阻
- 温度监测:NTC热敏电阻(10kΩ,B=3435)贴附在电池表面
2.2 均衡电路实现
MP2672A的均衡功能通过内部开关矩阵和外部电阻网络实现:
BAT1 ──┬── Q1 ─── Rbal ─── Q2 ───┬── BAT2 │ │ Cbal Cbal │ │ GND GND其中:
- Q1/Q2:内部MOSFET开关(导通电阻典型值50mΩ)
- Rbal:平衡电阻(推荐值2.2Ω/1%精度)
- Cbal:平衡节点电容(0.1μF陶瓷电容)
实测数据显示,当两节电池压差达到50mV时,均衡电流约100mA,可在30分钟内将压差降至10mV以内。
2.3 MCU接口设计
MK60DN512VLQ10与MP2672A的连接方案:
I2C总线:
- SCL:PTE24(K60)→ SCL(MP2672A)
- SDA:PTE25(K60)→ SDA(MP2672A)
- 上拉电阻:4.7kΩ(3.3V电平)
状态监测:
- STAT引脚→ PTB0(配置为GPIO输入)
- PG引脚→ PTB1(配置为GPIO输入)
ADC采样:
- 电池电压通过电阻分压后接入ADC0_SE8(PTB10)
3. 软件实现与算法优化
3.1 I2C通信协议实现
MP2672A的寄存器映射包含以下关键区域:
- 0x00-0x0F:充电控制(电流/电压设置)
- 0x10-0x1F:保护阈值配置
- 0x20-0x2F:状态监测寄存器
- 0x30-0x3F:系统配置寄存器
典型寄存器写入流程:
void MP2672A_WriteReg(uint8_t reg, uint8_t val) { I2C_Start(I2C0); I2C_WriteByte(I2C0, MP2672A_ADDR << 1); // 7位地址+写标志 I2C_WaitAck(I2C0); I2C_WriteByte(I2C0, reg); I2C_WaitAck(I2C0); I2C_WriteByte(I2C0, val); I2C_WaitAck(I2C0); I2C_Stop(I2C0); }3.2 电压平衡控制策略
基于MK60DN512VLQ10的平衡算法实现:
电压采样:
- 每100ms采集一次两节电池电压(12位ADC)
- 采用滑动平均滤波(窗口大小=8)
平衡决策:
#define BALANCE_THRESHOLD 50 // 单位mV void Balance_Control(void) { static int16_t v_diff = 0; v_diff = (v_bat1 - v_bat2) * 1000; // 转换为mV if(abs(v_diff) > BALANCE_THRESHOLD) { if(v_diff > 0) { MP2672A_WriteReg(0x12, 0x01); // 使能BAT1放电 } else { MP2672A_WriteReg(0x12, 0x02); // 使能BAT2放电 } } else { MP2672A_WriteReg(0x12, 0x00); // 关闭平衡 } }- 动态调整:
- 当压差>100mV时,自动提升采样频率至10ms/次
- 温度>45℃时,平衡电流减半
4. 实测性能与优化建议
4.1 充电效率测试
在不同输入电压下的效率对比:
| 输入电压(V) | 充电电流(A) | 效率(%) |
|---|---|---|
| 4.5 | 1.0 | 89.2 |
| 5.0 | 1.5 | 91.8 |
| 5.5 | 2.0 | 92.3 |
4.2 平衡效果验证
初始压差:120mV
| 时间(min) | 压差(mV) | 平衡电流(mA) |
|---|---|---|
| 0 | 120 | 0 |
| 5 | 95 | 105 |
| 15 | 42 | 98 |
| 30 | 8 | 15 |
4.3 常见问题解决方案
I2C通信失败:
- 检查上拉电阻值(建议3.3V系统用4.7kΩ)
- 确认MP2672A的地址引脚配置(默认0x6A)
平衡功能异常:
- 测量RAV1/RAV2分压电阻精度(建议1%)
- 检查BATP引脚滤波电容(典型值0.1μF)
充电电流不达标:
- 确认ISET电阻值(2A对应100kΩ)
- 检查输入源带载能力(建议5V/3A以上)
在实际项目中,我们发现PCB布局对系统性能影响显著:
- MP2672A的SW引脚走线应尽量短(<5mm)
- 电流检测电阻需采用开尔文连接方式
- 模拟地和数字地单点连接(推荐0Ω电阻)