ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DSP2802X开发板六种电源拓扑的电压模式控制实战解析

DSP2802X开发板六种电源拓扑的电压模式控制实战解析 简介面向电力电子与嵌入式开发者的DSP数字电源开发板资源基于TI TMS320F28027控制器覆盖降压、升压、升降压、半桥LLC、全桥LLC及移相全桥电压/电流模式等主流电源拓扑并配套PID与多零极点环路补偿实现代码适合电源工程师、研究生及DIY爱好者进行原理验证与算法移植。资源包共2000个文件其中C源码与H头文件合计超过1600个构成完整工程框架另有百余个PDF文档及少量辅助脚本与配置可兼顾代码阅读与文档查阅整体约87.62MB。压缩包含大量可编译的示例工程便于直接导入CCS开发环境进行仿真调试也可作为二次开发的基础模板目录结构按功能模块组织方便对照学习。目前已有117人学习下载适合需要快速上手F28027数字电源开发或对比不同拓扑实现细节的进阶学习者。1. 一块 DSP2802X 开发板为什么值得同时谈六种拓扑TMS320F28027 是一颗 60MHz 的 C2000 小芯片数字电源开发板选它不是因为算力而是因为 ePWM、ADC、比较器子系统刚好覆盖从 Buck 到 LLC 的全部信号需求。标题里的升压、降压、升降压、半桥 LLC、全桥 LLC、移相全桥电压模式本质是同一套外设在三种调制方式下的组合前三个用固定频率下的占空比调制LLC 用变频率的 PFM移相全桥把控制量换成两腿之间的相位差。电压模式意味着只有输出电压一个反馈量没有内环电流环入门最友好也会在 LLC 和 PSFB 上暴露带宽与稳定性的真实约束。这块板适合两类人从 UC3842、TL494 等模拟方案转数字电源的工程师想在一套硬件上看清六种拓扑的差异以及需要快速验证拓扑选型和环路策略的预研工程师。2. TMS320F28027 的外设底牌ePWM、ADC 与比较器怎么分工2.1 为什么这颗芯片不靠主频吃饭F28027 的 CPU 是 60MHz C28x配 128KB Flash 和 12KB SRAM这个配置放在今天的 MCU 市场里毫不起眼。但 60MHz 主频对数字电源完全够用原因在于 60MHz 时基下200kHz 开关周期有 300 个时钟周期完成一个带保护逻辑的 2P2Z 补偿器运算只需 30~50 个周期剩下的时间可以跑软启动状态机、模式切换和通信。真正的瓶颈从来不是算力而是三个问题采样时刻是否与开关沿对齐PWM 更新是否在同一周期生效故障保护是否不经过 CPU 直接动作。C2000 的 ePWM 模块把这些问题用硬件解决了。时基、比较、动作限定、死区、事件触发五段逻辑链路上ADC 转换可以由 ePWM 事件直接启动比较器输出又可以绕过 CPU 直接拉死区后的 PWM 输出。CPU 每周期只做一件事算一个新的占空比、频率或相位写进对应的寄存器。这颗芯片的定位就是“数学运算单元加可配置外设”而不是通用 MCU。2.2 ePWM 的五个寄存器组与六种拓扑的映射F28027 有 4 个 ePWM 模块、8 路输出。每个模块由时基 TBTBPRD 周期、CTRMODE 计数模式、计数比较 CCCMPA/CMPB、动作限定 AQ计数到指定值输出拉高或拉低、死区 DB上升沿延迟 RED、下降沿延迟 FED、事件触发 ET产生中断和 ADC 启动信号组成外加一个 Trip Zone 用于故障关断。拓扑使用模块调制方式每周期更新的量是否变频率死区降压 / 升压ePWM1占空比CMPA否同步整流互补四开关升降压ePWM1 ePWM2占空比两个 CMPA否两腿分别互补半桥 LLCePWM1PFMTBPRD CMPA是互补死区固定全桥 LLCePWM1 ePWM2PFM两个 TBPRD CMPA是两腿互补移相全桥ePWM1 ePWM2相移TBPHS否两腿互补这张表说明了一件事六种拓扑没有一种需要外挂 PWM 芯片差别只在“每周期更新哪个寄存器”。LLC 改 TBPRDPSFB 改 TBPHSBuck 改 CMPA其余配置在初始化时一次性写好。这也是这类开发板能把这么多拓扑放进同一块 PCB 的根本原因——功率级是独立子板控制板只需要保留 PWM 输出、ADC 反馈和故障输入三类信号。2.3 ADC 采样点由 ePWM 决定不是想起就起电压模式的反馈只有 Vout 一个量采样质量直接决定环路能跑多高带宽。F28027 的 12 位 ADC 最高 4.6MSPS放在开关电源里真正的约束不是转换速率而是采样时刻与开关噪声的相位关系。同步 Buck 的开关沿上有 dv/dt 高达几十 V/µs 的 SW 节点噪声会通过地弹和寄生电容灌进采样保持电路采到沿上的电压值可能偏差几个 LSB。正确做法是把 ADC 启动事件SOC绑定到 ePWM 的周期匹配或比较匹配上。周期匹配靠近开关周期末尾比较匹配可以用 CMPB 自由摆放在远离两个开关沿的窗口内。推荐用 CMPB 做 SOC 源把 CMPB 值设在死区结束后、关断沿之前的位置这样采样点既避开了开通振铃又避开了关断尖峰。ISR 建议由 ADC 转换完成中断ADCINT触发而不是 ePWM 中断里读旧结果——差一个周期在电压模式里就是一次可见的过冲。2.4 最小可运行的 ePWM 初始化代码// ePWM1同步降压400kHz60MHz SYSCLK 不分频 EPwm1Regs.TBSTS.bit.SYNCIEN 0; // 不用同步输入 EPwm1Regs.TBCTL.bit.PRDLD TB_SHADOW; // 周期影子加载零事件生效 EPwm1Regs.TBPRD 150; // 60MHz / 400kHz 150 EPwm1Regs.TBCTL.bit.CTRMODE TB_COUNT_UP; // 升计数占空比调制 EPwm1Regs.TBCTL.bit.HSPCLKDIV TB_DIV1; EPwm1Regs.TBCTL.bit.CLKDIV TB_DIV1; // TBCLK 60MHz EPwm1Regs.CMPA.bit.CMPA 75; // 初始 50% 占空比 EPwm1Regs.AQCTLA.bit.CAU AQ_SET; // 升计数到 CMPA 拉高 EPwm1Regs.AQCTLA.bit.PRD AQ_CLEAR; // 到周期拉低 // 死区互补输出上升沿和下降沿各延迟约 416ns EPwm1Regs.DBCTL.bit.OUT_MODE DB_FULL_ENABLE; EPwm1Regs.DBCTL.bit.POLSEL DB_ACTV_HIC; // EPWM1B 与 A 互补 EPwm1Regs.DBRED 25; EPwm1Regs.DBFED 25; // ADC 触发周期事件启动 SOCA每个周期一次 EPwm1Regs.ETSEL.bit.SOCAEN 1; EPwm1Regs.ETSEL.bit.SOCASEL ET_CTR_PRD; EPwm1Regs.ETPS.bit.SOCAPRD ET_1ST;这里每个参数都有实际含义TBPRD 决定开关频率CMPA 决定占空比PRDLD 用影子加载保证占空比不会在一个周期内跳变DBRED/DBFED 共同决定死区时间SOCASEL 选周期事件是为了让 ADC 转换与开关周期严格同步。把这段代码改几个寄存器就能变成 LLC 或移相全桥的 PWM 初始化LLC 把 CTRMODE 保持升计数但每周期改 TBPRDPSFB 把 CTRMODE 改成 up-down 并增加一个从模块。2.5 比较器子系统不需要 CPU 的逐周期保护F28027 内部有 3 个模拟比较器每个带一个 10 位内部 DAC 做参考电压。比较器输出直接接到 Trip Zone 输入可配置成逐周期限流cycle-by-cycle或锁存关断one-shot。对电压模式来说这是比任何软件保护都可靠的兜底LLC 启动瞬间的谐振电容充电电流、PSFB 的变压器偏磁电流、Buck 的电感饱和全部可以在 100ns 内让 PWM 输出强制为安全电平。ISR 只做控制运算保护路径完全由硬件完成这是数字电源和“单片机做电源”最本质的区别。3. 降压、升压、升降压电压模式闭环的最小软件框架3.1 电压模式的 2P2Z 补偿器电压模式的受控对象是“占空比到输出电压”的传递函数。Buck 是二阶 LC 滤波Boost 和 Buck-Boost 在二阶基础上多一个右半平面零点RHPZ这是三种拓扑必须用不同补偿参数的核心原因。数字实现最常见的是 2P2Z 补偿器它是模拟 Type-III 的离散化形式两个零点补偿 LC 谐振峰一个积分消除稳态误差一个高频极点压制开关纹波。// 2P2Z 补偿器输出 u(n) b0*e(n)b1*e(n-1)b2*e(n-2)-a1*u(n-1)-a2*u(n-2) static float x10, x20, y10, y20; // 以下系数为 400kHz 采样率、穿越频率 25kHz、相位裕量 50° 的示例值 const float b0 0.42f, b1 -0.31f, b2 0.08f; const float a1 -1.42f, a2 0.49f; float compensator(float err) { float out b0*err b1*x1 b2*x2 - a1*y1 - a2*y2; x2 x1; x1 err; // 更新误差历史 y2 y1; y1 out; // 更新输出历史 return out; }注意差分方程里 a1、a2 前面是负号这是控制理论的约定写法很多刚转数字电源的工程师在这里少写一个负号导致环路正反馈。系数来源是连续域补偿器的双线性变换实际调试不要照抄示例值应该先在用 Mathcad 或 Python 画出的开环 Bode 图上验证穿越频率和相位裕量再进板子做阶跃测试。Buck 的穿越频率可以取 1/10 开关频率Boost 和 Buck-Boost 受 RHPZ 限制只能取 1/20 到 1/30。3.2 ISR 里的完整闭环采样、补偿、限幅、更新__interrupt void ADCINT1_ISR(void) { // 1. 读取 ADC 结果并换算回实际电压分压比 10.5 float vout (float)AdcResult.ADCRESULT0 * 3.3f / 4096.0f * 10.5f; // 2. 误差与补偿 float err vref - vout; float duty compensator(err); // 3. 限幅防止占空比越界和积分饱和冲击 if (duty 0.92f) duty 0.92f; if (duty 0.05f) duty 0.05f; // 4. 换算成 CMPA影子寄存器会在下一周期零事件统一生效 EPwm1Regs.CMPA.bit.CMPA (uint16_t)(duty * (float)EPwm1Regs.TBPRD); PieCtrlRegs.PIEACK.all PIEACK_GROUP1; // 响应 PIE 组 1 }整个 ISR 的核心在于“采样—计算—写寄存器”的顺序不能乱。vref 是目标电压对应的数字量duty 限幅的上下限不是随便给的下限 0.05 是为同步整流死区留余量防止占空比太小导致电感电流断续时负电流失控上限 0.92 是保护续流二极管反向恢复和电感斜率。CMPA 影子寄存器保证了同一个周期内占空比不会跳变两次所以 ISR 里直接赋值即可不需要额外的同步代码。ISR 由 ADCINT1 触发说明 ADC 转换已经完成读到的 ADCRESULT0 是本次开关周期的真实反馈而不是上一个周期的旧值。提示调试时先用固定占空比开环跑验证 Vout 与 Vin×D 的理论关系再启用补偿器。直接上闭环一旦补偿器符号反了就是一次炸管。3.3 从 buck 到 boost受控对象变了系数就得换Boost 的占空比到输出电压的小信号传函里有一个右半平面零点频率约等于 (1-D)²·R/(2πL)。以 12V 输入、24V 输出、L10µH、负载 4Ω 为例D0.5 时 RHPZ 频率只有 1.6kHz。RHPZ 的物理意义是占空比增大时电感储能时间变长输出在头几百纳秒反而会被“抽走”能量电压先跌后升。环路带宽高于 RHPZ 频率负载突变时就表现为持续振荡。所以 Boost 的电压环带宽只能取 2~5kHz补偿器用“一个零点加一个超前环节”而不是 Buck 的双零点。代码框架完全不用动只换 b0~a2 系数。F28027 的 Flash 足够放 3~4 组系数表用模式枚举索引即可。切换拓扑时最重要的不是改 PWM而是复位补偿器状态变量x1x2y1y20否则上一模式的积分项会带着新模式跑启动瞬间直接顶到限幅值。3.4 四开关升降压模式切换的滞环与相位关系四开关 Buck-Boost 是标题里“升降压”最常见的实现Q1/Q2 构成降压腿Q3/Q4 构成升压腿。电压模式下的工作区域按输入输出电压关系划分区域判定条件开关动作Buck 区Vin Vout 1VQ1/Q2 斩波Q3 常通Q4 常断过渡区|Vin - Vout| ≤ 1V两腿同时斩波占空比保持 50% 附近Boost 区Vin Vout - 1VQ3/Q4 斩波Q1 常通Q2 常断typedef enum { MODE_BUCK, MODE_TRANS, MODE_BOOST } Mode; Mode mode_select(float vin, float vout) { if (vin vout 1.0f) return MODE_BUCK; if (vin vout - 1.0f) return MODE_BOOST; return MODE_TRANS; }1V 的滞环是为了防止输入电压缓慢变化时模式在两个边界来回抖。模式切换瞬间占空比可能从 0.8 跳到 0.2所以检测到模式变化后要先复位补偿器状态再做寄存器切换。过渡区有另一个坑两腿同时斩波时如果 ePWM1 和 ePWM2 相位相同电感纹波电流叠加把 ePWM2 通过 TBPHS 配置成与 ePWM1 反相 180°纹波频率翻倍、幅值减半这是 F28027 同步链上只需要写一行相位寄存器就能解决的硬件问题。4. 半桥 LLC 与全桥 LLC把占空比调制换成 PFM4.1 LLC 谐振变换器工作原理频率就是控制量LLC 拓扑结构里的关键元件是三个谐振电容 Cr、谐振电感 Lr、励磁电感 Lm。Cr 和 Lr 串联后接入变压器原边Lm 与变压器并联由此形成两个谐振频率Lr 与 Cr 的串联谐振频率 fr以及 LrLm 与 Cr 的串联谐振频率 fm且 fm fr。开关频率在 fr 附近时增益接近 1效率最高频率高于 fr 时增益小于 1适合降压频率落在 fm 与 fr 之间时增益大于 1原边实现 ZVS、副边实现 ZCS。LLC 电路的输出调节不靠占空比而是靠频率移动增益曲线上的工作点——轻载升频降压、重载降频升压这就是“PFM”的本质。LLC 和反激、普通 DC-DC 的选型分界其实很清晰300W 以下反激的成本优势明显但软开关和窄频率变化范围让 LLC 在 300W 到 3kW 区间同时拿到了效率和 EMI 两个优势。很多数字电源板卡的完整方案是前级 PFC 后级 LLC但这块板的定位是后级变换器验证平台PFC 母线稳定之后LLC 输入电压基本恒定环路设计会简单很多。半桥 LLC 适合 100~500W全桥 LLC 适合 500W~3kW两者在控制代码上的差别远比功率级小。4.2 半桥与全桥的 PWM 配置差异半桥 LLC 只需要一个 ePWM 模块的两路互补输出固定 50% 占空比加固定死区Q1/Q2 交替导通变压器原边电压在 0 和 Vin 之间摆动。全桥 LLC 需要两个 ePWM 模块四路输出ePWM2 作为 ePWM1 的同步从模块且相位差为 0Q1/Q4 同时导通、Q2/Q3 同时导通原边电压在 ±Vin 之间摆动因此同样输入下全桥输出的能量翻倍。对比项半桥 LLC全桥 LLC开关管数量24原边电压摆幅0 ~ Vin±Vin变压器利用率半波励磁全波励磁适用功率100~500W500W~3kWPWM 资源ePWM1A/BePWM1 ePWM2 同步// 全桥 LLCePWM1 与 ePWM2 同相同频四路输出互补 50% EPwm1Regs.TBPRD 600; // 100kHz EPwm1Regs.CMPA.bit.CMPA 300; // 固定 50% // ePWM1 A/B 的动作限定与死区配置与 2.4 节相同 EPwm2Regs.TBSTS.bit.SYNCIEN 1; // 使能同步输入 EPwm2Regs.TBCTL.bit.SYNCOSEL TB_SYNC_IN; // 同步脉冲继续向后转发 EPwm2Regs.TBCTL.bit.PHSEN 1; // 使能相位加载 EPwm2Regs.TBPHS.bit.TBPHS 0; // 与 ePWM1 同相PHSEN 置 1 后ePWM2 每次收到 ePWM1 的同步脉冲就把 TBPHS 装入自己的时基计数器TBPHS0 表示完全同相。SYNCOSEL 设为 TB_SYNC_IN 表示同步脉冲直接透传板上如果还有第三个电源模块就要靠这一位。全桥的对角导通关系由 PCB 网表决定常见接法是 Q1、Q4 分别由 ePWM1A 和 ePWM2B 驱动Q2、Q3 由 ePWM1B 和 ePWM2A 驱动。移植代码后第一件事是核对网表全桥 LLC 烧管多半不是因为控制逻辑错而是对角管被接成了同臂管。4.3 PFM 频率更新的精度与软启动LLC 的频率调制在 F28027 上就是改 TBPRD。60MHz 时基下100kHz 对应 TBPRD600每个 LSB 对应约 166Hz1MHz 时对应 TBPRD60每个 LSB 对应约 16.7kHz频率分辨率急剧恶化。所以 LLC 板卡的开关频率一般控制在 100~300kHz不往上冲。改 TBPRD 时必须同步改 CMPA把 CMPA 设为 TBPRD/2 才能维持 50% 占空比漏改这一行变压器原边就会出现直流偏置。// LLC 软启动从 1.8 倍谐振频率逐周期降到谐振频率 #define LLC_FR 100000.0f // 谐振频率 100kHz #define LLC_FSTART 180000.0f // 启动频率 180kHz static float f_cur LLC_FSTART; void llc_softstart(void) { f_cur - 500.0f; // 每周期降 500Hz if (f_cur LLC_FR) f_cur LLC_FR; // 到达谐振频率即完成 uint16_t prd (uint16_t)(60.0e6f / f_cur); EPwm1Regs.TBPRD prd; EPwm1Regs.CMPA.bit.CMPA prd / 2; // 保持 50% 占空比 EPwm2Regs.TBPRD prd; // 从模块周期跟随 EPwm2Regs.CMPA.bit.CMPA prd / 2; }每周期 500Hz 的步进在 100kHz 下约 160 个周期完成软启动实际使用会把这个步长改成“每 8 个周期降一次”把启动过程拉长到 10~50ms配合输出电容的充电斜率。ePWM2 的 TBPRD 必须和 ePWM1 一起更新否则全桥变成两腿不同频变压器立即偏磁。轻载时 LLC 需要 burst 模式F28027 上不必改硬件利用动作限定器的软件强制位 AQSFRC 把两路输出拉低 N 个周期再恢复burst 进入阈值一般设在输出电压纹波的 1~3% 以内。4.4 LLC 电压模式闭环注意符号与带宽LLC 电压环的输出是频率调节方向与 Buck 相反输出电压偏高时升频、增益下降、电压回落所以补偿器输出直接加在频率上符号是正的。带宽只能取 1~3kHz因为 LLC 谐振网络本身是一个二阶系统在 fr 附近增益曲线陡、相频特性变化剧烈带宽推高很容易让相位裕量掉到 30° 以下。PI 就够用比例项增益别超过 5积分项负责消除稳态误差。启动阶段必须加“软启动完成”标志位完成前闭环输出不写 TBPRD否则软启动和电压环同时抢频率指令输出电压会出现一个先冲高再回落的台阶。5. 移相全桥电压模式TBPHS 相位调制与偏磁防护5.1 相位差就是等效占空比移相全桥的四个开关都工作在固定频率、50% 占空比控制量是两腿之间的相位差 θ。设 ePWM1 的腿为参考腿ePWM2 的腿延迟 θ变压器原边电压在 θ 对应的区间内为正脉冲、在半周期后为负脉冲正脉冲宽度恰好等于 θ。因此有效占空比 D_eff θ/180°θ 从 0 到 180° 变化输出从 0 到满载。电压模式在这里的含义非常直接Vout 环路算出一个相位角写进从模块的 TBPHS。PSFB 有一个原生缺陷叫占空比丢失。原边漏感 Lk 的电流换向需要时间这个时间内副边整流管虽然导通但变压器原边没有能量传递所以副边实际占空比小于 θ/180°。估算公式是 ΔD ≈ 4·Lk·f_s·I_o/(n·V_in)负载越重、频率越高、输入越低丢失越严重。设计时最大相位不要推到 170°留出 5~10° 的裕量给占空比丢失否则重载时输出电压会提前进入平台区。5.2 ePWM 主从同步与 TBPHS 的换算PSFB 在 F28027 上的标准做法ePWM1 为主模块输出参考腿ePWM2 为从模块输出移相腿两个模块都配置成 up-down 计数模式。ePWM1 每到零发同步脉冲ePWM2 收到后把 TBPHS 装入时基计数器并从该值开始计数等效于移相腿的零点相对参考腿延迟了 TBPHS 个时基周期。up-down 模式下完整开关周期是 2×TBPRD所以相位角 θ TBPHS / TBPRD × 180°。// 移相全桥ePWM1 参考腿ePWM2 移相腿up-down 模式 EPwm1Regs.TBPRD 300; // 100kHz60MHz TBCLK EPwm1Regs.TBCTL.bit.CTRMODE TB_COUNT_UPDOWN; EPwm1Regs.AQCTLA.bit.ZRO AQ_SET; // 回零拉高 EPwm1Regs.AQCTLA.bit.PRD AQ_CLEAR; // 到周期拉低即 50% 占空比 // ePWM1 的死区配置同 2.4 节 EPwm2Regs.TBPRD 300; EPwm2Regs.TBCTL.bit.CTRMODE TB_COUNT_UPDOWN; EPwm2Regs.TBSTS.bit.SYNCIEN 1; EPwm2Regs.TBCTL.bit.PHSEN 1; EPwm2Regs.TBPHS.bit.TBPHS 0; // 初始零相位 EPwm2Regs.AQCTLA.bit.ZRO AQ_SET; EPwm2Regs.AQCTLA.bit.PRD AQ_CLEAR; // ePWM2 的死区配置不能省滞后腿同样需要互补死区闭环更新在 ISR 里做核心是 TBPHS 的换算和限幅float theta_deg psfb_pi(vout); // 电压环输出相位角 // 相位下限 5° 保证超前腿有足够 ZVS 换流时间上限 170° 给占空比丢失留裕量 if (theta_deg 5.0f) theta_deg 5.0f; if (theta_deg 170.0f) theta_deg 170.0f; uint16_t phase (uint16_t)(theta_deg * (float)EPwm1Regs.TBPRD / 180.0f); EPwm2Regs.TBPHS.bit.TBPHS phase;TBPHS 的值在下一个同步事件到来时才会被装入计数器所以 ISR 里随时随地写都是安全的不存在写一半导致的毛刺。真正要算清楚的是相位分辨率100kHz 时 TBPRD300相位 LSB 为 0.6°轻载稳压完全够用300kHz 时 TBPRD100相位 LSB 变成 1.8°输出电压步进会明显变粗。这是选开关频率之前就要做的算术题不是调不出来才回来改频率。注意移相腿的死区时间和参考腿必须一致并且 TBPHS 的最小值要大于死区时间对应的角度否则两腿相位差小于死区时次级会出现直通窗口。5.3 两腿 ZVS 难度不同PSFB 的两条腿换向条件完全不对等。参考腿换向时变压器原边电流正值负载电流能量足够把开关管结电容充放电完成ZVS 容易实现。移相腿换向时变压器处于续流状态原边电流只剩下环流分量轻载时这个电流很小结电容来不及放完电管子就开通了ZVS 丢失。F28027 层面能做的调整很有限一是把死区时间按 2·Coss·Vin/Ipk 估算后适当放宽二是用副边同步整流减小反射电流的畸变三是接受轻载硬开关、用 burst 模式绕过最恶劣的工作点。占空比丢失和 ZVS 之间本身就是一对矛盾调参时不要试图同时优化两个指标。5.4 偏磁问题与电压模式的数字防护变压器偏磁是移相全桥电压模式的头号可靠性问题。相位不对称、开关管导通压降不一致、驱动延迟差异都会造成原边正负伏秒不等励磁电流的直流偏置逐周期累积最终变压器饱和。硬件上最有效的兜底是原边串联隔直电容软件上可以做三层第一层把原边电流接入 F28027 比较器正负阈值各设一个超限立即 trip第二层用 ADC 周期性采原边电流计算直流分量超过额定值 0.5% 就向反方向修正相位第三层是把相位更新的低通滤波时间常数调大防止环路抖动被直接映射成偏磁。前两层是必须的第三层只是锦上添花。6. 上电前的验证顺序与三个容易翻车的参数6.1 先算三个分辨率再写环路写任何控制代码之前先把三个数算出来占空比分辨率、频率分辨率、相位分辨率。它们都由 60MHz 时基和开关频率决定开关频率TBPRD升计数TBPRDup-down占空比 LSB相位 LSB100kHz6003000.17%0.6°200kHz3001500.33%1.2°400kHz150750.67%2.4°相位 LSB 到 2.4° 时轻载输出电压步进可能超过规格要求此时要么降频要么换带 HRPWM 的 C2000 型号。这个决定要在画 PCB 之前做因为 LC 参数和变压器匝比都依赖开关频率。6.2 开环到闭环的五步验证用示波器看开关节点波形确认频率、死区、上升沿位置与配置一致对 LLC 和 PSFB 要同时看两腿波形确认同步关系。用 GPIO 翻转法验证 ISR 执行时刻在 ISR 开头翻转一个 GPIO示波器确认该翻转沿落在开关沿之后至少一个死区时间否则 ADC 采样点需要调整。开环固定控制量跑起来手动给占空比、频率或相位看 Vout 是否符合理论关系例如 Buck 的 VoutVin×DPSFB 的 VoutVin×θ/180°×n。闭环先给一半设计带宽的系数用电子负载做 25% 和 50% 阶跃看恢复时间和阻尼不应出现持续振荡。保护测试短路输出确认 Trip Zone 响应后开关管电流被限制在设定值比较器阈值先用 120% 额定电流再逐步收紧。6.3 三个翻车参数死区时间。LLC 和 PSFB 的死区不是越小越好按 2·Coss·Vin/Ipk 估算起步Buck 同步整流的死区过大会让电感电流反向、出现过大的负电流过小则直通。F28027 的 DBRED/DBFED 以 TBCLK 周期为单位改频率时必须同步检查死区对应的度数是否变化。ADC 采样点距离开关沿太近。开关噪声能在几个纳秒内灌进采样保持电容F28027 的 ADC 没有片内抗混叠滤波器唯一防线就是采样时刻。用 CMPB 做 SOC 源把采样点摆到死区结束后 500ns 开外。积分饱和。电压模式在启动瞬间误差很大2P2Z 或 PI 输出会顶到限幅值限幅后若不处理误差继续累积恢复稳态时会产生几十毫秒的过冲。抗饱和的标准做法是输出达到限幅时停止积分项更新即把误差清零再进补偿器而不是简单截断输出。最后给一个所有拓扑通用的验证技巧用两路 GPIO 引出 ePWM 波形不接功率级直接在 5V 逻辑下用示波器测两腿相位θ Δt·f·360° 换算后与 TBPHS 设置核对这一条确认无误后再上万伏级母线能省掉半小时的炸管排查时间。本文还有配套的精品资源点击获取
返回列表