
两节电芯串联的储能和备用电源看起来是所有电池系统里最简单的结构但实际上我最怕遇到的就是这种“只有两节”的项目。很多同事一开始都觉得两节电芯压差能有多大随便放个保护板就行了结果样品在仓库浮充三个月之后拿回来一测一节 4.35V另一节 4.02V直接逼近过充保护整包容量利用率掉了 10% 以上。后来我在一个备用电源项目里用 MP2642GR-Z 这颗均衡控制器配合 PIC18F45K40 做了主动均衡才把这类问题真正按住。这篇文章就把当时的选型理由、硬件外围、固件状态机、实测数据和调试时踩过的坑一次讲清楚适合正在做中小功率储能、UPS 后备电源、便携储能电源或者任何 2S 电池组产品的工程师参考。1. 为什么两节电芯的系统也逃不过均衡这件事1.1 备用电源的特殊性长期浮充本身就是失衡放大器日常消费品里电池每天都在充放循环失衡会被“搅匀”一部分。但备用电源不一样它大多数时间挂在充电器上电芯长期停在接近满充的电压区间。这时候电芯的自放电差异会持续累积一节电芯内部漏电流稍微大那么零点几毫安一个月下来就能多掉几个百分点电量反映到电压上就是几十毫伏的差距。浮充还有一个坏处顶节电芯长期处于 4.2V 以上的高压区间正极材料和电解液的老化速度会明显加快容量衰减更快而容量越小后续循环里它就越容易被充得更高、放得更低形成恶性正反馈。所以备用电源不是不需要均衡而是比天天用、天天充的产品更需要均衡。1.2 失衡的三个典型来源两节电芯在出厂时看似一致实际工作几个月之后差距来源可以分为三类来源机理典型表现容量差异制造公差、老化速率不同充电时容量小的一节先到满充另一节还在中段自放电差异内部漏电路径、温度梯度不同静置数周后电压差逐渐拉大内阻差异焊接、极耳、电芯老化差异大电流下电压跌得更狠带载读数出现假性偏低其中自放电差异在备用电源场景里最致命因为系统静态电流越小、静置时间越长这个差异积累得越明显。内阻差异则是做电压判决时最容易误判的坑我后面调试部分会专门讲。1.3 失衡不处理的连锁反应失衡最直接的影响是整包可用容量被“短板”卡住。两节串联电芯必须通过相同电流容量小、SOC 低的那一节先到放电截止电压系统为了保护它只能切断输出另一节哪怕还有一半电量也放不出来。换句话说备用电源在电网停电那一刻能撑多久取决于最弱的那节电芯而不是平均值。更隐蔽的是过充风险。顶节电芯电压冲到 4.35V 甚至更高时析锂和气体产生的概率显著上升轻则容量加速衰减重则鼓包甚至起火。很多 2S 保护板只做了硬压保护没有均衡机制电芯就在保护阈值边缘反复横跳每次都是慢性损伤。2. 方案选型从被动电阻到主动均衡MP2642GR-Z 到底解决什么问题2.1 被动均衡对这种系统为什么不够用被动均衡是给每节电芯并联一个放电电阻电压高的那节多余能量以热的形式放掉。它的优点是电路简单、控制直接缺点也很明显只能在接近满充的时候起作用静置和放电阶段基本帮不上忙均衡电流受散热限制通常在 50~100mA对几十毫伏以上的失衡来说速度太慢。在备用电源这种外壳密封、长期满充的系统里被动均衡还有一个更尴尬的问题——热。100mA 电流在 1Ω 均衡电阻上就是 10W 级别不至于这么夸张实际均衡电阻通常是几十欧姆100mA 也会产生几百毫瓦到一瓦的热量积累在密闭机壳里长期高温反过来又加速电芯老化。能量白白烧掉这件事在储能产品里也越来越不被接受。2.2 主动均衡两种拓扑的选择主动均衡的核心是“搬能量”把高电压电芯的能量搬到低电压电芯而不是烧掉。两节串联的电芯常见的搬法有两种电容式用飞跨电容在两节电芯之间来回切换每次切一次搬一点电荷。胜在便宜、没有电感但是均衡电流通常只有几十毫安效率一般来回切换的损耗也不小。电感式用 Buck-Boost 拓扑配合一个功率电感将一节电芯的能量通过电感转入另一节电流可以做到几百毫安到安培级效率能到 85%~90%。对 2S 备用电源这种追求“一段时间内把压差压下去”的场景我选了电感式主动均衡。目标均衡电流放在 300mA 左右既不会对电芯造成明显温升又能在半小时到一小时内把几十毫伏的压差收掉。2.3 为什么需要一个专用均衡芯片加一颗 MCU纯模拟方案也能做主动均衡用比较器和逻辑门搭一个自动搬能的电路但问题在于阈值是硬件电阻定死的温度补偿、滞回、方向判断全都写死在电路里后期想调一个参数就得改板子。均衡策略这种“策略性”的事情更适合交给固件去判断。MP2642GR-Z 在我这套系统里负责的是主动均衡的功率级和开关控制。它内部集成了开关管驱动、电流环和基本的保护逻辑外围只需要配合功率电感和采样电阻就能构成一条完整的均衡通道。控制器需要做的只是告诉它“什么时候开启、往哪个方向搬”以及通过状态脚确认它是否在工作。PIC18F45K40 则负责所有“动脑”的部分采电压、算压差、做滞回判断、看温度、记录日志、报故障。这种分工让两边的负担都变得很轻硬件工程师不用死磕模拟环路软件工程师也不用关心电感电流怎么控制。3. 硬件设计围绕 MP2642GR-Z 的均衡通道与测量链路3.1 均衡功率级的选型与参数功率级的外围主要是电感和采样电阻。电感我选了 4.7µH 到 10µH 这个区间饱和电流至少留 1.5 到 2 倍裕量。目标均衡电流 300mA电感饱和电流按 1A 选避免在电芯压差较大的极端工况下电感饱和导致电流失控。采样电阻取 10~50mΩ 量级具体阻值以这颗芯片数据手册里的电流环配置为准。控制方式上我用了两个逻辑脚和 MP2642GR-Z 通信一个使能脚决定均衡是否开启一个方向脚决定能量是从顶节搬到底节还是从底节搬到顶节。也有做法是让芯片内部比较器自动判断方向控制器只负责使能和监测两种方式各有优劣自动判断省事但无法叠加你自己的保护策略我用外部方向控制是为了让固件里的一套阈值和滞回逻辑说了算。3.2 电压采样分压、滤波与 ADC 参考的选择电压测量是这套系统里最需要较真的地方。2S 满充电压按 4.4V 算串联后是 8.8V而我把 PIC18F45K40 的供电放在了 3.3V直接采样必然超量程。我的做法是给 pack 和中点各加一组分压电阻分压比取 0.4也就是上臂 60kΩ、下臂 40kΩ两颗都选 0.1% 精度。这样 4.4V 单节电压映射到 1.76V稳定落在 3.3V 量程内又不会浪费太多 ADC 动态范围。ADC 的正基准我用了 PIC18F45K40 内部的 FVR 固定电压基准 2.048V。这里有个很多人会忽略的点如果用 VDD 当基准LDO 输出纹波会直接变成测量误差均衡开关一动作读数跟着跳。切到内部基准之后ADC 每个 LSB 约 2mV折算到电芯端约 5mV。再配合寄存器里的校准常数做增益偏移修正静态精度能做到 1% 以内。分压电阻之后我加了一阶 RC 滤波1kΩ 串联加 0.1µF 对地截至频率约 1.6kHz主要是滤掉均衡开关引入的高频毛刺。要注意分压电阻总值别太大否则 ADC 采样保持电容充电时间不够读数会系统性偏低。我控制在 100kΩ 以内并且把 ADC 采样时间配得比较长。3.3 供电、保护与布局注意点整个系统的供电从电池组取电经过一个低静态电流的 LDO 降到 3.3V。做备用电源一定要看 LDO 的静态电流我选的这颗静态不到 10µA否则长期挂电池会把整组电芯慢慢放干。保护方面除了均衡芯片自身的基础保护我还在固件里做了双重保险每节电芯电压超 4.25V 或低于 3.0V 立即停止均衡并进故障态NTC 检测温度低于 10°C 或高于 45°C 不开启均衡。锂电池低温均衡容易析锂这是底线。布局上最重要的原则是采样地和功率地分开。均衡电流的回路从电池负极、通过采样电阻、再回到电池这条回路上的任何压降都不该出现在 ADC 的参考地路径上。我用星形单点接地三根采样线从电池连接器处单独引出直接走到分压电阻和 MCU绝不让它们经过均衡功率级的地铜皮。这个小改动在实测里直接让读数稳定性上了一个台阶。4. PIC18F45K40 固件状态机、测量与均衡判决4.1 状态机与主循环节拍固件我按状态机来组织各状态职责单一出了问题也容易定位。整体分五个状态状态动作退出条件INIT配置时钟、ADC、FVR读取校准常数初始化完成MEASURE采样 Vpack、Vmid、NTC 温度计算 V1、V2计算完成IDLE不均衡等待压差超过启动阈值BAL_T2B / BAL_B2T开启均衡方向为顶到底或底到顶压差低于停止阈值、超时或故障FAULT记录故障关断均衡断电或故障恢复条件满足整个流程用一个 10ms 的定时器节拍驱动不在任何地方用阻塞式延时。均衡开启后每跑 60 秒就暂停 20 秒利用暂停窗口去测一次开路电压再决定下一步。这个“跑一段时间、歇一下、量一量”的节奏是整个策略的灵魂原因我放在调试踩坑那一节细讲。4.2 电压测量硬件均值、校准常数与基准选择PIC18F45K40 这代 MCU 的 ADC 带计算模块可以把多次转换结果在硬件里累加并取平均不用占用软件时间。我把每个通道配置成 16 次转换自动平均实测下来 ADC 读数抖动从十几个 LSB 降到了两三个 LSB。校准这一步千万别省。即使分压电阻选了 0.1%两颗电阻之间的比例偏差依然会在做减法时被放大。我出厂前用一台精度 0.05% 的电压源分别给 pack 和 mid 两个采样点灌 2.000V、4.000V 两个校准点把每组分压通道的增益和偏移存进数据 EEPROM 或者程序 Flash 的保留区上电初始化时读出来做线性修正。顶节电压不是直接采样出来的而是用 Vpack 减去 Vmid 算出来的。所以两组分压通道的匹配度直接影响顶节精度我用同批次、同阻值的电阻并尽量让它们在 PCB 上对称布局。对 5mV 级别的均衡停止阈值来说这套校准做完之后是够用的。4.3 均衡判决阈值、滞回、时间窗与保护条件均衡判决的核心代码不长但里面的逻辑都是踩过坑之后一点点加上去的。我把核心逻辑简化成了下面这段方便说明思路#define BAL_START_DELTA_MV 25 #define BAL_STOP_DELTA_MV 10 #define BAL_MAX_SESSION_S 1800 static uint8_t balance_decision(void) { int16_t delta_mv (int16_t)(v_top_mv - v_bot_mv); if (cell_temp_c 10 || cell_temp_c 45) return BAL_OFF; if (v_top_mv 4250 || v_bot_mv 4250) return BAL_FAULT; if (v_top_mv 3000 || v_bot_mv 3000) return BAL_OFF; if (balance_on) { if (abs(delta_mv) BAL_STOP_DELTA_MV || session_s BAL_MAX_SESSION_S) return BAL_OFF; return current_direction; } if (delta_mv BAL_START_DELTA_MV) return BAL_T2B; if (delta_mv -BAL_START_DELTA_MV) return BAL_B2T; return BAL_OFF; }启动阈值 25mV停止阈值 10mV中间这 15mV 的滞回区间是为了防止系统在阈值附近来回反复开断。每次均衡会话最长 30 分钟到时间强制停止重新测量评估避免因为某个测量异常导致长时间错误搬能。所有保护条件都是先于均衡判断执行的温度、过压、欠压任何一个不满足均衡都必须让位。4.4 调试日志让状态可见这套逻辑如果不加日志出问题的时候基本靠猜。我通过 PIC18F45K40 的 EUSART 以 115200、8N1 输出调试信息每 200ms 打一行内容包括时间戳、状态机编号、两节电芯电压、压差、当前均衡方向和 NTC 温度。格式类似100200 ms, S3, V14180, V24105, D75, BALT2B, T32C调试日志一开始只在上电后打印 5 分钟发布版本里我做成可配置开关通过一个保留寄存器控制是否输出。这套日志在后面的实测和排障里帮了大忙尤其是那些偶发性的错误方向判断问题。5. 实测数据与调试中的三个大坑5.1 均衡效果实测从 150mV 到 15mV样机装好后我拿两节容量有差异的 18650 做了实测。测试前把顶节充到 4.18V底节停在 4.03V压差 150mV然后开启自动均衡。一组典型的记录如下时间V1顶节V2底节压差 Δ均衡状态0 min4.18V4.03V150mVT2B 开启20 min4.13V4.08V50mVT2B 开启40 min4.10V4.09V10mV停止反向也做了验证底节比顶节高 120mV 时均衡能正确切到 B2T 方向大约半小时把压差收到 15mV 以内。整体来看300mA 的均衡电流对这个量级的 2S 系统来说速度是够用的而且均衡期间电芯外壳温升不超过 3°C在可接受范围内。5.2 均衡方向反了测量窗口与均衡电流的干扰这是我最想提醒后来者的一件事。均衡开启的状态下电芯端电压是“假”的输出能量那一节因为内阻压降端电压会比开路电压低接收能量那一节则相反端电压会偏高。换句话说当顶节往底节搬能量时实际测出来的压差会变小甚至可能反号。如果你直接用均衡过程中的采样值做判决可能出现“已经搬平了”的误判提前停止更严重的是方向判断逻辑被误导。我的解决办法就是前面说的“窗口式测量”均衡跑 60 秒后必须停 20 秒停止后先等 200ms 让电芯端电压从负载状态恢复再在窗口末尾连续采样。判决只用暂停窗口里的数据均衡过程中的数据一律丢弃。这种节奏牺牲了一部分占空比但换来了判决的可靠性绝对值。5.3 接地反弹、基准漂移和看门狗复位剩下来三个问题都挺隐蔽但遇到的时候都让人头疼一阵。第一个是接地反弹。早期样板把 ADC 采样地直接接到均衡功率级的地铜皮上均衡一开300mA 的开关电流在地线上产生毫伏级压降反映到读数上就是几十个 LSB 的跳变。后来按星形单点接地重排采样线从电池连接器单独引出问题基本消失。第二个是 ADC 基准漂移。最初为了省事ADC 正基准直接用的 VDD。均衡启用后负载变化引起 LDO 输出轻微波动读数跟着上下飘根本分不清是电芯真变了还是基准变了。切到内部 FVR 之后稳定性明显好转代价是 FVR 本身也有温漂所以我把温度补偿也一起做了。第三个是看门狗复位。早期版本用了阻塞式延时来凑均衡窗口在长延时函数里忘了喂狗板子时不时自动复位日志里全是重启记录。把主循环改成 10ms 定时器节拍驱动之后喂狗跟着节拍走这个问题彻底消失。这条经验对所有带看门狗的低功耗系统都适用宁可把流程拆细也不要用阻塞式长延时。6. 这套方案能直接复用到哪些产品上这套“专用均衡芯片加 MCU 策略”的组合天然适合所有 2S 串联的电池产品机架式或桌面式的后备电源模块、便携储能电源、应急照明、小功率 UPS、医疗推车电源只要电池组是两节锂电串联、长期处于满充或浮充状态都能直接套用。需要提醒的是MP2642GR-Z 这类均衡芯片本身是按双电芯设计的如果产品要做到 3S、4S 甚至更高串数方案要做两级处理每一对相邻电芯放一颗均衡芯片由主 MCU 统一采集所有单体电压、按对调度均衡。状态机、滞回阈值和窗口测量这些固件框架是通用的只是从“一个均衡通道”扩展成“多个均衡通道”。最后分享一个我的体会这套系统里真正决定成败的其实不是均衡芯片本身而是电压测量的准确度和判决时机。芯片只要选型对了、外围按手册搭好剩下的就是测量和策略的事。把采样校准做扎实把均衡期间不测量这条规矩守住这套主动均衡方案就能在备用电源这种长期高压静置的场景里稳稳工作。