去年给一个户外应急电源项目设计12V铅酸电池保护板的时候,我先试了市面上现成的保护模块,结果连续烧掉三块,问题都出在同一个环节:充电器和保护板互相干扰。后来干脆自己用LM393比较器搭保护逻辑,配CN3768做充电管理,才算彻底把稳定性问题解决。这篇文章把我从选型、计算、画板到调试踩过的坑完整梳理一遍,给准备自己做12V铅酸电池保护板的朋友当参考。内容涉及LM393比较器的具体用法、充放电保护阈值的计算、CN3768外围电路的参数选型以及联调阶段会遇到的各种意外情况,适合有一定电子基础、想自己动手做一套可靠保护板的DIY玩家或硬件工程师阅读。
1. 先把保护逻辑理清楚:12V铅酸电池到底需要管住哪几件事
1.1 为什么不能直接拿锂电保护板来改
很多人觉得保护板不就是"过压断开、欠压断开"嘛,锂电保护板那么成熟,改改阈值不就行了吗?这个思路在12V铅酸电池上行不太通,原因在于铅酸电池的充放电特性和锂电池有本质区别。锂电保护板的核心是保护电芯本身,而铅酸电池除了保护电池,还必须协调"放电截止"和"充电管理"这两个过程,尤其是充电后期的浮充电压和析气问题,处理不好电池很快鼓包报废。
铅酸电池单格标称2V,12V电池实际上是6个单格串联,满电静置电压在12.6V~12.8V左右,浮充电压通常在13.5V~13.8V之间,均充电压可以到14.4V~14.7V,放电截止电压一般设定在10.5V。这个电压范围比锂电池宽得多,而且充电阶段需要专门的恒流恒压控制曲线,靠普通电压比较器很难完整实现。因此我做这套方案时采用了功能拆分:LM393负责放电保护和过压保护,CN3768专门负责三段式充电管理,各管一段,互不抢活。
1.2 保护板的功能拆解
在动电路之前,我把12V铅酸电池保护板需要做的事情拆成了四块,这也是后续设计的纲领:
- 过放保护:电池电压降到10.5V以下时,切断负载输出,防止电池深度放电导致极板硫酸盐化。
- 过压保护:充电过程中电池电压异常升高(比如超过15V)时,切断充电回路,防止电解液分解产生可燃气体。
- 过流保护:负载短路或电流异常增大时快速断开,保护MOS管和电池内部结构。
- 充电管理:按照预充、恒流、恒压、浮充的流程给电池充电,避免过充和欠充。
前三个功能我用LM393比较器来实现,因为比较器天然适合做电压阈值判断;充电管理则交给CN3768,它内部集成了PWM控制器和充电状态逻辑,外围器件少,可靠性比用分立元件搭充电电路高得多。下面两章分别说这两部分电路的设计细节,把计算过程完整列出来。
2. LM393比较器电路:采样、基准与滞回的计算细节
2.1 LM393为什么适合这种场景
LM393是一颗非常经典的双路开漏输出比较器,两路独立的比较器封装在一个芯片里,价格便宜、货源充足,工作电压范围宽(2V~36V),单电源供电时可以直接用电池电压驱动,不需要额外稳压。它的致命弱点是输出级是开漏结构,不能直接输出高电平,必须接上拉电阻,这一点很多初学者会忽略。
在12V铅酸电池保护板的设计里,我正好需要两路比较:一路做欠压(过放)检测,一路做过压检测,一颗LM393刚好满足需求。而且开漏输出的天然优势是多个比较器可以直接"线与"连接来控制同一个MOS管,这在后面设计保护逻辑时非常方便。需要注意的是,LM393的输入共模电压范围是0到VCC-1.5V左右,如果用12V电池直接供电,输入电压不能超过10.5V左右,所以电池电压不能直接接到比较器输入端,必须先分压。
2.2 过放检测:分压采样与基准设置
过放检测的设计目标是:电池电压降到10.5V时,比较器输出翻转,关断负载输出。我的做法是用电阻分压将电池电压缩小到2.5V左右,再和一个2.5V的基准电压比较。
分压电路选取如下:采样电阻R1取100kΩ,R2取10kΩ,分压比为10/(100+10),即电池电压的1/11。那么电池电压10.5V对应的采样电压为:
10.5V × (10kΩ / 110kΩ) ≈ 0.9545V
这个电压太低,直接和TL431的2.5V基准比较会有精度损失。于是我把分压比重新设计了一下:R1取47kΩ,R2取10kΩ,电池10.5V时分压为 10.5 × 10/(47+10) = 1.842V,电池12.6V时分压为2.21V,满电和欠压状态之间的电压差约0.37V,落在LM393比较灵敏的区间内。不过为了更精确,我最终采用的是R1=39kΩ、R2=10kΩ的方案,欠压点分压值为 10.5 × 10/49 ≈ 2.143V,这样可以配合2.5V基准使用一个额外的分压微调电阻把基准降到2.143V附近。
这里更推荐的方式是:用一个TL431产生2.5V精密基准,然后用电阻分压把基准电压调整到目标阈值,比如用1kΩ和6.8kΩ把2.5V分压得到约2.14V。这样比直接用电池电压分压做基准稳定得多,因为电池电压本身就是被监测对象,如果同时用它做基准,电池电压变化时基准也跟着变,整个保护点会被拉偏。
过放检测的比较器接法如下:同相输入端接电池采样电压,反相输入端接基准电压。当电池电压高于10.5V时,采样电压高于基准,比较器输出高阻,上拉电阻把输出拉到高电平,MOS管保持导通;当电池电压降到10.5V以下时,采样电压低于基准,比较器输出拉低,MOS管关断,负载被切断。
2.3 滞回设计:防止保护临界点反复跳变
如果只是简单地把比较器输出接到MOS管栅极,会在临界电压附近出现一个非常烦人的现象:电池电压在10.5V附近轻微波动时,比较器会反复翻转,MOS管以极快的频率开关,负载端的LED灯会闪烁,严重时MOS管直接烧掉。原因在于电池本身有内阻,负载电流会在内阻上产生压降,比较器动作后负载被切断,电池端电压回升,又超过阈值,于是又恢复输出,如此循环。
解决这个问题需要给比较器加滞回,也就是让"关断阈值"和"恢复阈值"之间有一个电压差。实现方式是在比较器输出端和同相输入端之间接一个正反馈电阻。我用的参数是:采样分压电阻R1=39kΩ、R2=10kΩ,滞回电阻R3=1MΩ,输出上拉电阻R4=10kΩ。当比较器输出低电平时,R4和R3组成分压网络,把同相输入端的电压往低拉一点,这样电池电压必须回升到比动作点高出一定幅度才能恢复输出。
滞回电压的计算方法可以这样理解:比较器输出高电平时同相端电压为V采样,输出低电平时同相端电压约等于V采样被R3和R4分压拉低,拉低的幅度就是滞回电压。用我上面的参数,VCC=12V时,滞回电压大约在 12V × (10kΩ / (10kΩ+1MΩ)) ≈ 0.12V 左右,折算到电池端大约是0.5V到0.6V。这个滞回区间足够避免临界震荡,同时不会让电池在过放边缘反复折腾。实际调试时我用一个10kΩ电位器串联在R3上,以便在测试中调整滞回宽度。
3. 最容易翻车的地方:LM393供电、上拉与误触发的那些坑
3.1 供电选择与共模电压限制
LM393直接由电池电压供电是没问题的,但这里有一个隐蔽的坑:电池电压在正常工作时是11V~14.5V之间波动,如果保护板的供电轨直接从电池取电,那么比较器的翻转阈值也会随供电电压波动。虽然采样分压比和基准分压比在理论上会同步变化,但实际布局中的电阻温度系数差异、走线压降差异都会导致保护点漂移,尤其在有充电电流时,电池端子电压和比较器实际供电电压之间的压差可能高达几百毫伏。
我踩过一次很深的坑:板子在实验室用稳压电源测试一切正常,保护点在10.5V附近稳定动作,但装到实际系统里接上充电器后,保护点漂到了9.8V才动作,差点把电池过放到报废。排查后发现问题在于,充电回路的大电流在共用导线上产生压降,导致比较器供电电压比电池实际端电压低了0.7V左右。从那以后我把保护板的电源走线和大电流走线彻底分开,在靠近LM393供电脚的地方加了100nF+10μF的退耦电容,并且把分压采样点单独走一根细线到电池端子,也就是所谓的"开尔文采样",问题才彻底解决。
另外一个限制是LM393的输入共模电压。前面提到过,单电源供电时输入电压不能超过VCC-1.5V,如果电池电压是14.5V而供电轨恰好压降到13V,那输入端的采样电压最高只能到11.5V左右,分压后的电压必须留足裕量。我用的分压采样电压在工作范围内都在2V~3V之间,远离这个限制,但如果有人直接把电池电压经大电阻分压后接到比较器,一定要注意这一点。
3.2 上拉电阻值怎么选
LM393是开漏输出,输出高电平完全靠上拉电阻实现,这个电阻的取值直接影响电路的功耗和开关速度。上拉电阻太小,比如几百欧姆,静态功耗大,而且比较器输出低电平时吸电流太大,LM393的沉电流能力虽然标称能到16mA,但持续大电流会影响寿命;上拉电阻太大,比如几兆欧,和MOS管栅极电容组合后充放电时间常数过大,保护动作会变慢。
我的选择逻辑是:上拉电阻取10kΩ,配合MOS管栅极10Ω~100Ω的串联电阻,开关时间在微秒级别,完全够用。如果输出信号还要驱动LED指示灯,LED串联电阻取2kΩ~4.7kΩ,直接从上拉节点取电,不需要额外驱动电路。需要注意的是,LM393输出低电平时的灌电流能力决定了LED的亮度上限,如果加了一个5mA的LED,那保护动作后比较器要吸走至少5mA的电流,加上上拉电阻的1.2mA,总共6mA以上,仍然在安全范围内。
3.3 比较器振荡与消除手段
比较器在临界点附近振荡是一个非常经典的问题,原因在于比较器本身没有滞回时就相当于一个极高增益的放大器,输入端微小的噪声就会被放大成输出端的快速翻转。在实际电路中,噪声来源包括:开关电源的纹波、MOS管开关瞬间的di/dt耦合、甚至附近走线之间的容性串扰。
除了加滞回电阻外,我还会在比较器的输出端和地之间并联一个10nF~100nF的电容,把高频振荡毛刺吸收掉。另外,比较器的同相输入端和反相输入端走线要尽量短,并且分别对地加一个小电容(1nF~10nF),组成低通滤波器,把高频噪声滤除。这些电容的加入会让比较器响应变慢一点点,但对于电池保护这种慢变信号来说毫无影响。
还有一个很多人忽略的点:LM393两路比较器的输出如果都要接到同一个MOS管控制端,可以直接把两个输出并在一条线上,利用开漏结构的"线与"特性实现逻辑或。但如果两路比较器一个判断过压、一个判断欠压,分别控制充电MOS和放电MOS,那就要注意两路输出之间不要形成闩锁回路,否则会出现一个比较器动作后把另一个比较器状态锁死的诡异现象。我在设计时让两路比较器使用完全独立的基准分压网络,避免互相牵连。
4. CN3768充电管理:外围设计、参数选型与接线顺序
4.1 恒压恒流三段式:CN3768在电路中的位置
CN3768是一颗专门针对铅酸电池的PWM充电管理芯片,内部集成了恒流恒压控制环路和充电状态判断逻辑,支持对12V铅酸电池进行三段式充电。所谓三段式,指的是充电过程依次经历恒流充电、恒压充电和浮充三个阶段:电池电压低时先以设定电流恒流充,电压升到均充电压附近后转为恒压充,电流逐渐减小,当充电电流降到设定比例时转入浮充状态,以浮充电压维持电池满电。
把CN3768放进整个系统后,架构是:外部电源适配器(直流电源)输入到CN3768的电源端,CN3768的输出经过电流采样电阻和防倒灌二极管接电池正极,电池正极同时接到LM393保护电路的采样端。这样充电电流路径和放电负载路径在电池端汇合,但各自经过独立的MOS管控制,实现充放电双向保护。
4.2 关键外围参数计算与选型
CN3768的外围电路按照数据手册推荐电路搭建,主要需要确定的参数是充电电流、电流采样电阻、功率电感和输入输出电容。
充电电流的设定依赖于电流采样电阻。以常见应用为例,假设目标充电电流是2A,采样电阻两端在满电流时的检测电压通常为固定值(以手册典型值计算),那么采样电阻阻值可以用电流和检测电压来推算。比如检测电压对应50mV时,采样电阻 = 50mV / 2A = 25mΩ。实际选型时选择25mΩ、额定功率1W以上的合金电阻,并注意采样走线要直接从电阻两端引出,不要让大电流流过采样走线本身,否则会产生额外压降导致充电电流不准。
功率电感的选择关系到开关电源的纹波和效率。一般按照芯片开关频率和允许的纹波电流来计算最小感值,常见取值在22μH~47μH之间,额定电流必须大于充电电流峰值的1.2倍以上。输出电容建议用低ESR的电解电容,容量100μF以上,并联一个0.1μF瓷片电容滤高频。
输入端的防反接我用了一个PMOS管方案:适配器正极接入后,PMOS导通给后级供电,如果输入极性接反,PMOS不导通,保护后级电路。这个比保险丝方案好在反向接电时没有任何电流流过,不会烧毁任何器件。
4.3 接线顺序与共地问题
这块板子调试过程中让我最头疼的就是接线顺序。几个模块之间的地线关系如果处理不当,会出现充电电流冲击导致保护板误动作、或充电芯片采样电压不准的问题。
我的最终接线原则是:单点接地,星形布局。电池负极作为整个系统的参考地,LM393保护电路的地、CN3768的地、负载输出的地分别用独立走线回到电池负极,避免大电流地线上的压降串扰到小信号电路。充电输入的地线也直接回电池负极,但走线宽度加粗,尽量缩短路径。
关于MOS管的连接位置,放电保护MOS管接在负载回路里,充电保护MOS管接在充电回路里,两个MOS管的源极分别连接到电池负极或系统参考地。注意MOS管的寄生二极管方向必须与控制目标相反:放电MOS的寄生二极管应该允许电流从负载流向电池(这样在关断时阻止放电但允许充电),充电MOS则相反。很多初学者会把方向接反,结果过放保护后电池仍然通过寄生二极管放电,保护功能形同虚设。
5. 保护与充电联调时的完整排障链路:一次真实翻车记录
5.1 故障现象:松掉充电器后系统反复重启
我第一次把LM393保护板和CN3768充电板整合到一块PCB上后,出现了一个极难排查的问题:插上充电器时一切正常,但充电器一旦断开,整个系统就反复重启,负载LED每隔两三秒闪一下,像是进入了某种周期性的死循环。
我先用万用表量了电池电压,发现断开充电器后电池电压立刻从14.2V掉到13V左右,然后在12.8V~13.2V之间缓慢回升。这个现象说明电池在反复被接入负载和断开负载。顺着保护逻辑往下查,发现过放比较器的输出在临界点附近来回翻转。进一步用示波器观察电池端电压波形,能看到明显的锯齿波:负载接通时电压跌落,比较器切断负载后电压回升,然后再次接通,如此循环。
根因是滞回电阻取值不当。过放保护动作后电池电压回升值大于滞回窗口,导致比较器恢复输出,但恢复输出后负载重新接入,电压再次跌落,再次触发保护。我把滞回电压从0.12V加大到0.5V左右(折算到电池端约2V),同时把负载的控制逻辑改成"保护动作后需要手动复位"的方式,用一个PNP三极管和电容组成自锁电路,从根本上防止了振荡。这里也验证了一个经验:铅酸电池的保护滞回窗口不能只看比较器精度,必须结合负载电流和电池内阻来计算。
5.2 故障现象二:过放保护后电池电压回升,保护一直锁死
和5.1相反的另一个极端是保护动作后无法自动恢复。有一次我把样机交给朋友做长期带载测试,他反馈说电池在保护后充了电但设备还是不开机。我检查后发现,过放保护锁死后,电池电压已经恢复到12.5V,但比较器仍然输出低电平。
这个现象的原因在于滞回设计过强,加上自锁电路介入后,恢复条件变成了"电池电压必须恢复到比动作点高2V以上",也就是12.5V左右才能解除。而保护板此时还在充电回路中,充电器给电池充电到12.5V时,按说应该解锁,但因为自锁电路是通过比较器输出端和电源正极之间的正反馈实现的,一旦锁死,即使输入条件恢复,比较器也不会翻转回来。
解决办法是把自锁电路改成"自动恢复"模式:在比较器输出端和同相输入端之间并一个100kΩ电阻和一个10μF电容串联,组成RC延时复位。保护动作后电容充电,如果电池电压在一段时间内恢复到正常范围,电容通过电阻放电,解除锁定;否则继续维持保护。这个设计兼顾了两种场景,实际测试中既没有出现振荡,也没有出现死锁。
5.3 故障现象三:充电电流只有标称值一半
第三个典型问题是充电电流上不去。调试CN3768时,我设定目标充电电流2A,但实测电流只有1.1A左右。起初怀疑是采样电阻阻值不对,拆下来量了是25mΩ没问题;然后怀疑电感饱和,但选的是额定电流3A的电感,也不该饱和。
后来用示波器看CN3768的开关节点波形,发现占空比比预期小很多,而且开关频率不太对。继续排查发现,输入电压在带载后跌落严重,从19V掉到15V左右。原因是输入端的电解电容容量不够,加上输入走线太长,线路阻抗在大电流下产生了明显压降。更换更大容量的输入电容(从47μF换成220μF),并加粗输入走线、缩短到适配器之间的线缆长度后,充电电流恢复到1.95A,问题解决。
这个案例给我的教训是:充电芯片的输入回路和输出回路一样重要,尤其当适配器离板子较远时,线缆电阻和电容容量足以让PWM环路工作点偏离设计值。实际设计中,输入电容不仅要满足纹波要求,还要考虑线缆电感带来的瞬态压降。
6. 上线前的老化测试与量化验证
6.1 测试步骤
板子功能正常后,不能直接上机,需要做一轮系统的验证测试。我按照下面的流程走了一遍:
- 静态功耗测试:保护板待机时,电池端电流应小于1mA,我这块板子实测约0.8mA,对铅酸电池的静态消耗可以忽略。
- 过放保护测试:用可调稳压电源模拟电池电压,从12.5V缓慢下调,记录保护动作电压;实测动作点在10.5V±0.05V,恢复点在11.0V左右。
- 过压保护测试:从14V缓慢上调,保护动作点设在15V±0.1V。
- 充电流程测试:用一台可调电源模拟已放空的电池(电压10.5V),接上CN3768,观察充电电流、恒压转换点和浮充转换是否正常。
- 连续充放电循环测试:用电子负载做放电,充电器做充电,循环10次,记录每次的充入电量和保护动作一致性。
- 温度测试:满功率充电1小时,用热电偶测采样电阻和MOS管温度,确保在可接受范围内。
6.2 关键量化指标
下面是我实测记录的一组关键数据,供参考对比:
- 过放保护阈值:10.5V
- 过放恢复阈值:11.0V(滞回0.5V)
- 过压保护阈值:15.0V
- 充电恒流值:2.0A
- 恒压充电电压:14.6V
- 浮充电压:13.7V
- 静态功耗:0.8mA
- 保护响应时间:< 1ms
这些指标和CN3768数据手册上的典型参数基本吻合。特别是浮充电压,13.7V对长时间浮充的铅酸电池是安全的,不会造成严重析气。
6.3 个人经验与可持续优化方向
这套方案定型后,我又做过两个小优化:一是把LM393的基准从普通电阻分压换成了TL431可调精密基准,实测保护点精度从±0.2V提高到±0.03V;二是在充电MOS管的源极和漏极之间并联一个RC吸收网络,用来抑制MOS管关断时电感产生的尖峰电压,实测尖峰从32V降到22V,MOS管的耐压余量更充足了。
如果后续要升级,可以考虑加入温度补偿功能:铅酸电池的浮充电压会随环境温度变化,一般温度每升高1℃,单格浮充电压需要降低3mV~4mV。用热敏电阻分压给CN3768的电压反馈脚做补偿,可以让充电电压自动适应季节变化。另外,板子量产前建议把采样电阻换成温漂更低的合金电阻,并预留测试点,方便产线校准。就我个人经验而言,这套LM393加CN3768的方案在成本十块钱左右的前提下,做到了完全自主可控的保护和充电管理,比直接买成品模块更适合需要定制化保护点的应用场景。