1. 起点:为什么做一台AC-DC充电器
1.1 项目来龙去脉:从电池到充电器
这个项目其实是被一块电池逼出来的。手头有一套4串锂电池组,标称电压14.8V,满充电压16.8V,原来的充电器突然罢工,输出时有时无。拆开一看,里面的反激开关管已经炸裂,次级电容也鼓了包。修旧不如做新,我索性决定重新设计一台AC-DC充电器,输入直接接市电,输出给这组电池做恒流恒压充电。
AC-DC充电器这个名字听起来宽泛,但真正动手之前必须想清楚一件事:它和普通电源适配器有本质区别。普通适配器只管把交流变成稳定的直流电压,负载是设备,而充电器的负载是电池,电池在充电过程中电压会从低到高变化,电流需求也在变。所以光有稳定的16.8V输出还不够,必须包含恒流阶段、恒压阶段,最好还要有充满后的涓流或截止判断。我的目标很明确:做一个可靠、可复现、不依赖复杂单片机控制的模拟方案,把充电控制和反激电源放在一块板上。
这篇杂记不会去系统讲一遍开关电源理论,而是把我从选磁芯到调环路、再从调环路到改布局的完整过程记录下来。如果你正准备做自己的第一台隔离式充电器,或者对反激电源的设计流程有兴趣,这篇文章应该能帮你避开一些最典型的坑。
1.2 先定指标,再谈选型
很多新手做电源,习惯先把元件焊上去再测,结果炸了几块板才发现指标都没定。我不建议这样。电源设计的所有选型,包括拓扑、磁芯、开关管、反馈方式,最终都要由指标倒推。这个项目我一开始就把硬指标写在纸上:
| 参数 | 指标 |
|---|---|
| 输入电压 | AC 85V~265V,47Hz~63Hz |
| 输出电压 | DC 16.8V(恒压阶段精度±1%) |
| 输出电流 | 恒流3A,涓流0.3A |
| 输出功率 | 50.4W |
| 效率目标 | 85%以上(220V输入、满载) |
| 输出纹波 | ≤100mVp-p |
| 待机功耗 | ≤0.3W |
| 隔离要求 | 初级与次级可靠隔离 |
| 充电逻辑 | CC/CV/涓流三段式 |
这里每一项都直接影响后续设计。比如输出功率50W,决定了反激拓扑和磁芯尺寸;隔离要求,决定了不能用非隔离降压芯片直接做;待机功耗0.3W,则要求控制芯片在轻载时进跳周期模式,同时要尽量减少启动电阻的静态损耗。输出电压精度±1%,也就是正负0.17V左右,TL431加1%精度分压电阻完全能顶住,但如果用普通5%电阻去分压,温度一漂就可能超标。
我建议你在动手之前,也把这种表写出来贴在电脑上。后面每次犹豫“这个器件要不要省”,看一眼指标就知道答案。
2. 拓扑选型:反激不是唯一答案,但往往是共识
2.1 常见拓扑方案对比
AC-DC充电器可选的拓扑并不多,尤其是50W这个功率段,每个方案都有明显取舍。我整理了一张表,方便你横向比较:
| 拓扑 | 适用功率 | 隔离方式 | 恒流恒压控制 | 成本 | 主要短板 |
|---|---|---|---|---|---|
| 非隔离Buck | 任意 | 无隔离 | 简单 | 低 | 输入直接与输出共地,充电器不安全 |
| 反激 | 5W~150W | 变压器 | 中等 | 低 | 开关管电压应力高,EMI需要下功夫 |
| 正激 | 50W~300W | 变压器 | 中等 | 中高 | 需要磁复位绕组,变压器绕法复杂 |
| LLC谐振 | 100W以上 | 变压器 | 较复杂 | 高 | 轻载效率和调压范围是短板 |
非隔离Buck首先被排除,原因不是效率,而是安全。电池充电器会被人拿在手里,输出线也可能被挤压磨损,如果初级和次级不隔离,一旦出现绝缘破损,用户就有可能触及高压,这是绝对不能接受的风险。正激拓扑在这个功率段可以做,但变压器需要磁复位,绕组多,绕制难度明显上升,性价比不如反激。
LLC的效率和EMI表现很好,但它是靠频率调制工作的,设计谐振参数时对变压器漏感和励磁电感的一致性要求很高,而且调压范围相对窄,不太适合宽输入电压、还要做CC/CV切换的场景。真正做到50W级别的LLC,控制芯片和驱动电路的成本比反激高一大截,完全没有必要。
2.2 为什么最终选择反激
反激拓扑在50W这个档位几乎是标准答案。它的核心思想是:开关管导通时,变压器初级储能;开关管关断时,储能通过次级释放给负载。换句话说,变压器本身就是电感,既完成电压变换,又完成能量传输,省掉了正激拓扑里的输出滤波电感,所以元件数量少,成本低,控制也直观。
反激做充电器还有一个天然优势,就是CC/CV控制方便。次级输出电压电流通过光耦反馈到初级,控制芯片调占空比,就能同时实现恒压和恒流。更重要的是,反激变压器输入输出之间有物理隔离,辅助绕组还能给控制芯片供电,整个方案只需要一个磁性元件,体积也容易控制。
当然,反激的缺点也要认。开关管关断瞬间会承受输入电压、反射电压和漏感尖峰三者叠加的应力,所以选型时必须留足电压余量。另外反激是断续或临界导通工作,电流纹波相对大,对输入输出滤波电路有要求。但这些缺点在成熟方案里都有对应的处理方法,后面布局和EMI章节我会详细讲。
2.3 控制芯片和开关频率怎么定
控制芯片选型,我优先考虑带内置功率MOSFET的电流模式反激控制器。集成的好处是,芯片厂家已经把驱动、保护、短路检测做在一块,外围元件少,PCB面积小,寄生参数也比外置MOS方案容易控制。电流模式控制还有一个好处:它天然有逐周期限流能力,输出过载或变压器饱和时能快速保护。
开关频率我选了65kHz。这个频率在反激电源里很常见,原因很实在:一是频率不算高,驱动损耗和开关损耗容易控制;二是65kHz的谐波不太容易干扰到民用频段,EMI调试的工作量比100kHz以上小;三是变压器体积在这个频率下能做到合适的大小,EE30或PQ26磁芯足够承担50W功率。如果你用氮化镓器件,频率可以提高很多,但变压器和布线的寄生参数会变得更加敏感,初学者不建议上来就挑战高频。
芯片工作模式上,我用了准谐振谷底导通方案。这种模式在每次开关周期内检测漏极电压的谷底,在电压最低点打开开关管,可以有效降低开关损耗和EMI。轻载时芯片自动降频或进入跳周期模式,待机功耗更容易压低。比如我这个项目在220V输入、空载状态下测,整机待机功耗约0.27W,勉强守住了0.3W的指标线。
3. 变压器:整个充电器最像玄学的组件
3.1 设计前提:从匝比和电感量开始
变压器设计是整个AC-DC充电器项目里最考验动手能力的部分。磁芯选的是EE30,PC40材质,有效截面积约110mm²。这个尺寸对50W反激来说不算紧张,还能给散热和绕线留一点余量。
先把几个关键参数理顺。输出电压16.8V,次级整流管压降按0.6V估算,输出绕组电压需要做到17.4V左右。输入最低按AC 85V计算,整流滤波后的母线电压重载下大约在100V左右,最大占空比取0.5,反射电压Vr取90V。根据Vr和次级电压的关系算匝比:
匝比n = Vr / (Vo + Vf) = 90 / 17.4 ≈ 5.17
所以初级匝数比次级匝数大约是5.2比1。EE30磁芯的饱和磁通密度一般在0.4T左右,反激设计一般取工作摆幅0.25T,留足余量。初级匝数按下面的公式估算:
Np = Vbulk_min × Dmax / (ΔB × Ae × f)
代入数值约等于100 × 0.5 / (0.25 × 110 × 10⁻⁶ × 65000) ≈ 28匝。次级匝数就是28 / 5.17 ≈ 5.4匝,取整数6匝。实际匝比变成4.67,反射电压会略降,但完全在可接受范围内。
反激变压器还要确定初级电感量。按DCM临界方式设计,输入功率Pin = 50.4 / 0.85 ≈ 59W,电感量用能量公式反推:
Lp = Vbulk_min² × Dmax² / (2 × Pin × f)
算出来约为327μH。这里要提醒一句:这是基于理想情况的估算值,实际绕完后要用LCR表测量,并微调气隙,让电感量落在320μH到340μH区间。如果电感量偏大,轻载效率好但峰值电流小,重载可能进入CCM,控制环路特性会变;如果电感量偏小,峰值电流变大,开关管和变压器损耗都会上升。
3.2 绕制顺序和屏蔽层,直接影响EMI
变压器绕法在教科书里讲得少,却是实际调试中最影响EMI和尖峰的地方。我采用的是三明治绕法:初级分成两段,中间夹次级绕组。具体顺序是:先绕初级第一段,再绕次级绕组,再绕初级第二段,最后绕辅助绕组。
这种绕法能让初级的两个半边绕组夹住次级,增大初次级之间的耦合面积,漏感明显下降。漏感产生的电压尖峰是反激开关管关断时的主要威胁,漏感越小,RCD吸收回路压力越小,EMI噪声也会更平滑。绕完之后最好测一下漏感,用LCR表把次级短路,测初级电感,漏感占初级电感的比例控制在5%以内比较理想。如果漏感超过8%,就要考虑调整绕法或屏蔽结构。
初次级之间我还加了一层铜箔屏蔽,包住绕组,铜箔一端接初级地,另一端悬空。这里有个细节:屏蔽层的焊片绝对不能两端短接形成闭环,否则屏蔽层会变成一个电阻极低的短路环,不仅发热,还会让效率下降。屏蔽层的作用是把变压器内部的共模电场泄放掉,避免高频噪声直接耦合到次级,接错反而变成灾难。
3.3 气隙与磁芯的选择
反激变压器工作在较大的直流偏磁下,如果不加气隙,磁芯很容易饱和,饱和之后电感量骤降,初级电流瞬间飙升,开关管和整流管都会受伤。EE30磁芯在中心柱磨气隙,气隙厚度可以按经验公式估算:lg ≈ 0.4π × Np² × Ae / Lp。把Np=28、Ae=110mm²、Lp=330μH代进去,约0.33mm。
实际操作中我一般先在中柱上垫一层聚酰亚胺胶带或青稞纸,测出电感量,再根据偏差增加或减少垫片厚度。注意气隙加大会降低磁导率,需要略增加匝数才能维持电感量,所以理想做法是先磨气隙再定匝数。如果磁芯磨过头了,不要硬塞到变压器壳里,换一只磁芯重新来更靠谱。
绕制还有一个容易忽视的点:磁芯装配方向。EE磁芯的中柱有气隙,气隙处漏磁很大,如果靠近敏感电路,会干扰控制芯片的工作。装配时最好让气隙位置远离控制芯片一侧,必要时在气隙外侧加一小片铜箔胶带屏蔽。很多EMI问题就是变压器气隙漏磁直接耦合进控制环路导致的,处理完气隙,问题会缓解一大半。
4. 反馈补偿与充电控制
4.1 环路的基本构成
反激电源的反馈环路,本质上是把输出电压或电流的变化转换成光耦LED电流的变化,再传到初级控制芯片的FB脚,改变占空比。这个项目里我用TL431作为电压基准和误差放大器,搭配PC817光耦完成隔离反馈。次级侧还要额外加一个恒流控制环路,因为只做恒压的话,电池充电电流会失控。
恒流环我用了一个普通双运放来实现。输出电流在回路里串联一个0.1Ω的锰铜采样电阻,压降0.3V对应3A。把这个压降放大后,和恒流基准电压比较,当输出电流超过设定值,运放输出就主动拉低光耦LED的电流,从而让初级降低输出。恒压环和恒流环通过二极管隔离后共同控制光耦,哪个环要求更低的输出电压就生效,这就是典型的“环路取低”逻辑。
这种模拟CC/CV控制方案,好处是延迟极低,不需要单片机干预。给电池充电时,先以3A恒流方式把电池电压往上推,等电池电压接近16.8V,恒压环接管,电流自然下降,最后进入涓流阶段。对于4串锂电池组,这个精度足够用了。
4.2 TL431加光耦的补偿写法
TL431的R极连接到输出电阻分压点,K极通过上拉电阻和光耦LED连接。R极到K极之间要并联一组RC网络,形成II型补偿,目的不是为了好玩,而是为了调整环路的增益和相位。
我的做法是先放一个10nF电容在R极和K极之间,再串联一个1kΩ电阻和100nF电容的组合,组成一个零点和一个极点。零点放在几百赫兹,用来抵消输出电解电容ESR带来的零点影响;极点放在几十赫兹,压低高频增益,保证环路不会在高频处振荡。
这里想多说一句:反馈环路不是越“硬”越好。输出电压纹波大,很多人想通过提高环路增益来解决,结果增益一高,变压器漏感和电容ESR带来的高频噪声也被放大,控制芯片的FB脚上出现一堆毛刺,反而让占空比抖动。我调试时吃过这个亏,最后把增益降下来,瞬态响应稍微牺牲一点,但稳定性立刻变好了。
4.3 为什么输出电容和相位裕度都要留余量
电池接入瞬间,充电器输出端相当于接了一个很大的电容。如果环路相位裕度不足,接上电池那一刻,电池电容会和输出反馈环路形成LC谐振,输出电压会出现长时间振荡,甚至导致保护误动作。输出电容本身的ESR也在环路里扮演重要角色,ESR太低,ESR零点频率太高,如果补偿网络没有给够相位提升,环路一样会不稳定。
所以我建议在测试阶段不只测电阻负载,还要真的接上电池试。电子负载虽然是好东西,它的等效电容特性和真实电池差别很大。我用电子负载测试时环路表现很好,换了电池之后,电压在2A电流切换时出现了明显振铃。后来把输出电容从两个470μF并联增加到三个,并微调了补偿电容,振铃才压下去。
5. 布局、EMI与测试现场
5.1 PCB布局顺序:不是拍脑袋,是走电流路径
反激电源的PCB布局,我最看重一个原则:让高频开关电流的环路面积最小。变压器初级、开关管、输入电解电容之间会形成脉冲电流回路,这个回路面积越大,辐射噪声越强,传导EMI也越难压。
我布线时的顺序是:输入端子到整流桥,整流桥到大电解电容,大电解电容到变压器初级的正端;同时要从初级的负端连到开关管漏极,开关管源极经过电流采样电阻回到大电解电容负极。这个回路中的元器件尽量摆成一条线,不要绕弯,开关管的散热片位置也不能和这条回路穿插,否则会增加额外寄生电感。
次级侧同样要注意。变压器次级绕组、整流二极管、输出电容之间也存在高频电流回路,我习惯让次级绕组引脚直接对着整流二极管,整流二极管再直接对着输出电容,三者之间的距离尽量短。整流二极管如果离输出电容太远,导线电感会和输出电容谐振,产生高频振铃,这个振铃是纹波超标的重要原因。
5.2 输入输出滤波的取舍
输入滤波部分,我在保险丝后面加了NTC热敏电阻抑制上电浪涌,然后是X电容和共模电感。启动瞬间,大电解电容相当于短路,如果没有NTC,整流桥和保险丝很容易在第一次上电时炸掉。X电容主要滤除差模噪声,共模电感滤除共模噪声,这样组合对传导EMI有很好的压制效果。
共模电感后面的大电解电容,容量我取的是47μF/400V。容量的取值要看母线电压纹波和最低保持时间,50W输出下47μF已经能满足要求。容量过大会拉低功率因数、增加浪涌电流,容量过小则最低母线电压掉得太狠,影响反激在低压满载下的输出能力。
输出侧滤波我用了两级,一级是电解电容吸收低频纹波,一级是小型共模电感和陶瓷电容滤除高频开关噪声。这里有个教训:不要在输出端堆太多陶瓷电容而不考虑阻尼。陶瓷电容ESR极低,容易和输出电感产生高频振荡,最终纹波反而更大。电解电容和陶瓷电容搭配使用,才是合理的滤波结构。
5.3 热测试和效率测试的坑
满载测试时,我用电子负载把输出恒定在16.8V、3A,然后用功率计记录输入功率,效率=输出功率÷输入功率。220V输入下实测效率86%,还算达标;但85V输入时,效率掉到了82%左右,这很正常,因为低压输入时初级电流更大,开关管导通损耗上升,变压器铜损也增加。
热测试比效率测试更花时间。我用热像仪扫了整个板子,温度最高的器件是变压器和开关管。变压器在环境温度25°C时,表面温度到了86°C,开关管外壳温度到了84°C。这个温度在常态环境里能用,但夏天密闭环境里可能偏危险。我后来在变压器的上下两面加了散热垫,把热量引导到外壳铝合金板上,满载运行半小时,温度能再降接近10°C。
热测试要至少跑半小时,不能只测几分钟就结束,磁性元件和电解电容的热平衡很慢,有些板子十分钟内看起来正常,二十分钟后纹波突然变大,十有八九是电容温度太高导致特性变化。
6. 常见问题排查实录
6.1 上电就炸?先从缓启动和输入浪涌查起
这个项目第一次打样,上电时没有串调压器,直接把电源插到插座上,结果一声闷响,保险丝和整流桥一起走了。后来排查,问题不是元件选错,而是上电瞬间NTC冷态电阻不够大,浪涌电流直接冲破了整流桥的承受能力。
正确操作是先接一个220V、100W的白炽灯串在交流输入端,相当于限流电阻。如果板子不正常,灯泡会变成很亮,这说明有大电流;如果板子正常,灯泡开机会闪一下,然后保持暗淡。用这个方法,我再上电时避开了一次又一次炸板。另外,每次拔电后不要立刻摸大电解电容,必须等它放电或者用放电电阻人工放掉,400V电压可不是闹着玩的。
如果板子上电后反复烧开关管,优先查辅助绕组极性。辅助绕组反接,输出极性反了,芯片供电会异常,开关管驱动波形会乱掉。第二查变压器输出绕组的同名端相位,相位反了,反激会变成正激,输出起不来,初级电流还会异常升高。
6.2 输出电压飘,多半是反馈采样位置不对
第二批板子调试时,我发现恒压阶段电压在16.6V到16.9V之间缓慢漂移,温度变化后漂得更厉害。一开始怀疑TL431质量问题,换了好几颗也没有改善。后来发现是反馈采样线接在了输出电容正极,而输出滤波的LC网络在电容后面还有一点压降,负载变化时采样点和输出端口的电压不一致。
我把采样线改到输出端口的铜箔上,并且用开尔文接法单独走一对细线,不和高电流主回路共用走线,电压就稳定了。如果板上空间允许,最好让TL431分压电阻的下端直接接到输出端负极,避免采样回路承担输出电流在铜箔上的压降。这个方法在低电压大电流输出时特别重要,因为铜箔的电阻在几安培电流下会产生几十毫伏级误差,直接破坏恒压精度。
6.3 待机功耗降不下来,看启动电阻和假负载
设计指标是待机功耗0.3W以内,第一次测0.35W。我检查了一圈,发现启动电阻一直挂在母线高压和芯片启动脚之间。芯片启动后应该由辅助绕组供电,但这颗启动电阻仍然持续消耗电流,功耗硬生生多了0.1W。
解决办法是调整启动电阻的阻值,让它在满足芯片启动时间要求的前提下尽量变大。把两个470kΩ串联改成两个1MΩ串联,启动时间从约1秒变成2秒,待机功耗降到了0.27W。如果对启动时间要求苛刻,可以加一个高压启动电路,启动完成后关闭启动电阻,但元件成本会增加一点,对于这个项目没必要。
假负载也要检查。反激电源在空载时,如果输出端的放电电阻太大,输出电压会被拉高或振荡。但放电电阻也不能随便取消,因为输出电容需要维持最小负载。我把一个1kΩ的假负载改成3.3kΩ,待机功耗又降了一截,同时空载电压依然稳定。
6.4 常见问题速查表
| 症状 | 可能原因 | 检查方法 | 处理方向 |
|---|---|---|---|
| 上电烧保险丝 | 整流桥击穿、NTC阻值太小 | 断电后测整流桥、电解电容 | 增大NTC或换整流桥 |
| 输出无电压 | 启动电阻断、辅助绕组相位反 | 测芯片启动脚电压、辅助绕组波形 | 换启动电阻、调整绕组同名端 |
| 输出电压偏低 | 反馈分压电阻漂移、环路补偿过高 | 测TL431基准电压、FB脚波形 | 换1%电阻、调整补偿网络 |
| 输出纹波大 | 输出电容ESR大、布局回路远 | 示波器看开关节点、输出端纹波 | 就近放输出电容、增加小容值陶瓷 |
| 满载时开关管过热 | 漏感过大、RCD吸收损耗偏高 | 测漏感、看漏极尖峰 | 调整绕法、重新匹配RCD |
| 待机功耗超标 | 启动电阻损耗、假负载过大 | 逐项断开待机功耗来源 | 增大启动电阻、减小假负载 |
7. 再做一次我会改什么
7.1 把模拟充电控制换成带PID的小控制器
这个项目的模拟恒流恒压方案优点是响应快、无代码、好调试,但也有明显不方便的地方:充电曲线是固定的,电流和电压的设定依靠硬件电阻,换一组不同规格的电池,就得重新算一遍分压电阻和采样电阻。
如果重新做,我大概率会在次级侧加一颗几毛钱的小控制器,用电阻分压把电池电压送给ADC,用采样电阻把电流送给另一路ADC,然后用软件做CC/CV切换和充满截止。这样不仅可以轻松调整充电曲线,还能增加电池温度检测,输入温度超过45°C就降流,充满之后自动关断,这对锂电池充电器来说非常重要。模拟电路做这些功能会很啰嗦,但用控制器就是几条判读逻辑。
当然,加上控制器之后,反馈环路也会变得更复杂。软件调节占空比不能太激进,否则会在电池接入瞬间出现振荡。我会在恒压环上使用慢速PI控制,让占空比平滑变化,恒流环则用快速PI,这样两种模式切换时不会冲击输出。
7.2 物料和工具储备建议
做AC-DC充电器,手里有一套趁手的工具比多买几块开发板有用得多。示波器必须有,至少100MHz带宽,最好带隔离通道或者用差分探头测初级高压信号。LCR表用来测变压器电感量和漏感,电子负载用来测恒流和带载能力,热像仪虽然贵但能帮你快速找到热点,如果没有红外热像仪,可以用点温计逐点扫。
变压器物料我会多备几种磁芯,EE30、PQ26、EFD30都买几对,不同磁芯的漏感和散热表现差异很大。二极管和开关管也要多备几颗,炸管在电源调试中太常见了,多备一点能省下等快递的时间。输出电容建议直接采购低ESR长寿命品种,普通电容在高温工作状态下衰减很快,半年后输出纹波变大是常有的事。
最后还有一句安全提醒:调试AC-DC充电器时,初级部分是带高压电的,不要在通电状态下去触摸元件和走线,必须连接隔离变压器操作,养成单手调测、先放电再拆板的习惯。电源调试确实有风险,但这些习惯养成了,反而会越做越顺手。