从大学实验室第一次接触 UC3842 到真正点亮一块基于 TL431+PC817 反馈的反激电源,我中间经历了大约三个月的反复踩坑。起初以为“反激”就是把变压器两个绕组反着绕很简单,结果算不出变压器参数、绕不出感量、上电就烧开关管、输出纹波大到没法看,踩过的坑比理论书上的公式还多。
这篇文章把我从理论到实战复刻 AC-DC 反激式开关电源的完整过程整理成一份可执行的教程。文章会从反激拓扑的工作过程讲起,然后按 12V/1.5A 输出规格,逐步完成参数估算、器件选型、原理图模块拆解、PCB 布局、变压器绕制、波形调试和故障排查。无论你是电源方向的学生,还是想把开关电源学明白的嵌入式开发者,都可以按这篇文章的思路从头到尾复刻一块能正常工作的反激电源。
需要提前说明的是:AC-DC 反激电源的一次侧与市电直接相连,整个调试过程涉及 220V 高压,存在触电和器件损坏风险。所有实验操作都应在隔离变压器、限流保护与断电放电的前提下进行。
1. 反激式开关电源的核心概念
1.1 什么是反激式开关电源
从一个直观的角度理解:普通变压器工作的时候,一次侧能量几乎同时通过磁路传递到二次侧,而反激式开关电源不是这样。
反激式开关电源在开关管导通时,把输入能量先以磁场形式储存在变压器(实际上是一只有气隙的电感)中;当开关管关断时,储存在磁芯里的能量才通过二次侧绕组释放给负载。正因为这种“先储能、后释放”的工作方式,它获得了 Flyback 这个名字。
反激拓扑的典型优势是结构简单、成本低、输入输出电气隔离,并且同一套拓扑可以灵活实现多路输出。在 100W 以下的小功率 AC-DC 应用,如手机充电器、路由器适配器、家电控制板电源、电机驱动板辅助电源等场景,反激式开关电源几乎是绝对主力。
用一句话概括就是:反激式开关电源以“隔离电感”为核心,通过控制开关管占空比,实现对输出电压的稳定控制。
1.2 一个开关周期里的三个关键阶段
为了能理解后续调试图纸上的波形,先要弄清一个开关周期中变压器发生了什么。假设变压器一次侧绕组为 Np、二次侧绕组为 Ns,同名端按反激接法连接:
开关管导通阶段:
输入母线电压全部加在一次侧绕组上,由于同名端关系,二次侧整流二极管反偏不导通。一次侧绕组电流从零或某个初值线性上升,磁芯内部磁场能量不断累积。此时负载电流完全由输出电容提供。
开关管关断瞬间:
一次侧电流突然被切断,根据法拉第电磁感应定律,磁芯中的磁通不能突变,二次侧绕组感应出反向电动势,整流二极管导通,储存在磁芯中的能量向输出电容和负载释放,二次侧电流线性下降。
死区阶段:
如果二次侧电流在下一个开关周期开始前已经降到零,就进入了电流断续状态;如果还没有降到零,下一次导通就从非零电流开始,进入电流连续状态。
反激电源要稳定工作,本质上就是在一个周期内完成“输入侧储能”和“输出侧释能”的动态平衡。输入电压升高或输出负载变轻时,控制器会减小占空比;输入电压降低或负载变重时,控制器会增大占空比。
1.3 CCM、DCM 与 BCM 的区别
反激电源根据变压器二次侧电流在一个周期内是否降为零,分为三种工作模式:
电流连续模式(CCM):一个开关周期结束时,二次侧电流没有降到零,下一次开关管导通与上一次电流释放重叠。
电流断续模式(DCM):二次侧能量在某段时间已经全部释放,输出二极管电流降为零,直到下一次开关管导通。
临界连续模式(BCM):二次侧电流刚好在开关周期结束时降到零,是 CCM 与 DCM 的边界。
小功率反激适配器在轻载时通常工作在 DCM,在低压满载时可能工作在 CCM 或接近 BCM。不同模式下,占空比与输出电压之间的关系并不完全相同,这也是很多新手照着公式算了一晚上,出来的变压器仍然不对的原因之一。后面做工程计算时,我会按“临界连续估算 + 最终实测调整”的思路处理,因为反激变压器设计本身就是一种基于目标工况的迭代过程。
2. 复刻项目的规格定义与整体架构
2.1 设计目标
复刻前必须先把设计目标写清楚,不要边做边改。本次规划的输出规格如下:
| 参数 | 指标 |
|---|---|
| 输入电压 | AC 85V ~ 265V,50/60Hz |
| 输出电压 | DC 12V |
| 输出电流 | 1.5A |
| 输出功率 | 18W |
| 输出纹波目标 | ≤ 50mV(实际受 PCB 与电容影响) |
| 开关频率 | 约 65kHz |
| 控制方案 | UC3842 + PC817 光耦 + TL431 基准 |
| 拓扑结构 | 单端反激,副边反馈 |
选择 12V/1.5A 这个规格,是因为 18W 非常适合首次复刻。功率不算大,元件应力不高,变压器可以使用常见的小磁芯绕制,调试时即使出现设计偏差,也不会像百瓦级电源那样“一次炸机毁所有”。
2.2 控制系统为什么选择 UC3842
市面上反激控制芯片很多,比如集成度较高的原边反馈芯片、准谐振芯片、LLC 芯片。这次选择 UC3842 并不是因为它最先进,而是因为它非常适合学习。
UC3842 是经典的电流模式 PWM 控制器,内部包含误差放大器、电流采样比较器、RS 触发器、推挽输出级,其工作逻辑非常接近电源理论教材中的“电压环 + 电流内环”结构。用它做副边反馈,可以直观理解 TL431 如何采样输出电压、光耦如何把误差信号传到一次侧、COMP 引脚如何调节占空比,以及 ISENSE 引脚如何实现逐周期限流。
实际项目中,UC3842 也有大量国产兼容型号,替代替换方便。对新手而言,这是一颗“资料多、引脚明确、拆机件也多”的学习型芯片。
2.3 系统整体框图
从市电输入到稳定输出,整体信号与功率路径为:
交流输入 → 保险丝与EMI滤波 → 整流桥 → 母线滤波电容 → 高频变压器一次侧 → MOSFET开关管 → 控制器驱动
输出侧为:
变压器二次侧 → 输出整流二极管 → 输出滤波电容 → 12V输出 → 采样电阻 → TL431 → 光耦 → UC3842 COMP
辅助供电路径为:
变压器辅助绕组 → 整流二极管 → VCC滤波电容 → UC3842 VCC引脚
具体描述如下:市电先经过保险丝和 EMI 滤波,通过整流桥变成带有较大纹波的直流母线电压;该母线电压加到变压器一次侧和开关管上。控制器控制开关管以 65kHz 左右频率通断,把直流母线“斩”成高频方波。高频变压器将一次侧能量耦合到二次侧,再经过肖特基二极管整流和电容滤波,得到稳定的 12V 输出。
输出端通过电阻分压把电压反馈到 TL431,TL431 的阴极电流变化再通过 PC817 光耦传递到 UC3842 的 COMP 引脚,由此调整占空比,形成闭环。
3. 工具、器件与关键物料准备
3.1 调试工具清单
复刻反激电源不能只靠一块万用表。如果你打算全程复刻,至少需要准备以下工具:
| 工具 | 用途说明 |
|---|---|
| 示波器 | 测量驱动波形、VDS 波形、输出纹波,带宽建议 100MHz 以上 |
| 高压差分探头 | 测量一次侧高压波形,普通探头容易造成共地危险 |
| 万用表 | 检查短路、测量母线电压、电阻电压等 |
| 隔离变压器 | 调试时给被测电源供电,避免触电风险 |
| 自耦调压器 | 从 AC 30V 开始逐步升压测试 |
| 功率计 | 测量输入功率、效率 |
| 电子负载或功率电阻 | 模拟输出负载 |
| LCR 电桥或电感表 | 测量变压器初级电感量 |
| 恒温烙铁与助焊剂 | 焊接与返工 |
如果暂时没有高压差分探头,可以使用低压方式间接确认关键信号,但绝对不要用普通示波器探头直接测量热端高压点,更不能让示波器地线夹接到正在工作的热母线回路上,否则轻则烧探头,重则造成触电。
3.2 主要器件清单
这里列出一组参考 BOM,注意实际元件参数需要结合你自己手中的磁芯与设计计算结果调整:
| 器件 | 参考参数 | 作用 |
|---|---|---|
| 保险丝 | 2A / 250V | 输入过流保护 |
| 整流桥 | 2A / 600V | 交流整流 |
| 母线电容 | 400V / 47uF | 直流母线滤波 |
| 控制芯片 | UC3842 或兼容型号 | PWM 控制 |
| MOSFET | 650V 级 N-MOS,电流 5A 以上 | 功率开关 |
| 变压器磁芯 | 小型 EE/EF 系列磁芯 | 储能与隔离 |
| 输出二极管 | 100V / 5A 肖特基二极管 | 输出整流 |
| 光耦 | PC817 | 跨隔离带传递反馈 |
| 基准 | TL431 | 输出误差放大 |
| 钳位二极管 | 快恢复二极管 UF4007 | RCD 钳位 |
| 钳位电容 | 1nF / 1kV 高压电容 | RCD 钳位 |
| 钳位电阻 | 100kΩ / 2W 高压电阻 | RCD 钳位 |
| 启动电阻 | 多只高压电阻串联 | UC3842 启动供电 |
这一波采购中,最容易踩坑的是 MOSFET、钳位二极管和输出二极管。千万不要用普通整流二极管代替快恢复二极管,普通二极管反向恢复时间太长,在反激高压尖峰工况下会严重发热,甚至直接损坏。
4. 反激电源关键参数计算
4.1 确定一次侧电压范围与占空比约束
电源标称输入为 AC 85V~265V。整流后母线电压峰值大约为:
VDC_max ≈ 265 × 1.414 ≈ 375V
但整流滤波后的直流电压不是平滑的 375V,在满载和母线电容容量有限时,电压会出现约几十伏的纹波。设计中低压满载是比较恶劣的工况,因此估算最低母线电压时不能直接用 85V 的峰值 120V,应留出纹波余量。本次计算按 VDC_min ≈ 110V 处理。
反激电源的反射电压 Vro 是一个很关键的中间量。它的定义是:
Vro = n × (Vo + VF)
其中 n = Np / Ns,是一次侧与二次侧匝数比;VF 为输出整流二极管正向压降。
选择反射电压的约束来自 MOSFET 的耐压。MOSFET 关断时漏源电压峰值约为:
VDS_max ≈ VDC_max + Vro + 漏感尖峰
如果选 650V MOSFET,考虑降额使用,希望稳态 VDS 不超过 550V 左右。VDC_max 已有 375V,因此 Vro 加上漏感尖峰只能占用约 175V 余量。RCD 钳位电路可以把漏感尖峰限制在 100V 以内,所以 Vro 建议控制在 100V 左右。本次按 Vro ≈ 90V 设计。
在 CCM 模式下,占空比与输入电压、反射电压的关系为:
D ≈ Vro / (VDC_min + Vro)
代入数值:
D ≈ 90 / (110 + 90) = 0.45
这是一个非常典型的最大占空比设置,既不会让 UC3842 出现极限占空比饱和,也为低压满载留下足够调节空间。
4.2 用一次侧储能公式估算初级电感量
反激电源的变压器需要开气隙储能。在临界连续附近,每个开关周期内变压器从一次侧吸收并传递到二次侧的能量可以近似写成:
P_in = 0.5 × Lp × Ipk² × fsw
同时输入功率可以表示为输出功率与效率之比:
P_in = Po / η
再考虑开关管导通阶段电流变化关系:
Ipk = VDC_min × Dmax / (Lp × fsw)
联立以上关系,可以得到临界连续模式下初级电感量的估算公式:
Lp = (VDC_min² × Dmax² × η) / (2 × Po × fsw)
式中:
Po = 12V × 1.5A = 18W; η 按 0.85 预估; fsw = 65kHz; VDC_min = 110V; Dmax ≈ 0.45。
把这个计算过程放入 Python,便于后续修改参数快速重新估算:
# flyback_calc.py # 反激主电路参数估算:12V / 1.5A / 65kHz po = 18.0 # 输出功率 W vo = 12.0 # 输出电压 V io = po / vo # 输出电流 A eta = 0.85 # 预估效率 fsw = 65e3 # 开关频率 Hz vdc_min = 110.0 # 最低母线电压 V vdc_max = 375.0 # 最高母线电压 V vf = 0.6 # 输出整流二极管压降 V vro = 90.0 # 反射电压 V dmax = vro / (vdc_min + vro) print("估算最大占空比 Dmax =", round(dmax, 3)) lp = (vdc_min ** 2) * (dmax ** 2) * eta / (2 * po * fsw) print("临界连续估算初级电感量 Lp =", round(lp * 1e6, 1), "uH") ipk = (vdc_min * dmax) / (lp * fsw) print("估算峰值电流 Ipk =", round(ipk, 2), "A") n = vro / (vo + vf) print("估算匝比 n =", round(n, 2))运行后大致可以得到:
估算最大占空比 Dmax = 0.45 临界连续估算初级电感量 Lp = 866.4 uH 估算峰值电流 Ipk = 0.88 A 估算匝比 n = 7.14这里要特别说明,求出的 866uH 只是一个初级电感量设计起点,不代表绕好后的最终感量一定就是这个值。实际绕制时还需要通过调整气隙把初级电感量调到目标附近,再在带载测试中验证变压器工作模式和温升。
4.3 估算初级绕组匝数与次级匝数
变压器初级最小匝数受磁芯饱和限制。如果不设置最小匝数,磁芯可能在开关管关断前已经饱和,导致一次侧电流失控。基本约束关系为:
Np_min = VDC_min × Dmax / (dB × Ae × fsw)
式中 Ae 为磁芯有效截面积,dB 为磁芯工作磁摆幅。
这里以一个 Ae ≈ 31mm² 左右的小型 EE 磁芯作为示例:
ae = 31e-6 db = 0.25 np_min = (vdc_min * dmax) / (db * ae * fsw) print("初级最少匝数 Np*0 =", round(np_min, 0)) np_actual = 105 n_actual = np_actual / n print("选取初级匝数 =", np_actual, "对应次级匝数约 =", round(np_actual / n, 1))按上述约束,初级匝数不能少于约 98 匝。参考设计取 105 匝,则次级匝数约为:
Ns = Np / n ≈ 105 / 7.14 ≈ 15 匝
辅助绕组电压主要用于给 UC3842 的 VCC 供电。UC3842 的启动门槛是 16V,关断门槛约 10V,因此正常工作后希望 VCC 稳定在 15V 左右。辅助绕组与输出绕组的电压比例近似等于匝数比。输出绕组按 12.6V 计算(12V + 二极管压降),若辅助绕组也取 15 匝,辅助电压大约在 15V 左右,刚好可以维持芯片工作。
绕制参考数据可以记录为:
| 绕组 | 匝数 | 备注 |
|---|---|---|