双节锂电池串联均衡方案:基于ATSAME70Q21B与MP2642GR-Z的设计调试全记录 两节电池串联的储能系统看起来只是把电压翻倍但真正用起来才知道最麻烦的不是容量而是均衡。最近在调试一套储能和备用电源项目主控用的是ATSAME70Q21B前端均衡方案选了MP2642GR-Z。目标很明确在7.4V双节锂电池组上把两个串联电芯的电压差控制在合理范围内避免系统反复触发过压保护也避免容量较小那一节被过度充电。这类系统现在很常见离网照明、家庭备用电源、便携储能箱、工业设备的DC后备板都在从单节锂电池往双节甚至多节串联方向走。电压高一点功率传输效率就好看一些线损也低一些。但随之而来的均衡问题会让不少开发者头疼。本文把我的设计思路、电路细节、固件流程和踩坑记录完整写出来希望对正在做双节串联BMS的朋友有帮助。1. 双串联电池均衡的痛点拆解1.1 串联电芯不一致比想象中严重很多人的第一反应是电池出厂时电压差不多串联使用问题应该不大。实际上这个想法会害了项目。锂电池在出厂后每一节的自放电率、内阻、极化特性都有分散性这在电池数据手册里写的是“典型值”但不同批次、不同老化状态下的电芯差异会越来越大。拿我手头的测试数据来说一批新的磷酸铁锂电芯出厂电压都是3.300V放置三个月后最低的掉到3.212V最高的还在3.287V差了75mV。如果这两个电芯串联成6.6V电池组充电时电压高的先到截止电压电压低的还没充满。此时要是继续充高压那一节就会过压要是不充低压那一节长期欠充容量持续损失。串联电芯之间的一致性本质上决定整组电池的可用容量。一个电芯容量衰减10%整个串联组的可用容量就会减少10%哪怕另一个电芯还是全新状态。这就是木桶效应。1.2 不均衡会引发哪些连锁反应不均衡不只是容量损失它还会引发一串安全问题。充电阶段高电压电芯先到达充电截止电压系统为了保护它只能停止充电。此时低压电芯处于欠充状态长期循环后低压电芯会逐渐产生容量收缩、内阻升高进一步加剧电压差异。放电阶段反过来低压电芯先到达放电截止电压系统停止放电但高压电芯其实还有不少余量。于是整组电池的“实际可放电容量”比“标称容量”小很多。在备用电源场景里这直接影响备电时间原本设计能撑2小时的负载可能只撑了1小时20分钟就掉电了。更麻烦的是不一致性会随着循环次数增加而放大。内阻高的电芯在充电时会分到更高的电压发热也更严重温度升高又加速老化内阻继续变大形成正反馈。到后期甚至会出现某个电芯过压、过温同时发生的情况。对靠锂电供电的设备来说这是不可接受的风险。1.3 设计目标与技术指标为了解决这个问题我在项目启动时定了几个明确的指标。首先是均衡精度目标是把任意两个串联电芯的电压差控制在30mV以内。其次是均衡效率主动均衡和被动均衡的取舍决定了发热量。再次是响应速度在充电末期1分钟内要有明显均衡动作不能让高压电芯长时间顶着截止电压。这些指标必须在一个紧凑的板卡上实现同时要兼容储能系统的通信接口。ATSAME70Q21B负责高速采集和策略运算MP2642GR-Z负责功率级的充放电管理和基础均衡动作。硬件和软件互相配合形成一套完整的均衡闭环。2. 方案选型为什么是MP2642GR-Z ATSAME70Q21B2.1 MP2642GR-Z承担什么角色MP2642GR-Z是一颗集成了双节串联电池充放电管理功能的电源芯片来自Monolithic Power Systems。我第一次拿到这颗料的时候第一反应是它把很多外围电路都收进去了对缩小PCB面积帮助很大。它内部集成了充电功率管、电流采样、电压比较和均衡控制逻辑外部只需要配合电感、电阻、电容就能完成完整的充电回路。在双节串联的7.4V锂电应用中MP2642GR-Z的作用是控制充电电流执行恒流/恒压充电曲线并在此基础上完成基础的硬件均衡。芯片内部检测两个电池电压的差异当低压差超过内部设定阈值时会主动调节充电电流或通过内部路径对高压电芯进行分流使两个电芯在充电过程中逐步逼近一致。从系统设计角度看这颗料解决的是“功率层”的问题。主控不需要直接去驱动大电流开关也不需要实时计算各种复杂的充电PI参数。主控只需要告诉芯片“当前应该进入什么充电模式”芯片就去执行底层很多模拟细节被封装掉了。2.2 ATSAME70Q21B为什么能撑起整个控制逻辑ATSAME70Q21B是Microchip的Cortex-M7内核MCU主频最高到300MHz带有双精度浮点单元。做BMS逻辑其实用不到这么强的算力但我的考量是未来扩展性。这个平台后续可能要对接更复杂的SOC估算模型比如卡尔曼滤波、神经网络校准等M7的浮点性能可以轻松应对。它最打动我的其实是外设组合多路12位ADC、丰富的定时器、多个串口、CAN、以太网MAC还有一个很灵活的PIO控制器。在储能系统里主控不仅要管电池还要管继电器、风扇、加热膜、通信接口甚至触摸屏显示SAM E70的外设资源可以一芯多用。另外SAM E70的ADC支持多通道扫描采集速率足够快。我在设计时用了两个ADC通道连续采集单节电压和总电压配合定时器触发可以达到10kSPS以上采样率这对检测瞬态电压变化非常有帮助。均衡算法需要的“短期电压纹波分析”和“长时间漂移分析”都依赖足够高精度的原始数据。2.3 外围器件的整体搭配除了核心IC外围器件选型也很关键。均衡电阻我选择了低温漂的金属膜贴片电阻阻值误差1%以内。采样电阻用合金电阻阻值10mΩ温漂系数小于50ppm。分压电阻选0.1%精度这是保证均衡判断准确的前提。输入端的防反接和浪涌保护也很重要。储能系统的输入可能来自太阳能板、适配器或直流母线电压波动和反接风险都存在。我在输入端加了一颗TVS管、一颗防反接MOS管和一个自恢复保险丝。这个组合不能说100%可靠但至少应对日常的异常电压冲击足够。对于MCU周边我单独给ADC的VREF引脚加了一颗高精度基准源而不是直接用MCU内部的3.3V供电。因为板子上有开关电源纹波噪声很容易串进内部参考电压导致采样跳动。外接基准源的成本不高但对采样的稳定性帮助极大这个钱不能省。3. 均衡电路设计与关键参数3.1 主功率链路与均衡拓扑整个系统的主功率链路是输入电源 → MP2642GR-Z → 电池组 → 负载输出。MP2642GR-Z既管充电也负责电池到负载的放电通路。在实际项目中我额外并联了一个低导通电阻的负载开关用于在电池电压偏低时切断负载防止过度放电。在均衡拓扑上我选择的是MP2642GR-Z硬件均衡加MCU控制的辅助被动均衡。所谓辅助被动均衡就是在每个电池两端并联一个MOS管和一个均衡电阻由MCU根据电压差决定是否开启。当芯片内部均衡动作不够快或需要更精确控制时MCU可以直接把高压电芯的均衡MOS打开让多余能量通过电阻耗散掉。这种“芯片硬件均衡MCU策略均衡”的组合好处是有一个冗余备份。芯片内部的均衡坏了或者被温度限制住MCU还有能力独立完成均衡反过来MCU固件有问题时芯片也能在充电过程中提供基础的均衡保护。双保险至少在备用电源这种环境里更安心。3.2 采样链路电压、电流、温度电压采样是均衡的基础采样精度直接决定均衡效果。我的思路是同时采集“总电压”和“第一串电池电压”第二串电压通过两者相减得到。这样只需要两个分压电阻网络节省了复杂的差分切换电路。第一串电池电压经过电阻分压后接入ADC分压比例选择的原则是最高电池电压4.25V时ADC输入不超过3.0V留出安全余量。我在分压电阻后还加了一颗100nF的滤波电容和电阻构成低通滤波截止频率大约在几百赫兹可以滤掉开关电源带来的高频噪声。电流采样使用合金电阻两端电压接入MP2642GR-Z的电流检测引脚。MCU通过读取芯片状态寄存器或监测引脚电平来获取电流值。在充电恒流阶段实测电流在设定值的±5%以内波动这个精度对均衡策略来说已经足够。温度采样我用了三路NTC热敏电阻电芯1、电芯2、PCB板温。NTC经过分压后接入ADC通过查表方式换算实际温度。温度采样看似简单但位置很重要。NTC必须紧贴电芯表面中间加导热硅胶垫否则测到的是空气温度不是电芯温度。3.3 均衡阈值与回滞处理均衡不是简单地“看到电压差就打开MOS”。如果阈值设得太小均衡动作会频繁切换MOS反复开关产生噪声和发热设得太大又起不到均衡效果。我最终的参数是参数项设定值说明均衡启动压差30mV超过后启动均衡均衡停止压差10mV回滞区间防止反复切换均衡充电电压下限3.5V低于此电压不均衡先充电再说单节过压保护4.25V硬件和软件双重保护单节欠压保护2.80V触发后切断负载这里最关键的是回滞区间。我的做法是当压差超过30mV时开始均衡一直均衡到压差回落到10mV以内才停止。这10mV的差值就是回滞它避免均衡MOS在阈值附近反复开关。如果不加回滞MOS可能在几秒钟内开关几十次每秒钟几十次的抖动对EMC和MOS寿命都是折磨。还有个细节是均衡只在充电状态或静置状态执行放电状态下不执行被动均衡。因为放电时高压电芯本来就在输出能量开启均衡电阻只会增加整组电池的负担白白浪费电量。这个逻辑虽然简单但对延长备用电源的续航时间很有意义。4. 固件实现从ADC到均衡策略4.1 ADC采样与滤波固件的第一步是可靠的采样。我用了ATSAME70Q21B的ADC多通道扫描功能定时器触发采样每个通道连续采集16次后做中值滤波再把中值滤波的结果做滑动平均。中值滤波可以剔除偶发的尖峰干扰滑动平均则平滑周期性纹波。两组滤波器配合使用采样数据的波动幅度能控制在正负2mV以内。这里有一点要提醒中值滤波的窗口不宜太大否则会牺牲响应速度。我试过32点中值滤波数据非常稳定但遇到真正的电压突变时反应明显迟钝了不少。最后折中在16点既稳定又能快速响应。ADC校准也很重要。ATSAME70Q21B的ADC有一个厂商标定寄存器但我在量产时还是做了一次软件校准先把ADC输入短接到GND测偏移再把输入接到高精度参考电压测增益。校准后的采样数据通过线性修正精度能提升一个数量级。这一步不改任何硬件只需要固件里多写几十行代码非常划算。4.2 均衡状态机的实现我把均衡流程设计成一个有限状态机本质上是给均衡控制一个清晰的“呼吸节奏”。状态机的状态分为空闲(IDLE)、充电恒流(CC)、充电恒压(CV)、均衡(BALANCE)、放电(DISCHARGE)、故障(FAULT)。在IDLE状态下MCU以低频周期唤醒比如每10秒做一次电芯电压扫描。如果压差超过阈值且电芯电压在安全区间就进入BALANCE状态。在BALANCE状态下MCU开启高压电芯的均衡MOS同时持续监控压差压差回落后停止均衡回到IDLE。充电时状态机从IDLE进入CC或CV这个切换由MP2642GR-Z的电流状态决定。在CV阶段芯片已经检测到某个电芯接近满电电流开始收窄这时候软件均衡介入。我在CV阶段把均衡判断周期缩短到500ms因为这是最关键的窗口期错过这段时间高压电芯就可能过压。在DISCHARGE状态下均衡策略完全旁路。MCU只监控电压和电流防止电池过度放电。这个状态机的核心思想是不同的工况下均衡的优先级完全不同绝不能一套参数打天下。4.3 故障保护逻辑故障保护是BMS的底线我这里的保护逻辑分出几个等级。第一级是警告比如单节电压超过4.10VMCU记录状态降低充电电流提醒上位机。第二级是保护单节电压超过4.25V或低于2.80V立即停止充放电关闭功率通路需要人工复位才能恢复。第三级是故障锁定如果检测到均衡MOS短路或采样链路异常系统直接锁定故障状态防止带病运行。软件保护之外MP2642GR-Z有独立的硬件保护功能。即使MCU死机或者程序跑飞芯片内部还是会监控过压过流在纯硬件层面切断充电通路。这种“MCU软件保护芯片硬件保护”的双通道设计是电池系统可靠性的重要保障。我测试过把固件里所有保护逻辑关掉只靠芯片硬件保护电池依然能安全停住这让我放心了不少。5. 调试实录与常见问题排查5.1 电压采样漂移从3mV恶化到20mV调试中最让我头疼的问题是电压采样漂移。刚上电时ADC读出来的电池电压很准和万用表对比误差在3mV以内。但运行半小时后误差慢慢扩大到15mV甚至20mV。这个问题直接影响了均衡判断的准确性。排查过程花了不少时间。先怀疑是ADC基准不稳换了外部基准源无效。再怀疑是分压电阻温漂换了低温漂电阻改善了一些但问题依然存在。最后发现问题出在PCB布局上分压电阻的参考地离功率地太近充电电流在地平面上产生了微小的压降这个压降被ADC当成真实信号采进去了。解决方法是把采样地的走线改成独立的“净地”走线从电池负极单独拉一条细线到ADC的地引脚中间不与其他功率回路共享。改动后电压采样漂移问题消失了长时间运行误差稳定在2mV以内。地线设计这种问题书本上不会专门讲但实际项目里真的是血泪教训。5.2 均衡MOS发热严重均衡MOS发热是我遇到的第二个问题。最初的均衡电流设定在200mA电阻选择1Ω功率0.25W。实测均衡工作几分钟后均衡电阻温度飙升到80多度PCB局部都变色了。问题出在我低估了均衡电阻的功耗。压差4V时通过1Ω电阻的电流是4A功率16W这个数字和设计目标差距太大了。虽然实际工作点不会这么极端但在均衡刚开始时高压电芯电压可能是4.2V低压电芯是3.9V压差0.3V电流只有0.3A功耗0.09W看起来没问题。但随着均衡进行压差如果维持在较大值功耗就会长期偏高。解决方案是增加开关控制均衡MOS以PWM方式驱动占空比根据压差实时调整。比如压差大时占空比设30%压差小时占空比降到10%。这样等效均衡电流可调同时大大降低平均功耗。另外我还在均衡电路中串了一个限流电阻把最大均衡电流限制在500mA以内。这是一个“软硬结合”的优化思路。5.3 ATSAME70Q21B的ADC参考电压噪声ATSAME70Q21B的ADC本身性能不差但要是不注意参考电压的滤波采集数据能让人崩溃。我最初直接用板上的3.3V电源作为ADC参考电压结果采样值跳动幅度达到10mV。后来换用外部基准源并且在基准源输出端加了10uF和100nF两级去耦电容再配合一级RC低通滤波采样数据终于安静下来。这里想强调一下VREF系列的电容布局非常重要。去耦电容要尽量靠近基准芯片的引脚走线要短而且不要在基准源输出下面铺大面积的铜皮否则寄生电容会引入噪声。别问我是怎么知道的问就是测试时吃了亏。5.4 常用排查手段汇总把之前调试中遇到的典型问题和解决手段整理了一下方便大家对照排查。故障现象可能原因排查方法单节电压读数偏高分压电阻受潮清洁PCB涂三防漆均衡启动后电压纹波加大均衡MOS开关频率不合适降低PWM频率或增加RC滤波充电电流忽大忽小电流采样引线过长改用差分走线靠近采样电阻低压电芯不均衡NTC贴装位置错误重新布置温度传感器位置MCU复位频繁功率地噪声耦合优化地线分割增加去耦6. 实操经验总结与后续扩展建议这套双节电池均衡系统从原理图到调试完成前后用了六周时间。回过头看最值得分享的经验有几点。一是硬件均衡和软件均衡不能互相替代但可以互相备份。MP2642GR-Z做基础ATSAME70Q21B做决策各管一段系统的容错能力会明显增强。二是采样精度是整个均衡系统的地基采样不准确再精妙的算法都是空中楼阁。三是在固件里一定要做回滞处理不要因为一个简单的逻辑漏洞让MOS在阈值边界反复切换。后续我计划在这个基础上增加库仑计芯片对电池SOC做更精确的估算。现在这个平台只用电压来估算剩余电量精度在10%左右加上库仑计后理论上可以做到3%以内。另外我还在测试CAN通信接BMS总线的功能ATSAME70Q21B的CAN外设可以直接使用后面接储能逆变器会方便很多。如果大家对这部分感兴趣之后可以再写一篇关于固件细节实现的文章。