1. 项目缘起与核心需求拆解
储能和备用电源系统里,电池组从来不是“一颗电芯打天下”,而是多颗电芯串并联成组来凑电压和容量。串联结构最怕什么?最怕木桶效应——整组容量由最弱的那颗电芯决定,而两颗电芯出厂时再匹配,经过几十上百次充放电循环后,内阻、自放电率、实际可用容量都会逐渐拉开差距。差距一旦出现,充电时容量小的那颗先到上限,放电时它又先到下限,日积月累,弱电芯越来越弱,强电芯永远吃不饱,整组寿命被拖垮。
这个项目要解决的,就是两颗串联电池单元的主动均衡问题。核心器件选型是MP2642GR-Z这颗均衡专用芯片,主控用STM32F091RC,面向储能和备用电源这类对可靠性、静态功耗、长期稳定性都有要求的场景。说白了,就是让两颗串联电芯在充放电过程中始终保持电压一致,谁高了就把多余的能量挪给谁,而不是简单用电阻把高的那颗“烧掉”。
为什么不用电阻被动均衡?因为储能和备用电源系统通常对能耗敏感。被动均衡本质是把高电压电芯的多余能量通过电阻变成热散掉,效率低、发热大,而且均衡电流一般只有几十毫安,两颗大容量电芯之间如果压差稍大,均衡一次要很久。主动均衡则是把能量从高电压电芯搬到低电压电芯,效率可以做到百分之八九十以上,均衡电流也能做得更大,特别适合储能这种“细水长流”但又要求长期一致性的应用。
适合谁来参考这篇内容?如果你正在做 BMS(电池管理系统)的均衡模块、储能 PCS 的电池侧管理、或者备用电源的电池维护板,手上有两颗串联电芯需要做主动均衡,那这篇从选型、原理、硬件设计到软件状态机、调试避坑的完整记录,应该能帮你少走不少弯路。即便你用的是别的均衡芯片,这套“采样—判断—搬能量—保护”的思路也是通用的。
2. 方案选型:为什么是 MP2642GR-Z 加 STM32F091RC
2.1 均衡芯片的三种路线对比
在动手之前,先把主动均衡的几条技术路线理清楚,不然选型就是拍脑袋。市面上常见的主动均衡方案大致分三类:电容开关式、电感/变压器式、专用 IC 式。
电容开关式靠飞跨电容在相邻电芯之间来回切换,结构简单,但均衡电流受电容容量和开关频率限制,而且电芯数量多时电容数量爆炸,两颗电芯场景下虽然可行,但效率一般,压差收敛速度慢。电感/变压器式通过储能电感或耦合变压器搬能量,效率高、电流大,但外围器件多,变压器绕制一致性要求高,EMI 也难搞。专用 IC 式则是把功率管、驱动、控制逻辑集成到一颗芯片里,外围只需要少量电感和电容,设计门槛低,一致性有保障。
MP2642GR-Z 属于专用 IC 路线。它内部集成了功率开关和均衡控制逻辑,外部配合一颗储能电感和几颗滤波电容,就能实现两颗串联电芯之间的双向能量转移。选它的核心理由有三点:第一,集成度高,功率级和控制级都在片内,PCB 面积小,适合储能模块这种空间紧张的场景;第二,均衡电流可调,通过外部电感值和开关频率可以设定均衡电流大小,从几百毫安到几安培都能覆盖,灵活性好;第三,静态功耗低,储能和备用电源系统很多时候处于待机或浮充状态,均衡电路如果静态电流大,长期下来会白白吃掉电池电量,这颗芯片在待机模式下的功耗控制得比较理想。
2.2 主控为什么选 STM32F091RC
主控这块,STM32F091RC 是一颗 ARM Cortex-M0 内核的 MCU,主频 48MHz,带 256KB Flash 和 32KB SRAM,外设资源对于均衡控制来说绰绰有余。选它主要看中几点:多路 ADC可以同时采样两颗电芯的电压和温度,多路定时器可以产生均衡芯片需要的开关信号或使能时序,CAN 或 UART 接口方便和上位机或系统主控通信上报状态,低功耗模式配合电池系统的休眠需求。
有人会问,均衡控制逻辑不复杂,用更便宜的 8 位机行不行?行,但前提是你只做最基础的电压比较和使能控制。一旦要加上电压采样滤波、温度补偿、故障记录、通信上报、状态机管理,8 位机的资源和开发效率就会捉襟见肘。STM32F091RC 的价格和开发便利性之间平衡得比较好,而且 ST 的 HAL 库和生态成熟,调试工具链便宜,对于中小批量项目来说很友好。
2.3 两颗电芯场景的特殊性
两颗串联电芯的均衡,和四颗、八颗的场景有本质区别。多颗电芯的均衡通常需要处理“能量从哪来、到哪去”的路径规划问题,而两颗电芯只有一条路径:高电压电芯到低电压电芯。这意味着控制逻辑可以简化,不需要复杂的拓扑切换,但同时对单次能量转移的精度和安全性要求更高,因为没有中间电芯做缓冲,任何过冲或误动作都直接影响两颗电芯的安危。
另外,两颗电芯场景下,均衡芯片的供电通常直接取自电芯组两端,也就是最高电压可能达到两颗电芯满电串联的电压。设计时要特别注意芯片的耐压范围和供电时序,避免上电瞬间的浪涌把芯片打坏。
3. 硬件设计细节与关键参数计算
3.1 均衡功率级的外围设计
MP2642GR-Z 的典型应用电路里,储能电感是核心外围器件。电感值的选择直接决定均衡电流的大小和纹波。假设我们设定开关频率为 500kHz,目标均衡电流为 1A,电芯电压差在 0.1V 到 0.5V 之间波动。根据 Buck-Boost 类拓扑的电流公式,电感纹波电流 ΔI 与电感值 L、输入输出电压、占空比有关。简化估算时,可以用 ΔI = (V_in × D) / (L × f_sw) 来粗略判断。
实际选型时,我一般先定电感值在 2.2μH 到 4.7μH 之间,然后根据实测的均衡电流和温升再微调。电感饱和电流必须留足余量,至少是目标均衡电流的 1.5 倍,否则在大压差工况下电感饱和,电流失控,芯片和电芯都危险。电感的直流电阻也要小,DCR 大了不仅效率低,还会在电感上产生额外压降,影响均衡精度。
滤波电容方面,电芯两端各并一颗 10μF 到 22μF 的陶瓷电容,靠近芯片引脚放置,作用是吸收开关瞬间的电流尖峰,稳定局部电压。电容的耐压要高于单颗电芯满电电压的 1.5 倍以上,比如电芯满电 4.2V,就选 10V 或 16V 耐压的电容,留足降额。
3.2 电压采样与滤波
两颗电芯的电压采样,用 STM32F091RC 的两路 ADC 通道分别采集。采样点要放在电芯接线端子附近,走线尽量短,并且用差分走线或者开尔文连接方式,避免大电流路径上的压降串入采样回路。采样前端加 RC 低通滤波,电阻选 100Ω 到 1kΩ,电容选 100nF 到 1μF,截止频率设在几十赫兹,把开关噪声和工频干扰滤掉。
这里有个细节:ADC 的参考电压要稳定。STM32F091RC 的 VDDA 如果直接取自电芯组供电,会随着电芯电压波动而波动,导致采样值不准。稳妥的做法是用一颗低功耗的基准源芯片,比如 2.5V 或 3.0V 基准,给 VDDA 或外部 ADC 参考供电。如果成本敏感,至少也要在 VDDA 上加一颗 1μF 加 100nF 的退耦电容,并且远离功率电感的干扰区。
采样时序上,我习惯用定时器触发 ADC 规则组转换,每 10ms 采样一轮,每轮采 8 到 16 次做平均,这样既能跟上电芯电压的变化速度,又能有效抑制随机噪声。平均后的电压值再送入均衡判断逻辑。
3.3 供电与保护设计
MP2642GR-Z 的供电取自两颗电芯串联后的总电压,最高可能到 8.4V(两颗 4.2V 满电)。芯片的 VIN 耐压要确认足够,同时输入端加一颗 TVS 管和一颗肖特基二极管做反接和浪涌保护。TVS 的钳位电压要低于芯片绝对最大耐压,肖特基的正向压降要小,避免正常工作时白白损耗。
保护方面,硬件上至少要有过流检测和过温检测。过流可以用采样电阻加比较器实现,一旦均衡电流超过设定阈值,直接拉低芯片的使能引脚,切断均衡动作。过温则用 NTC 热敏电阻贴在电芯表面和芯片附近,MCU 的 ADC 采集 NTC 分压,温度超过阈值就停止均衡并上报故障。
注意:均衡芯片的使能引脚不要直接接 MCU 的 GPIO 上电默认高阻的引脚,最好加一颗下拉电阻,确保 MCU 复位期间均衡电路处于关闭状态,避免上电瞬间误动作。
4. 软件状态机与均衡策略实现
4.1 均衡触发条件与阈值设定
均衡不是随时都在进行的,得有明确的触发条件。我的做法是设定一个电压差阈值和一个最小均衡间隔。电压差阈值一般取 20mV 到 50mV,具体看电芯类型和应用要求。储能场景下,电芯一致性要求高,阈值可以取小一点,比如 20mV;备用电源如果对成本更敏感,30mV 到 50mV 也能接受。
除了压差,还要加电压窗口限制。比如单颗电芯低于 3.0V 时不允许均衡,因为此时电芯已经接近放空,再搬能量可能把某颗电芯拉到过放保护点以下。单颗电芯高于 4.15V 时也要谨慎,接近满电时内阻变化大,均衡电流容易失控。所以均衡只在电压窗口 3.0V 到 4.15V 之间进行,超出窗口就暂停。
最小均衡间隔是为了防止频繁启停。每次均衡动作至少持续 1 秒,结束后至少等待 5 秒再判断下一次,让电芯电压有恢复稳定的时间。否则刚搬完能量,电芯电压还没稳定就再次判断,容易产生振荡。
4.2 状态机设计
软件上用状态机来管理均衡流程,状态定义如下:
| 状态 | 含义 | 动作 |
|---|---|---|
| IDLE | 空闲 | 周期采样电压,判断是否满足均衡条件 |
| BALANCE | 均衡中 | 使能均衡芯片,监控电流和温度 |
| COOLDOWN | 冷却等待 | 关闭均衡,等待电压稳定 |
| FAULT | 故障 | 关闭均衡,记录故障码,等待恢复 |
状态转移逻辑:IDLE 状态下如果压差超过阈值且电压在窗口内,进入 BALANCE;BALANCE 状态下如果压差降到阈值以下,或者电压超出窗口,或者收到故障信号,进入 COOLDOWN 或 FAULT;COOLDOWN 计时结束后回到 IDLE;FAULT 状态下如果故障消失且收到清除命令,回到 IDLE。
状态机的代码实现用 switch-case 结构,每个状态里做该状态该做的事,不要把所有逻辑堆在一个大循环里。这样调试时容易定位问题,也方便后续增加新状态。
4.3 均衡方向判断与芯片控制
两颗电芯,哪颗电压高,能量就从哪颗搬到另一颗。MP2642GR-Z 通常有方向控制引脚或者通过寄存器配置方向。MCU 根据采样结果判断方向,然后设置对应的控制引脚或写寄存器。
控制时序上,先设置方向,再拉高使能,然后等待均衡完成或超时。超时时间根据压差和均衡电流估算,比如压差 100mV,均衡电流 1A,电芯容量 10Ah,粗略估算需要的时间是容量乘以压差除以电流,再乘以一个经验系数。实际调试时,超时时间设得比估算值大 50% 左右,避免正常均衡被误判为超时。
均衡过程中要持续监控电流和温度。电流采样用 MCU 的 ADC 读采样电阻上的电压,换算成电流值。如果电流超过设定上限,立即关闭均衡并进入 FAULT。温度同理,超过 60℃ 就停,等降到 45℃ 以下再恢复。
5. 实操调试与常见问题排查
5.1 上电调试步骤
第一次上电不要直接接电芯,先用直流电源模拟两颗电芯,电压设成 3.7V 和 3.8V,限流设小一点,比如 100mA。观察以下几点:芯片供电是否正常,使能引脚电平是否正确,电感两端有没有开关波形,电流采样值是否合理。
确认静态工作正常后,再逐步加大限流,让均衡电流慢慢升上去。用示波器看电感电流波形,应该是三角波,没有明显的尖峰或振荡。如果波形畸变,检查电感饱和电流是否够,滤波电容是否靠近芯片,地线回路是否太大。
电压采样校准也很关键。用高精度万用表测电芯实际电压,和 MCU 读到的 ADC 值对比,算出差值,在软件里做偏移校准。两颗电芯的采样通道都要校准,避免因为采样误差导致误判均衡方向。
5.2 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决措施 |
|---|---|---|---|
| 均衡不启动 | 压差未达阈值 / 电压超窗口 / 使能引脚电平不对 | 打印采样值和状态机状态,测使能引脚 | 调整阈值,检查 GPIO 配置 |
| 均衡电流偏小 | 电感值偏大 / 开关频率偏低 / 电芯压差小 | 测电感波形和电流 | 换小电感,提高频率,等压差增大 |
| 芯片发热严重 | 均衡电流过大 / 散热不足 / 电感 DCR 大 | 测电流和芯片温度 | 降低电流,加散热铜皮,换低 DCR 电感 |
| 电压采样跳动 | 滤波不足 / 参考电压不稳 / 走线受干扰 | 看 ADC 原始值,测参考电压 | 加强滤波,加基准源,远离功率区 |
| 均衡后压差反弹 | 电芯老化 / 采样误差 / 均衡时间不足 | 静置后复测电压 | 延长均衡,校准采样,评估电芯健康度 |
| 通信上报异常 | 接口配置错 / 地线环路 / 波特率不匹配 | 用示波器看通信波形 | 检查配置,单点接地,统一波特率 |
5.3 独家避坑经验
第一个坑是电感选型只看电感值不看饱和电流。我早期用了一颗 4.7μH 但饱和电流只有 1A 的电感,结果压差稍大时均衡电流冲到 1.5A,电感饱和,电流失控,芯片直接保护关机。后来换成饱和电流 3A 的同值电感,问题消失。所以电感选型时,饱和电流至少是目标均衡电流的 1.5 倍,最好 2 倍。
第二个坑是采样地和功率地混在一起。均衡电流在功率地上的压降会串到采样回路,导致电压读数偏高或偏低。解决办法是采样回路单独走一根地线回到 MCU 的 AGND,功率地单独走一根回到电源负极,最后在一点汇合。这个改动看起来麻烦,但效果立竿见影,采样稳定性提升明显。
第三个坑是状态机没有超时保护。有一次均衡芯片因为外部干扰误触发,状态机一直停在 BALANCE 状态,均衡电流持续输出,电芯被过度搬能量,压差反而扩大了。后来在 BALANCE 状态里加了超时计数器,超过预设时间强制进入 COOLDOWN,问题解决。任何状态机都要有超时退出机制,这是血泪教训。
第四个坑是低温下均衡阈值没调整。锂电池在低温下内阻增大,电压采样受内阻影响更明显,同样的压差在低温下可能对应更大的实际容量差异。后来我在软件里加了温度补偿,低温时适当放宽压差阈值,避免频繁启停,均衡效果反而更稳定。
6. 系统集成与长期可靠性验证
6.1 与储能系统的通信集成
均衡模块不是孤立的,它需要把状态上报给系统主控。STM32F091RC 的 UART 或 CAN 接口可以承担这个任务。通信协议我一般自定义一套简单的帧格式:帧头、模块地址、状态码、两颗电芯电压、均衡电流、温度、故障码、校验和。主控收到后可以显示在界面上,也可以记录到日志里做长期趋势分析。
通信周期不用太快,1 秒上报一次足够。太快了增加总线负载,太慢了故障响应不及时。如果系统对实时性要求高,可以在故障发生时主动上报一帧报警,不用等周期上报。
6.2 长期可靠性验证方法
储能和备用电源系统的寿命要求通常是 5 到 10 年,均衡模块的长期可靠性必须验证。我的做法是搭一个加速老化测试台:两颗电芯反复充放电,均衡模块持续工作,记录每天的压差变化、均衡次数、芯片温度。连续跑三个月,相当于模拟了实际使用中几年的均衡动作。
测试中重点关注几个指标:压差是否长期稳定在阈值以内,均衡次数是否随时间明显增加(增加说明电芯在加速老化),芯片和电感的温升是否在安全范围,通信是否出现丢帧或误码。如果这些指标都稳定,基本可以认为均衡方案可靠。
另外,静态功耗也要测。把均衡模块置于待机状态,测电池组的总静态电流。如果静态电流偏大,检查芯片的待机模式配置、MCU 的低功耗模式、以及外围电路有没有漏电流路径。储能系统待机时,均衡模块的静态电流最好控制在几十微安以内,否则长期待机会把电池耗空。
6.3 方案扩展思路
两颗电芯的均衡方案跑通后,如果要扩展到四颗或更多电芯,思路有两种:一种是每两颗电芯用一颗 MP2642GR-Z,多颗芯片级联,MCU 分别控制;另一种是换用支持多节电芯的均衡芯片,一颗芯片管多颗。前者改动小,但芯片数量多,成本和 PCB 面积增加;后者集成度高,但芯片选型和软件逻辑要重新设计。
如果系统对均衡电流要求更高,比如储能系统充放电倍率大,压差产生快,可以把均衡电流从 1A 提到 2A 甚至 3A。这时候电感、电容、PCB 铜皮都要相应加强,芯片的散热也要重新评估。不要简单改个电阻就完事,功率路径上的每个环节都要跟着升级。
我在实际项目里还遇到过一个需求:均衡模块要支持在线升级固件。STM32F091RC 的 Flash 够大,可以放 bootloader 和应用程序两部分,通过 UART 或 CAN 接收新固件,校验后写入,重启生效。这个功能在储能现场很有用,不用拆机就能修复 bug 或调整均衡参数。
最后再分享一个小技巧:均衡模块的 PCB 布局时,把功率电感和芯片放在板子的一侧,采样和通信走线放在另一侧,中间用地线隔离。功率电感的下面不要走任何信号线,避免磁场耦合。这个布局原则看起来简单,但实际做的时候很容易忽略,等到采样噪声大了再改板就麻烦了。