资讯动态

基于MP2642与STM32F745的两串电池被动均衡方案设计与实现

发布时间:2026/10/17 9:58:56 来源:尧图企业网站定制
1. 从两个串联电芯说起为什么被动均衡在储能BMS里依然是主流选择储能和备用电源系统里电池组几乎都是“多串并”结构。你只要拆开一个48V的备用电源机柜大概率能看到十几节甚至几十节电芯串在一起。串联的目的是把电压抬上去但串联带来的一个副作用是每节电芯的容量、内阻、自放电率不可能完全一致。时间一长木桶效应就出来了——容量最小的那节电芯先到放电截止电压整组就不得不停止放电充电时又是它先到充电截止电压整组停止充电。结果就是整组可用容量被最弱的那节电芯“锁死”了。均衡电路要解决的就是这个问题。它分两条技术路线被动均衡和主动均衡。主动均衡用变压器、电感或者电容把能量从高电压电芯搬到低电压电芯效率高、发热小但电路复杂、成本高、EMI难搞。被动均衡则是给电压偏高的电芯并联一个电阻把多余的能量以热的形式消耗掉。听起来很“笨”但在储能和备用电源场景里被动均衡的可靠性、成本和静态功耗优势非常明显——尤其是备用电源常年浮充、均衡电流需求不大的场合。这次要聊的方案是用MP2642GR-Z这颗电池管理前端芯片配合STM32F745ZG这颗高性能MCU对两个串联电池单元做均衡控制。两颗电芯的串联系统看起来简单但它是理解多串BMS均衡逻辑的最小完整模型电压采集、均衡开关、状态机控制、保护逻辑一个都不少。把这套两串系统吃透扩展到四串、八串只是级联和地址分配的问题。这篇文章适合谁看如果你正在做储能BMS、备用电源监控、便携式储能设备的均衡功能开发或者你手上有MP2642这颗芯片但不确定怎么和STM32配合那下面的内容应该能帮你少走一些弯路。我会从芯片选型逻辑、硬件连接、寄存器配置、均衡策略、实测踩坑几个角度展开尽量把“为什么这么做”讲清楚而不是只丢一段初始化代码。2. MP2642GR-Z 与 STM32F745ZG 的分工逻辑谁采集谁决策2.1 为什么不让MCU直接采集电芯电压有人会问两个串联电芯的电压采集用STM32F745ZG的ADC加两个分压电阻不就行了吗为什么要专门上一颗电池管理前端芯片这个问题我一开始也想过。STM32F745ZG的ADC是12位参考电压3.3V理论分辨率是0.8mV。两个电芯串联总电压满打满算8.4V分压到3.3V以内分辨率看起来够用。但实际做下来有几个绕不过去的坑第一共模电压问题。串联电芯的高端电压是叠加的你要测上面那节电芯的正极对地电压分压电阻的共模电压可能超过MCU的输入范围需要额外的差分放大或者隔离。第二采集精度受温漂影响。普通1%精度的分压电阻在-20℃到60℃的储能柜里阻值漂移带来的误差可能比电芯本身的压差还大。第三均衡开关的驱动。被动均衡需要控制MOSFET把电阻并联到电芯两端这个MOSFET的栅极驱动电平是浮动的MCU的GPIO直接驱动不了。MP2642GR-Z这类电池管理前端芯片把高压侧电压采集、均衡MOSFET驱动、过压欠压保护、温度采集接口都集成进去了。它通过SPI或者I2C和MCU通信MCU只需要发命令、读数据、做决策。分工很清晰MP2642负责“感知和执行”STM32F745ZG负责“决策和通信”。2.2 MP2642GR-Z 的关键引脚与两串应用接线MP2642GR-Z是一颗支持多串电池管理的前端芯片具体串数支持范围需要查对应数据手册确认。在两串应用里典型的连接方式是VC1、VC2、VC3分别接电芯1负极也就是系统地、电芯1正极电芯2负极、电芯2正极。这三个引脚构成两个电芯的电压采集通道。CB1、CB2均衡驱动输出分别对应电芯1和电芯2的均衡MOSFET栅极。SPI接口SCLK、SDI、SDO、CS和STM32F745ZG通信。VDD、VSS芯片供电通常由电芯组直接供电或者经过LDO稳压。这里有一个容易忽略的细节VC引脚前面的RC滤波。电芯到VC引脚之间建议串一个100Ω左右的电阻再并一个0.1μF的电容到相邻的VC引脚。这个RC网络的作用是滤掉均衡开关动作时产生的电压尖峰。如果不加均衡MOSFET开通瞬间的dv/dt会耦合到采集通道导致电压读数跳变严重时误触发过压保护。2.3 STM32F745ZG 在这套系统里的角色定位STM32F745ZG是STM32F7系列里的高性能型号Cortex-M7内核主频能跑到216MHz带FPU和DSP指令集SPI接口速率也够高。在这套两串均衡系统里它的任务包括周期性读取MP2642的电压寄存器拿到两节电芯的实时电压。运行均衡决策逻辑判断压差是否超过阈值决定开启哪一路均衡。控制均衡时序均衡不是一直开着的需要按占空比或者定时窗口来操作避免持续发热。保护逻辑过压、欠压、过温时切断均衡并上报状态。对外通信通过UART或者CAN把电池状态发给上位机或主控。选F745ZG而不是F103这类低端型号主要考虑的是后续扩展性。两串系统用F103绰绰有余但如果你打算把这套代码移植到多串系统F745的浮点运算能力和更大的RAM会让SOC估算、卡尔曼滤波这类算法跑得更从容。而且F745的SPI支持最高50MHz时钟读MP2642的寄存器几乎不占CPU时间。3. 硬件设计里那几个“不写出来就会踩”的细节3.1 均衡电阻的功率计算不是拍脑袋被动均衡的核心是那颗均衡电阻。阻值选多大直接决定均衡电流和发热量。假设电芯电压3.7V你想让均衡电流做到100mA那电阻就是3.7V / 0.1A 37Ω取标准值39Ω。功率呢P U² / R 3.7² / 39 ≈ 0.35W。看起来不大但你不能只选0.5W的电阻。为什么因为均衡电阻在PCB上的实际散热条件比理想情况差很多。储能设备内部空间封闭环境温度可能到50℃以上电阻的额定功率需要降额使用。我的经验是计算功率乘以2.5到3倍来选封装。0.35W的计算值至少选1W的封装比如2512或者更好的TO-220封装电阻。如果空间允许用两个电阻并联分担功率也是常见做法。还有一个细节均衡电阻不能离电芯太远。走线电阻会分走一部分压降导致实际均衡电流比计算值小。如果均衡电阻和电芯之间的走线超过10cm建议用开尔文连接方式把采集线和均衡线分开走。3.2 均衡MOSFET的选型与驱动MP2642GR-Z的CB引脚输出的是栅极驱动信号但它的驱动能力有限通常需要外接MOSFET。两串系统里电芯1的均衡MOSFET是低边开关源极接地电芯2的均衡MOSFET是高边开关源极接电芯1正极两者的驱动逻辑不一样。低边MOSFET好办N沟道栅极直接由CB1驱动注意Vgs阈值要低于MP2642的驱动电压。高边MOSFET就麻烦了源极电位是浮动的栅极驱动需要以源极为参考。MP2642的CB2输出通常是相对于VC2的所以可以直接驱动P沟道MOSFET或者用N沟道加自举电路。我实测下来P沟道MOSFET在高边均衡里更省事虽然导通电阻比同规格N沟道大一些但省掉了自举电容和二极管PCB面积和故障点都少。选P沟道时注意Vgs(th)和Rds(on)均衡电流100mA的话Rds(on)在100mΩ以内就够用发热可以忽略。3.3 采集通道的RC滤波与均衡干扰前面提过VC引脚的RC滤波这里展开说一下参数选择。电阻选100Ω电容选0.1μF截止频率是1/(2πRC) ≈ 16kHz。这个频率远高于电芯电压的正常变化频率电芯电压不会在毫秒级突变但低于均衡开关的尖峰频率。均衡MOSFET的开关沿通常在微秒级对应频率在百kHz以上会被这个RC网络有效衰减。但RC滤波会带来一个副作用通道间的串扰。如果两节电芯的VC引脚共用滤波电容的接地端均衡动作时地线上的电流脉冲会通过共地阻抗耦合到另一路。解决办法是每路VC滤波电容单独接地最后单点汇聚到电芯1负极。这个“单点接地”原则在BMS采集电路里怎么强调都不过分。4. 寄存器配置与均衡状态机的实现思路4.1 MP2642GR-Z 的初始化流程MP2642GR-Z上电后不会自动开始采集需要MCU通过SPI发配置命令。典型的初始化顺序是软复位发复位命令确保芯片处于已知状态。配置采集通道使能电芯1和电芯2的电压采集设置采集周期。两串系统通常设置成100ms到500ms采集一次太快没必要太慢影响保护响应。配置均衡驱动设置CB1和CB2的驱动极性、最大均衡时间。有些前端芯片支持内部定时器自动关闭均衡防止MCU死机时均衡一直开着。配置保护阈值过压阈值、欠压阈值。磷酸铁锂电芯过压通常设3.65V欠压设2.5V三元电芯过压4.2V欠压3.0V。具体值按电芯规格书来。启动转换发启动命令芯片开始周期性采集。SPI通信的时序要注意MP2642的SPI模式通常是Mode 0或者Mode 3具体看数据手册。STM32F745ZG的SPI配置里CLKPolarity和CLKPhase要匹配。我遇到过因为SPI模式设错读回来的电压值全是0xFF的情况排查了半天才发现是时钟极性反了。4.2 均衡决策的状态机设计均衡逻辑不能写成“电压高的就开均衡”这么简单。实际状态机至少包含以下几个状态IDLE空闲等待采集完成。MEASURE读取两节电芯电压计算压差。EVALUATE判断是否满足均衡条件。条件通常包括压差大于阈值比如30mV、电芯电压在均衡允许窗口内比如3.0V到4.1V之间、温度在允许范围。BALANCE_CELL1 / BALANCE_CELL2开启对应通道的均衡同时启动一个定时器。COOLDOWN均衡关闭后的冷却期让电阻和MOSFET散热同时重新采集电压确认效果。这里的关键参数是均衡占空比。如果压差很大一直开着均衡行不行可以但电阻持续发热PCB局部温度会升高影响采集精度。我的做法是均衡开启2秒关闭1秒循环直到压差降到阈值以内。这个2秒/1秒的比例是根据热平衡实测调出来的不同PCB布局可能需要微调。4.3 电压采集的滤波与真实值还原MP2642读回来的原始电压值有噪声直接用来做均衡决策会导致均衡频繁开关。需要在MCU里做数字滤波。最简单的是滑动平均取最近8次采集的平均值。但滑动平均有个问题如果电芯电压真的在快速变化比如大电流放电时平均会滞后。更好的做法是一阶低通滤波filtered filtered * 0.8 new_sample * 0.2。这个系数0.2对应的时间常数和采集周期有关采集周期100ms的话时间常数大约500ms既能滤掉噪声又不会太滞后。如果系统对响应速度要求高可以把系数调到0.3或0.4。还有一个坑均衡开启时采集的电压不是真实开路电压。均衡电流流过电芯内阻和线路电阻会产生一个附加压降。所以均衡决策应该基于均衡关闭时的电压或者在均衡开启时对读数做补偿。补偿量等于均衡电流乘以线路总电阻这个值可以实测标定。5. 实测中遇到的三个典型问题与排查过程5.1 均衡开启后电压读数反而升高第一次调试时发现一个反直觉的现象开启电芯1的均衡后电芯1的电压读数不但没降反而升高了十几毫伏。关掉均衡又恢复正常。排查过程先用万用表直接量电芯两端确认实际电压没有升高说明是采集通道的问题。然后示波器抓VC1引脚的波形发现均衡开启瞬间有一个正向尖峰幅度大约50mV持续时间几十微秒。这个尖峰被MP2642的ADC采到了导致读数偏高。根因是均衡MOSFET开通时均衡电阻和线路电感形成LC振荡尖峰通过VC引脚的RC滤波网络时被部分积分形成了一个缓慢衰减的包络。解决办法有两个一是增大RC滤波的电容到1μF把截止频率降到1.6kHz二是在均衡MOSFET的漏源之间加一个RC吸收电路抑制振荡。我两个都做了问题解决。5.2 SPI通信偶发CRC错误MP2642支持SPI通信的CRC校验开启后偶尔会报CRC错误概率大概千分之一。一开始怀疑是SPI时钟太快降到1MHz还是有。后来用逻辑分析仪抓波形发现CRC错误总是发生在均衡开关动作之后的几十微秒内。原因清楚了均衡开关动作时地线上有较大的电流脉冲通过SPI的地线回流路径耦合到了SCLK或者MOSI上导致某一位翻转。解决办法是在SPI走线旁边加地线隔离并且把SPI的地线和均衡功率地分开走最后单点连接。另外在SPI的CS、SCLK、MOSI线上串22Ω电阻也能有效抑制反射和耦合。5.3 两节电芯压差始终降不下来有一组电芯压差一直在80mV左右均衡开了很久也降不下去。检查均衡电流实测只有30mA远低于设计的100mA。查了一圈发现是均衡电阻的走线太细太长走线电阻有2Ω多加上MOSFET的导通电阻总串联电阻到了5Ω以上把电流限制住了。重新布线均衡回路的走线加宽到40mil长度缩短到3cm以内均衡电流恢复到95mA。压差在半小时内从80mV降到了15mV。这个教训是均衡回路的走线电阻必须算进去不能只看电阻标称值。6. 从两串到多串这套方案的扩展边界在哪里两串系统跑通之后自然会想扩展到四串、八串。MP2642GR-Z本身支持多串但多串应用里有两个新问题第一高边均衡的电压应力。串数越多最上面那节电芯的均衡MOSFET承受的电压越高。两串时高边MOSFET的Vds最大是两节电芯的总压四串时就是四节的总压。选MOSFET时Vds耐压要留足裕量通常按总压的1.5倍选。第二采集通道的共模范围。多串时越往上电芯的共模电压越高MP2642的VC引脚耐压是有限的不能无限往上叠。如果需要更多串数通常采用级联方式多颗MP2642堆叠每颗负责一段电芯通过隔离SPI或者菊花链通信。STM32F745ZG作为主控轮询每颗前端芯片。从软件架构上两串的均衡状态机可以抽象成“通道”概念每个电芯对应一个通道状态机对每个通道独立运行。这样从两串扩展到多串只需要改通道数量核心逻辑不用动。这也是我建议一开始就把代码写成通道化结构的原因哪怕当前只有两串。7. 几个让系统更稳的工程习惯做BMS均衡这几年我养成了几个习惯分享出来可能对你有用。第一均衡阈值不要设得太小。有人追求“绝对均衡”把阈值设到5mV结果均衡几乎一直在工作电阻发热严重反而影响寿命。实际上电芯压差在20mV到30mV以内对整组容量的影响已经很小了。阈值设30mV均衡间歇工作系统更稳。第二每次上电先做一次“静置采集”。系统刚上电时电芯没有电流这时候采集的电压最接近开路电压。用这组数据作为均衡决策的基准比在充放电过程中采集要准得多。第三均衡日志要记录。每次均衡开启的时间、通道、前后电压都通过UART打到日志里。调试阶段这些日志能帮你快速定位问题产品阶段也能用来分析电芯的一致性趋势。第四温度保护不能省。均衡电阻附近放一个NTC温度超过70℃就强制关闭均衡。我见过因为均衡电阻散热设计不足PCB局部温度到100℃以上把旁边的电解电容烤鼓包的案例。一个NTC几毛钱能避免大问题。这套MP2642GR-Z加STM32F745ZG的两串均衡方案硬件上不算复杂但细节很多。把两串吃透多串系统就是复制和扩展。真正花时间的不是写代码而是理解每个元件为什么在那里、每个参数为什么取那个值。希望这些经验能帮你少熬几个调试的夜。

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

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

免费获取报价 →
↑