简介这套LLC全桥数字开发资料面向开关电源研发工程师、电力电子方向学生及数字电源调试人员用于系统掌握LLC全桥拓扑的设计计算、控制代码与硬件调试流程。压缩包约134.89MB内含原理图、DSP控制代码、PCB布局、计算书、仿真模型、BOM清单及测试波形等文件类型从理论仿真到样机验证均有对应素材。已有277人学习资源覆盖面较全适合对照实际项目进行设计复盘、参数调整与排错定位。借助计算书可以核对谐振槽参数与增益关系通过仿真模型可验证控制策略测试波形为样机调试提供直观依据BOM清单则便于快速整理物料配合PCB与代码能够明显减少从入门到落地的摸索时间。对于正在开展数字电源开发或希望提升LLC全桥实战能力的人来说这套资料可作为一份较完整的参考模板。1. 这套LLC全桥数字开发包从原理图到波形一次给齐做LLC全桥数字电源的工程师都有体会最折腾的不是搭电路而是原理图、计算书、DSP代码、PCB和测试波形这几样东西往往对不上。参数算了一套仿真里跑出另一套上了板子波形又不一样到底是计算错、仿真错还是layout错要查半天。这套开发资料把从谐振参数计算到DSP调频控制、再到样机调试的一条完整链路放在一起原理图、计算书、仿真模型、源代码、BOM和实测波形能互相印证。适合正在做数字电源、想从模拟控制切到DSP控制的工程师也适合准备做一两千瓦级全桥LLC项目的入门者。按这条链路从计算书到仿真再到样机走一遍能省下前期大约两周的踩坑时间。2. 原理图与计算书先把谐振参数看懂再动手拿到压缩包先别急着翻代码把原理图和计算书对照着过一遍。这一章讲LLC参数设计的主线逻辑以及原理图上真正决定成败的几个节点。2.1 全桥LLC拓扑与工作区划分全桥LLC的功率级由四个开关管Q1-Q4组成两个桥臂对角管同时导通在桥臂中点之间接入谐振腔谐振电感Lr、谐振电容Cr和变压器的励磁电感Lm构成谐振网络。因为输出调节完全靠开关频率占空比固定接近50%这跟硬开关PWM的“调占空比”思维完全不同。从模拟电源转过来的工程师最容易在这里绕不过弯。工作区按开关频率fs与谐振频率fr的关系划分fs大于fr工作在感性ZVS区原边开关管在电压过零后开通开通损耗小是PFM调节的主要方向fs等于fr谐振电流最接近正弦变压器利用率最高一般把额定工作点设计在fr附近fs小于fr进入容性区原边可能失去ZVS副边二极管反向恢复严重重载下容易炸管。为什么LLC不用占空比控制因为占空比偏离50%会引入较大励磁直流分量变压器容易偏磁同时谐振电流畸变。数字控制里即使调频也要始终保持互补PWM的占空比接近50%只是通过改变周期来移频。这一点在DSP代码里体现得很直接只改周期寄存器不动占空比寄存器。2.2 从计算书反推关键参数K值、Q值与死区计算书里最重要的一张图是增益曲线对应的公式是M 1 / sqrt((1 K - K/fn²)² Q²·(fn - 1/fn)²)其中fn fs / frK Lm / LrQ √(Lr/Cr) / RacRac是折算到原边的等效交流电阻。副边全桥整流时Rac 8·n²·Ro / π²n是变压器变比Ro是额定负载电阻。这个公式几乎是所有参数反推的起点。K值一般取3~8K越大增益调节范围越宽但ZVS范围收窄励磁电流增大空载损耗上升Q值由满载等效电阻和特性阻抗决定Q越大满载最低频率越低对宽范围输入更友好但回路阻尼变差动态响应容易振荡。按计算书的思路参数确定通常走五步初选变压器变比n让谐振增益在额定输入下接近1按额定输出功率算Ro再折算成Rac定fr比如100kHz级别和K值用增益公式解出满载最低工作频率由ZVS条件反推Q上限再取额定负载下的Q值解出三个谐振元件Lr Q·Rac / (2π·fr)Cr 1 / ((2π·fr)²·Lr)Lm K·Lr。死区时间跟励磁电流峰值Ip直接相关td ≥ 2·Coss·Vin / Ip其中Coss是开关管输出电容Vin是母线电压Ip可以用额定工作点的励磁电流估算。Coss是非线性电容高压下等效电容比低压时变化明显按手册标称值算出来死区“刚好够”实测发现波形还没降到零这是最常见的翻车点。计算书里如果只写了一个死区时间务必用这个式子复核并留30%~50%余量。谐振电感Lr的实现方式值得单独说。很多方案把Lr全部做进变压器漏感里省一个磁件但漏感一致性差批量调试容易遇到频率漂移。我一般倾向用独立谐振电感变压器漏感控制在较小范围两个磁件各自规格化量产参数一致性更好。Lr磁芯最好开气隙避免大电流下电感量下降太多。2.3 原理图关键节点采样、驱动与保护原理图上最值得细看的是三条链路。采样链路输入电压和输出电压用高阻分压加运放跟随送入DSP的ADC谐振电流用电流互感器或采样电阻变换后同时送ADC和硬件比较器。电流采样点尽量放在谐振电容的低压端附近避开桥臂中点的高dv/dt节点否则运放输出会叠加共模噪声。实际Layout中这条采样走线要短地线单独回ADC参考地。驱动链路四个管子用两片半桥驱动芯片高边自举供电。自举电容要紧贴驱动芯片引脚放置下管导通时靠自举电容给上管栅极供电电容离得远了等效串联电感变大上管驱动波形会出现明显台阶。栅极驱动电阻放在管子栅极侧不要放在驱动芯片输出侧。保护链路硬件过流比较器直接封锁PWM输出不依赖DSP软件响应速度DSP的故障输入引脚再收一路作为状态机进入FAULT的依据。过压保护用输出电压分压比较器过压阈值按额定电压的110%~115%设置。节点采样方式进DSP用途进硬件保护输出电压电阻分压运放跟随电压环反馈、过压检测过压比较器谐振电流电流互感器/采样电阻电流显示、限流过流比较器母线电压电阻分压运放跟随输入前馈、欠压/过压—原理图确认无误后下一步是把计算书的参数搬进仿真模型用波形验证设计而不是直接去画PCB。3. 仿真验证用仿真模型把计算书变成波形3.1 搭建开环仿真模型参数往哪填LLC的开关级仿真我习惯用PSIM这类带磁性器件模型的电路仿真器也可以用Simulink的Simscape搭模型细节要和计算书严格一致。搭建顺序按功率级从前往后放四个开关管搭成全桥每个管子并联体二极管模型因为死区期间电流必须走体二极管桥臂中点之间串联Lr和CrCr下端接地方便后面接电流检测变压器用理想变压器加原边并联Lm副边按全桥整流接法摆两组绕组副边接二极管全桥整流或同步整流模型输出端并电容再接负载电阻。参数表需要和计算书逐项对应参数填入位置数值来源谐振电感Lr原边串联电感计算书第5步谐振电容CrLr下方串联电容计算书第5步励磁电感Lm理想变压器原边并联计算书第5步开关管理想开关体二极管按实际管子阻容模型死区时间驱动脉冲延迟2.2节复核后的值负载电阻Ro输出端电阻额定功率反推填完参数先跑开环。把开关频率定在fr附近观察原边谐振电流是否连续、副边二极管电流是否对称。如果电流断续或者输出电压明显偏离目标值先查变压器同名端和副边整流方向这是LLC仿真里最容易犯的低级错误——同名端反了整个工作模态就颠倒了。仿真步长也值得检查一下一般设为开关周期的1/100~1/50100kHz对应100~200ns步长太大会把死区细节抹掉太小则仿真时间难以接受。从波形判断当前运行区有个简单方法看原边开关管关断后的Vds。如果Vds在死区时间内被充放电到接近母线电压且出现平顶说明工作在感性区如果Vds波形出现明显平台且方向不对可能是进入容性区了这时候把频率往高处调直到Vds恢复ZVS特性。3.2 加入闭环PFM调频与burst模式开环正常后把固定频率脉冲换成压控振荡器VCO。VCO的输入是输出电压误差信号输出频率随误差变化这就是PFM调频的本质。仿真里先用一个理想VCO宏模型频率范围限制在f_min到f_max避免频率跑飞导致仿真发散。电压环增益先给小值比如比例系数0.01~0.02待波形稳定后再加大直到动态响应满足要求。LLC是低带宽系统电压环带宽通常做到1~5kHz就够了。带宽再高会被谐振回路的双极点拖累相位裕度快速下降动态反而容易振荡。仿真里验证带宽的方法是给负载加一个阶跃比如从25%跳到100%看输出电压回落时间。LLC不像反激那样追求几十微秒的恢复速度几百微秒内稳住、过冲小于几个百分点是正常水平。轻载burst模式在仿真里用一个带滞回的比较器实现输出电压低于下限关闭驱动几个周期让输出电容给负载放电电压跌到回差下限之后重新开启驱动。这里重点看恢复瞬间的电流过冲。如果过冲超过稳态电流的1.5倍说明频率跳变太陡恢复时要加软启动斜坡而不是一步切回目标频率。仿真里常见的经验参数组合VCO增益0.1~1MHz/V频率范围0.8fr~2frburst回差取额定电压的2%~5%。3.3 仿真与实测偏差的三个来源仿真跑得再好到了板上波形总有出入。三个偏差来源最常见。变压器漏感没建模。很多LLC里Lr实际包含一部分变压器漏感仿真只用理想变压器加独立Lr相当于漏感重复计入实测谐振频率会偏低增益曲线整体右移。处理办法是先测变压器漏感折算进独立Lr仿真和计算书同步修正。死区时间不一致。仿真里设的是理想死区板上驱动芯片的传播延迟、自举充电速度会让实际死区偏移几十纳秒到上百纳秒。看实测Vds波形驱动交叉点往往比设置的死区短或长要以实测为准回填仿真参数。磁芯非线性导致Lm变化。满载大电流下Lm会随磁通密度变化而仿真用的是固定值。Lm变小K值变小增益曲线抬高输出在满载时偏高。调试中如果发现满载和半载增益差得远先把Lm换成大信号下的有效值再跑一遍。仿真和计算书对上了才能轮到DSP代码——因为代码里的频率限幅、软启动初始频率都要从仿真结果里取。4. DSP代码落地数字电源控制器的骨架DSP控制器的价值在于把采样、调频、状态机集成在一个中断里。这一章用三段代码讲清楚三个关键点采样时机、频率映射、状态切换。4.1 中断架构与ADC采样点控制中断由PWM模块同步触发保证每个周期在固定的相位点采样。采样点刻意避开开关管的开通和关断沿因为那里dv/dt最大。习惯做法是把采样点设在周期中点即半周期计数值处触发ADC。// PWM时钟: 100MHz, 开关频率: 100kHz // TBPRD 100MHz / (2 * 100kHz) 500 EPwm1Regs.TBPRD 500; // 半周期计数值 EPwm1Regs.CMPA 250; // 周期中点, 触发ADC采样 EPwm1Regs.ETSEL.bit.SOCASEL 2; // CMPA事件触发ADC EPwm1Regs.ETPS.bit.SOCAPRD 1; // 每个事件触发一次逻辑说明这四行把PWM周期寄存器、比较寄存器和ADC触发事件绑定在一起。TBPRD设定半周期计数值CMPA250对应周期中点。ADC在中点触发采集到的电压电流信号躲开了开关沿的dv/dt冲击。参数说明如果PWM时钟不是100MHz需要重新计算TBPRD如果想让ADC每两个开关周期采样一次就把SOCAPRD改为2。同步采样是数字电源最容易忽略的一步采样点不对后面PI参数全白调。注意频率变化时TBPRD和CMPA要同步更新CMPA始终保持在周期的一半否则采样点会随着频率漂移。4.2 频率控制环路从误差到PFM频率环路的本质是“输出电压误差→频率给定→周期寄存器”。要注意PI输出和频率的量纲不同先把误差换算成频率调节量再换算成周期值中间要有限幅和抗积分饱和。// 电压环PI, 控制周期50kHz, 输出为频率给定(Hz) float vout, vref, freq_ref, err, err_last, upi; float Kp 0.05f, Ki 0.01f; int period; // 采样标度: ADC原始值 → 实际电压, 系数由分压比决定 vout (float)AdcResult.ADCRESULT0 * 0.008f; err vref - vout; upi Kp * err Ki * (err - err_last); // 增量式PI freq_ref upi; err_last err; // 限幅, 超过限幅停止积分累积 if (freq_ref 250000.0f) { freq_ref 250000.0f; upi 0; } else if (freq_ref 80000.0f) { freq_ref 80000.0f; upi 0; } // 频率→半周期计数: TBPRD PWM时钟 / (2 * fs) period (int)(100000000.0f / (2.0f * freq_ref)); EPwm1Regs.TBPRD period; EPwm1Regs.CMPA period 1; // 中点触发采样逻辑说明代码在50kHz控制周期里执行一次频率更新。增量式PI对积分项的处理更简单状态机切换时直接重置freq_ref即可。参数说明Kp和Ki的单位是Hz/V和Hz/(V·控制周期)仿真里整定好的值可以作为起点实际板上再加减。限幅上下限要覆盖软启动最高频率和满载最低频率限幅之后必须清零upi否则PI输出会继续增大形成积分饱和典型表现是负载跳变时输出先过冲再回落。TBPRD和CMPA同步更新保证采样点一直落在周期中点。4.3 状态机软启动、稳态与故障保护数字LLC的软启动天然是扫频从高频往低频移动因为高频增益低输出电压缓慢上升不会产生浪涌电流。状态机把运行过程拆成几个明确的阶段。typedef enum {OFF, SOFT_START, RUN, BURST, FAULT} SysState; SysState state OFF; float freq_now 200000.0f; // 软启动起始频率 const float freq_end 100000.0f; // 目标频率 void StateMachine(void) { switch (state) { case OFF: if (vin_ok vout 10.0f) // 输入正常且输出放完电 state SOFT_START; break; case SOFT_START: freq_now - 2000.0f; // 每个控制周期降2kHz if (freq_now freq_end) { freq_now freq_end; state RUN; } SetFreq(freq_now); break; case RUN: if (iLr 60.0f) // 过流, 进入故障态 state FAULT; else if (vout 8.0f) // 极轻载, 进入burst state BURST; break; case BURST: if (vout 8.0f) // 低于回差下限, 继续关断 PWMDisable(); else { // 高于回差上限, 重新高频启动 freq_now freq_end 20000.0f; PWMEnable(); state SOFT_START; } break; case FAULT: PWMDisable(); if (pw_fault_cleared) state OFF; break; } }逻辑说明SOFT_START按固定步长降低频率步长大小决定软启动时间。按2000Hz步长、50kHz控制周期算从200kHz降到100kHz需要50次即1ms实际会按母线电容容量调整到几毫秒到几十毫秒。BURST退出时不是直接回RUN而是先跳到较高频率再走软启动防止退出瞬间过冲。参数说明过流阈值比硬件保护低10%左右由软件先动作burst回差由上下两个判断构成避免在临界点来回抖动。FAULT状态必须由软件确认故障引脚电平后再复位不能自动无条件恢复否则连续故障会快速损坏功率管。代码框架通了接下来是把它放到真实的板上。PCB布局和BOM选型这一步坑比代码多。5. PCB、BOM与测试波形五处最容易翻车的细节这一章把样机调试中常见的问题摊开每一条都按现象、原因、解决来写。5.1 驱动波形出现高频毛刺现象示波器看Vgs波形开通沿之后叠加几兆赫兹振铃幅度接近1V驱动芯片微微发烫。原因大部分情况不是驱动电路本身的问题而是示波器探头地线夹太长地线夹和探头针尖形成一个大环路把开关节点的高dv/dt耦合成了振铃。小部分是驱动走线过长、自举电容离芯片远。解决先用探头接地弹簧替换地线夹确认毛刺消失再检查驱动走线做到芯片→栅极电阻→MOSFET栅极的最短回路自举电容紧贴芯片引脚。如果还有振铃在栅极电阻上并联一个几纳法的电容减慢开关速度换振铃抑制代价是开关损耗略增。5.2 采样噪声导致电压环发散现象空载或轻载时输出电压抖动频率给定来回甩变压器甚至发出轻微啸叫。原因采样点落在开关沿附近高dv/dt通过PCB寄生电容耦合进ADC输入或者采样电阻参考地与ADC地没有分开谐振电流的di/dt在地平面上产生压降直接叠加进采样结果。解决把ADC触发点移到开关周期中点代码见4.1节ADC输入前加RC低通截止频率控制在控制带宽的5~10倍既滤噪声又不明显滞后采样电阻用开尔文接法独立走线回到ADC参考地。5.3 死区时间设置不当导致ZVS失效现象满载效率比计算书低2~3个点功率管温度偏高看Vds波形开通前电压还没降到零存在硬开通。原因死区时间太短励磁电流还没完成谐振腔充放电就强制开通或者死区时间反而太长励磁能量在死区里被钳位浪费。解决用公式td ≥ 2·Coss·Vin / Ip计算理论下限叠加驱动芯片传播延迟的不对称量再留30%以上余量。实测时从理论值开始逐步加长每次加10ns观察Vds在开通前是否到零并出现平底平台。需要提醒的是死区不是越长越好过长会牺牲励磁能量效率反而下降。5.4 轻载burst退出时输出过冲现象从burst恢复瞬间输出电压冲高200~400mV负载稍大直接触发过压保护。原因退出burst时频率从低频直接跳到目标频率增益阶跃过大或者burst检测用了输出电压平均值负载突然加入时平均值还没跌下去频率来不及调整。解决退出burst后先进入软启动序列从高频往目标频率爬而不是一步切到目标频率。burst检测改用输出电压瞬时值加滞回比较器回差建议取额定电压的2%~5%。5.5 谐振电容选型翻车现象满载老化一小时后工作频率慢慢下降谐振电流变大电容温度明显高于周边器件。原因谐振电容流过的是大幅值纹波电流普通陶瓷电容容量随电压和温度变化剧烈容值下降直接改变谐振频率频率调节跟着漂移。解决用聚丙烯薄膜电容耐压取谐振电容峰值电压的1.5倍以上有效值电流按仿真波形最大值的2倍裕量选型。样板调试阶段不要用普通瓷片电容顶替因为耐纹波电流能力差几个数量级。6. 测试波形进阶验证用扫频法确认ZVS边界最后给一个我每次调数字LLC都会做的定量测试让DSP控制开关频率从高到低线性扫描同时用示波器记录Vds波形观察开通前电压是否降零画出当前母线电压和负载下的ZVS边界。实现方式可以直接借用4.3节的软启动逻辑把频率扫描做成可配置的斜坡// 扫频模式: 从 f_max 线性扫到 f_min, 步长1kHz static uint32_t step 0; if (scan_running) { uint32_t steps (uint32_t)((f_max - f_min) / 1000.0f); float f f_max - (float)step * 1000.0f; if (f f_min) f f_min; SetFreq(f); step; if (step steps) { scan_running 0; SetFreq(f_max); // 扫完回到安全高频 } }逻辑说明每一毫秒步进1kHz扫频总步数由频段除以步长算出。加上静态标志位scan_running避免与运行状态机的频率设定冲突。参数说明步长取1kHz比较适中太小扫频时间太长太大容易跳过窄的ZVS窗口。测试时把母线电压固定在最恶劣工况通常是最低输入电压或最高输入电压具体看哪个工况下Coss充电能量最紧张按计算书确认。示波器上看原边开关管的Vds和对应驱动波形。满足ZVS的标志是驱动开通沿到来之前Vds已经降到接近0并出现一段平底平台。记录平台消失的那个频率点这就是当前工况的ZVS边界。量产固件里我会把频率下限设到比边界高10%以上的位置留足温度和器件老化的余量。曾经有一台样机在耐久测试中烧了原边管子查下来是频率下限比实测边界只低了3kHz环境温度升高后Coss变大临界状态翻成了硬开通。从那以后我每调一款LLC都会强制把扫频测边界跑一遍按频率-电压-负载三个维度记录数据再定f_min。希望帮到你。本文还有配套的精品资源点击获取