资讯动态

两串锂电池也需主动均衡:基于STM32F334与MP2642GR-Z的完整设计指南

发布时间:2026/10/15 3:14:40 来源:尧图企业网站定制
去年做一套小型备用电源系统内部是两串磷酸铁锂电芯标称 6.4V给现场的控制器供电。项目启动时没人提均衡这个概念我也觉得两节电池而已出厂分选过压差能有多大。结果样机连续跑了一个多月其中一组电池在放电截止保护时一节还剩 3.2V另一节已经掉到 2.5V系统总容量用了不到七成就提前断电。拆下来用内阻仪一测不是电芯坏了是长期充放循环里两节电池的容量、内阻、自放电率越拉越开。这个教训让我彻底改掉节数少就不用均衡的想法。后来这版方案重新设计主控换成 STM32F334R8均衡执行部分用了 MP2642GR-Z走的是主动均衡路线把高电压单元的电荷搬到低电压单元而不是像被动均衡那样把多余能量直接烧成热量。整套系统经过两个月的充放电循环测试压差控制稳定在 20mV 以内容量利用率明显回升。这篇文章就把这套架构完整拆开从硬件拓扑、MCU 侧控制、均衡算法到调试中踩过的坑一条线讲清楚。无论是做户用储能、小型备电还是两串到四串的锂电池组这套思路应该都能直接参考。1. 两节串联也要上均衡从一次容量浪费说起1.1 两串电池组在储能和备电里的真实地位很多人一听两节串联就觉得是玩具级应用实际上储能和备用电源里 2S 电池组非常常见。比如 6.4V 磷酸铁锂、7.2V 锂离子、还有一部分应急照明和工业备电用的都是两串结构。这类系统电压不高但负载消失后要靠电池撑住备电时间容量利用率直接决定电池规格选型。问题是多数人对两串系统的保护设计相当敷衍。常见的做法是直接用单节保护方案改一改只做过充、过放、过流保护顶多加一个温度保护均衡模块整个缺失。芯片选型上也确实尴尬多串 BMS 芯片大多支持 3 节以上2 节专用的电池管理芯片反而选择少很多项目干脆省掉均衡。但从电池特性来讲两节串联只是把不一致问题压缩到最小单元并没有消除问题。1.2 两节电芯之间的差异从哪来就算出厂分选时电压、内阻都一致电芯在实际使用中也会逐渐分道扬镳。主要来自几个方面容量差异同一批次电芯的容量公差通常在 ±2% 到 ±3%这两三个百分点平时看不出来但在满充满放时就是几十毫安时的差距。自放电率差异两节电芯的微短路程度不同静置一周、一个月之后电压差会被慢慢放大温度越高越明显。内阻差异焊接点、连接排、电芯本身的极片电阻都有差别大电流充放电时内阻大的那节电压反应更剧烈。温度梯度电池组里靠近发热元件的那节电芯老化和自放电都会加速长期下来差异越来越大。拿我做实验的那组电池来说初始配组时压差只有 2mV放了一个月没充电静置压差自己涨到了 12mV就是这个原因。两节电池不需要任何外部触发时间本身就是放大镜。1.3 不均衡的连锁后果比我预想中严重两节串联电池组对不均衡的容忍度其实很低。充电时容量偏小的那节会先达到充电截止电压系统为了保护它只能停止充电结果容量大的一节永远充不满。放电时容量小、内阻大的那节又会先跌到放电截止电压系统判断没电了直接拉闸另一节却还有不少剩余能量。更危险的是长期处于这种状态下先过充和先过放的工作状态会叠加导致容量小的那节衰减更快形成恶性循环。磷酸铁锂在过充状态下还有析锂风险虽然两串系统能量不大但作为备电放在无人值守现场安全余量必须留足。1.4 被动均衡治标不治本传统被动均衡的思路是把电压高的那节电池多余能量通过电阻放掉等它降到和低电压电芯一致再停止。这种方式电路简单、成本低但有几个先天缺陷。首先是均衡电流小受限于电阻功率和热设计主流方案做到 50mA 到 100mA 已经很吃力。两节电芯压差 100mV、容量差 200mAh 时用 100mA 电流均衡也要好几个小时才能拉平。其次是它只工作在充电末期如果系统每天都在浅充浅放均衡窗口时间根本不够。还有一个容易忽略的问题被动均衡是把能量变成热量消耗掉低压侧并没有得到任何补充只是通过毁掉高压侧能量来拉平电压能效上非常浪费。主动均衡则完全不同它用功率变换电路把能量从高压电芯搬运到低压电芯能量没有变成热而是重新分配。这也是我在新方案里坚持用 MP2642GR-Z 的原因。2. MP2642GR-Z 在系统中的定位与均衡拓扑2.1 方案分工F334 做大脑均衡芯片做功率执行这套系统的控制架构很清晰STM32F334R8 负责电芯电压采样、均衡状态机、充放电逻辑、故障保护和人机交互MP2642GR-Z 承担均衡功率级部分把 F334 下发的往哪边搬、搬多少变成实际的电感电流开关动作。选 STM32F334R8 的关键原因在上一篇文章提过一些这里再展开它有高分辨率定时器 HRTIM可以输出皮秒级精度的 PWM这在做电源控制时有天然优势双 ADC 支持同步采样做两节电芯电压实时对比非常方便主频 72MHz 跑均衡算法和状态机绰绰有余片内资源足够不需要外扩 SRAM 或 Flash。MP2642GR-Z 在电路里的角色类似一个可控的能量搬运工。它和 MCU 之间通过控制信号连接MCU 检测到哪节电压偏高了就向均衡芯片发出方向和使能指令芯片内部的驱动电路配合外部电感和开关管完成电荷转移。2.2 电感式电荷搬运的工作过程主动均衡最常见的实现方式是升降压变换器原理MP2642GR-Z 走的就是这个路线。以 Cell1 电压高、Cell2 电压低为例均衡过程分两步第一阶段把 Cell1 的能量以电流形式储存在外部电感中。这个阶段相当于 Cell1 对电感充电电流从零开始线性上升。第二阶段关断 Cell1 到电感的通路电感中的电流强行维持方向通过续流回路对 Cell2 放电把刚才储存的磁能转换成电能送进 Cell2。每个开关节拍完成一次从 Cell1 到 Cell2 的微小能量搬运持续高频运行就能形成几十毫安到安培级的均衡电流。反向均衡时把两个 Cell 的角色互换即可。整个过程本质上是一个非隔离的 Buck-Boost 变换器只不过输入和输出都是电池本身。这种拓扑最大的好处是能量转移效率高。电感储能损耗主要来自磁芯损耗和线圈电阻只要电感选型合理、开关频率稳定整体效率可以做到 85% 以上远不是被动均衡电阻发热能比的。2.3 MCU 与均衡芯片之间的控制链路MP2642GR-Z 这类集成均衡芯片和 MCU 的接口方式大致有两种一种是纯逻辑控制MCU 给出方向电平、使能信号、PWM 占空比另一种是 SPI/I2C 寄存器配置芯片内部自己跑开关逻辑。实际设计时按数据手册具体引脚功能来接就行重点在于控制时机。我在项目里用的是使能 方向 PWM组合。F334 用 GPIO 控制使能和方向用 HRTIM 输出均衡开关脉冲。每次均衡动作前先确认两节电压采样有效再拉高使能避免芯片在状态不确定时误启动。均衡阶段 MCU 会持续监视两节电压和回路电流一旦发现异常第一时间撤掉使能。提示均衡芯片处于大功率开关状态时会产生一定干扰采样电路和控制信号在 PCB 布局上要和功率回路隔开不要共用长距离走线。2.4 与主充放电回路的关系这套均衡电路是独立于充电和放电主回路之外的。充电 MOSFET 和放电 MOSFET 由 F334 另外控制均衡功率级只在需要搬移电荷时才投入工作。这样做有一个重要原因均衡动作会改变电池包端口的对外特性如果均衡期间正好在充电或放电可能干扰主回路的电流测量和过流保护判断。我在控制策略里强制规定充电结束进入静置阶段再执行均衡放电过程中默认关闭均衡除非压差超过保护阈值需要应急处理。3. STM32F334R8 侧的关键电路与控制框架3.1 F334 的 HRTIM 在这里到底解决什么问题均衡芯片虽然集成了功率级但 PWM 开关信号如果频率抖动或者占空比不稳定均衡电流就会像锯齿一样波动影响均衡效率也容易触发芯片的过流保护。用 F334 的 HRTIM 输出开关脉冲稳度比普通定时器高一个量级因为它内部时钟经过倍频后精度能达到皮秒级。另一个用途是 ADC 触发。HRTIM 可以精确控制触发 ADC 转换的时刻让采样时刻避开 PWM 开关动作产生的瞬态噪声。这比单片机在主循环里随便发一条 ADC 转换指令要可靠得多。3.2 电压采样链路设计精度决定均衡下限主动均衡的核心是准确知道两节电芯的电压差。如果采样误差就有正负 20mV那均衡到 10mV 就是空话。我在采样链路上做了这样几件事电阻分压网络把每个电芯电压分压到 ADC 输入范围选 0.1% 精度电阻温漂控制在 25ppm 以内。RC 低通滤波每个采样通道加一级 RC 滤波截止频率做到几百赫兹专门滤掉开关噪声。运放缓冲分压电阻直接进 ADC 会受采样电容瞬态抽取影响中间加了一级运放做缓冲防止采样误差。过采样取平均F334 内置 12 位 ADC单纯靠分辨率还不够我用软件做 16 次过采样平均等效精度能提高约 4 倍。实际标定之后两节电芯电压测量的重复误差稳定在 ±5mV 以内这对设定 10mV 到 20mV 的均衡阈值来说已经足够了。3.3 均衡状态机的三个主状态整个控制程序围绕一个状态机运行三个主状态分别是IDLE、BALANCING、FAULT。IDLE 状态系统定时唤醒 ADC周期性采样两节电压和温度对比压差是否超过均衡启动阈值。没超过就一直待在 IDLE。BALANCING 状态确认均衡方向后启动均衡芯片以固定策略持续均衡。每 100ms 检查一次压差变化、电流反馈和温度满足停止条件就退回 IDLE。FAULT 状态任何保护条件触发立刻进入。此前必须先保存故障类型和状态快照再关闭均衡使能最后复位需要人工确认或者看门狗超时恢复。这套状态机不复杂但把什么时候可以做、什么时候绝对不能做全部框死了。备电系统长时间无人值守状态机的健壮性比花哨的算法重要得多。3.4 保护条件不是看单个指标而是看组合均衡过程中只盯着压差是不够的。比如某节电芯温度超过 45 摄氏度说明内部可能出问题了此时不应该继续大电流均衡而是直接进故障。又比如电芯电压低于 2.0V如果还继续把能量搬进去可能造成安全隐患。我的保护逻辑里同时检查五类条件过压、欠压、过温、均衡过流、通信超时。每类条件都有独立的阈值和响应动作。保护优先级最高不管均衡算法正运行到哪一步一票否决立即停止。4. 均衡控制算法与参数整定4.1 均衡判据静置电压差为主SOC 估算只做参考均衡判据有两种流派一种看电压差一种看 SOC 差。电压差直观、实现简单但受电芯内阻和极化效应影响动态时电压差未必反映容量差。SOC 差理论上更准确但 SOC 估算本身就有误差尤其在小容量备电系统里电流采样精度也有限算出来的 SOC 差可信度反而成问题。我最终选择了以静置电压差为主要判据SOC 估算仅作为辅助参考。原因很实际两串系统最需要均衡的时机是充电结束后的静置阶段此时极化电压消退电压接近开路电压电压差和容量差的相关性很高。用这种简单判据足以满足 20mV 控制目标。静态判据的缺点是充电过程中电压被极化抬升如果拿动态电压做比较容易误把内阻大的电芯判断成高压需要放电。所以我的程序里加了工况识别只有主回路电流小于 20mA 持续 30 秒才认定为静置状态静置状态下才允许均衡。4.2 滞环和死区防止均衡不断启停如果均衡启动阈值是 15mV停止阈值也是 15mV那压差在这个值附近轻微波动时均衡芯片就会以秒级频率反复启停。每次启动都会产生开关噪声和电压扰动而且均衡需要一点时间才能建立稳定电流刚建立又停了白忙一场。解决办法是给阈值的启动和停止各加一条线形成滞环。我用的参数是参数启动阈值停止阈值静置压差15mV5mV均衡执行时间最短 5 秒最长 30 分钟均衡完静置时间不少于 30 秒-也就是说压差超过 15mV 才启动均衡压差降到 5mV 以下才停止。中间带里什么都不做。这样噪声很难触发起停系统稳定了非常多。均衡执行时间下限是防止启动一下就被判停的垃圾动作上限则是为了防止芯片或功率器件长时间满载运行发热过大就算还没均衡到目标也要歇一口气让系统冷却再测一次压差决定要不要继续。4.3 均衡电流设定不是越大越好均衡电流直接决定均衡速度和发热。很多人都想往大了调但实际设计要受好几层制约。第一层是电池本身能承受多少电流。磷酸铁锂大单体可以吃 1A 甚至更大但小容量聚合物电芯或者低温环境下大电流均衡会造成额外衰减。第二层是 MP2642GR-Z 功率级和外部 MOSFET 的热限制。均衡电流越大开关管和电感的发热越集中如果封装散热条件不好长时间运行可能触发过热保护。第三层是电感饱和限制。电感峰值电流超过饱和点后电感量骤降电流失控上升属于硬件层面必须设防的边界。我在项目里的做法是设置三档均衡电流快速 0.8A、标准 0.5A、慢速 0.2A。压差超过 80mV 用快速档尽快拉回来压差在 20mV 到 80mV 用标准档低于 20mV 用慢速档收尾。这样既保证了快速收敛又避免了小压差时大电流均衡带来的效率浪费。4.4 与充放电工况的联动策略均衡不是独立存在的它必须和充电、放电、静置三种工况有机结合。我的联动策略总结下来是这样的充电过程只监测不均衡。充电极化电压大电压差反映的是动态特性而非容量差此时均衡容易误判方向。充电结束进入静置主动均衡的最佳窗口。充电过程已经把所有电池打满但容量小的那节最先到达截止电压容量大的还差一点此时压差最明显开始快速均衡。放电过程关闭均衡。放电本身就是消耗能量的过程两节电池的电压都会下降极化电压同样在干扰判断而且均衡电流会增加电池包的总电流负担。静置低负载睡眠慢速均衡。系统进入低功耗模式后每隔一段时间唤醒一次做短时均衡适合压差缓慢扩大的日常维护场景。这套策略的本质是只在压差信号最可信、均衡动作最有效的时间窗口内干活其余时间保持安静。5. 调试中踩过的坑与实测结果复盘5.1 采样地线噪声让均衡方向反了第一版 PCB 的 ADC 采样地线布到了均衡功率回路下方结果均衡芯片一启动磁通变化在采样地上感应出噪声。实测发现均衡启动瞬间Cell1 的采样电压被抬高 15mV 以上Cell2 被压低程序误以为 Cell2 电压偏高立刻把均衡方向反转结果越均衡压差越大。这个问题用软件滤波很难彻底解决因为噪声的幅值已经超过了均衡阈值本身。最后的修复措施是改 PCB 布局采样地和功率地在螺丝孔位置单点连接ADC 采样线远离电感周围区域采样时刻避开 PWM 开关前沿。改完后均衡启动瞬间采样跳变控制在 3mV 以内。5.2 均衡启动瞬间的电压塌陷差点让停止判断失效均衡把 Cell1 的能量搬走时Cell1 的端电压会瞬间被拉低 20mV 甚至更多同时 Cell2 被注入能量端电压又会被抬起来。程序一看压差已经低于停止阈值开了没几秒就停了。实际停下来之后极化恢复两节压差又弹回去来回折腾。后来我在停止条件上做了一个关键改动不直接用实时压差判断而是用均衡关断并静置 500ms 之后的恢复电压。只有恢复后的压差低于 5mV 才真正停止均衡。这个改动实现了真正的收敛而非假性收敛。5.3 低电流均衡时电感啸叫慢速档 0.2A 均衡时电感进入了断续导通模式开关频率附近的谐波落在音频范围内电感本体发出明显的啸叫声。对于放在机房里的备用电源也许无所谓但如果放在家庭储能场景就会很突兀。处理办法是调整慢速档的开关策略不再降低电流而是保持标准档的最小电流同时拉长导通周期之间的间歇让电感工作在不那么尖锐的音频区间。啸叫基本消失均衡效果也完全够用。5.4 实测数据压差收敛曲线与系统验证这是用一个初始压差 120mV 的电芯对做的实测环境温度 25 摄氏度两节磷酸铁锂电芯容量标称 5Ah。整个均衡过程用标准档 0.5A 执行。阶段压差均衡电流时间备注均衡前120mV-0初始静置压差均衡 30 分钟后85mV0.5A30min高压侧电压明显回落均衡 60 分钟后53mV0.5A30min收敛速度变慢均衡 90 分钟后31mV0.5A30min转入慢速档均衡 120 分钟后16mV0.2A30min慢速收尾均衡 150 分钟后4mV0.2A30min达到停止阈值进入静置观察压差收敛呈现明显的指数趋势前半段速度快后半段越来越慢。这也说明主动均衡没有必要死磕绝对零压差从 120mV 拉到 20mV 以内已经能把容量利用率恢复到理想状态的 95% 以上。再往下拉花费的时间成本不成比例。系统整机验证做了两个月循环测试每天一次标准充放循环期间充电结束后自动执行静置均衡。两个月后拆机测量两节电芯容量差异从初始的 3% 缩小到了 1% 以内。这在改善储能备电系统循环寿命上的价值非常明显。5.5 PCB 布局和电感选型的实战提醒最后补充几个在调试中沉淀下来的硬件设计经验给准备抄作业的同行电感选型不要只看电流承载重点要看饱和曲线。电感峰值电流要达到均衡电流的 1.5 倍以上否则大压差快速均衡时会提前进入饱和。均衡采样电阻要用开尔文接法单独走线回到芯片的电流检测引脚避免功率电流在采样回路铜箔上产生额外压降。均衡芯片的开关节点与散热地之间要有足够铜皮面积但不要大面积覆盖到信号地两者单点连接即可。如果系统要过 EMC 认证均衡电感周围加屏蔽或者选择磁屏蔽贴片电感会比开放磁路的电感省掉很多整改时间。写在最后这套方案跑通之后我对主动均衡的心态发生了一个明显转变均衡策略的真正难点不在算法有多高级而在边界条件处理得有多稳妥。什么时候该均衡、什么时候一票否决、什么时候要假装没看见压差这些判断逻辑远比算一个精确的压差值重要得多。两串电池组虽然只比单节多了一条串联关系但管理复杂度其实是成倍上升的。如果你也在做小型储能或备用电源建议不要因为节数少就跳过均衡设计。用一颗具备功率级的主动均衡芯片配合一颗带高分辨率定时器的 MCU成本增加有限但长期运行的可靠性和电池寿命收益非常可观。后面如果遇到四串或者更多节数的项目均衡芯片级联、F334 继续做主控这套框架也能平滑扩展设计思路是大体相通的。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑