4. 高分辨率ePWM与数字PWM生成
在数字电源、电机驱动和并网逆变器中,PWM 的“分辨率”直接决定了控制精度与谐波分布。传统 ePWM 以系统时钟(SYSCLK)计数,当开关频率较高或 SYSCLK 较低时,一个计数周期内可用的时间台阶很少,占空比只能以较粗的步长变化,导致输出电压/电流出现量化误差,表现为低频谐波抬升、死区补偿不精细、多相并联时均流变差。C2000 的 ePWM 模块通过死区、移相、同步、斩波和高分辨率(HRPWM)五类机制,把“时间精度”从纳秒级推进到约 150 ps 级,从而在相同开关频率下显著降低谐波、提高控制环带宽利用率。
一、ePWM 的时间基准与分辨率来源
每个 ePWM 模块的核心是时基计数器 TBCTR,它由 TBCLK 驱动。TBCLK 由 SYSCLK 经时基分频器(HSPCLKDIV、CLKDIV)得到。设 SYSCLK=100 MHz,若不分频,TBCLK 周期为 10 ns;若开关频率为 100 kHz,则一个开关周期为 10 μs,对应 1000 个计数台阶,占空比分辨率为 0.1%。当开关频率升到 500 kHz,台阶只剩 200 个,分辨率降到 0.5%,量化误差明显。HRPWM 的做法是在 CMPA/CMPB 比较值上增加一个 8 位微边沿定位器(MEP),把边沿位置细分到 TBCLK 的 1/256 左右,使有效分辨率提升约两个数量级。需要注意:HRPWM 只作用于边沿位置,不改变载波频率;且 MEP 的可用范围受工艺、温度和电压影响,需通过 SFO(Scale Factor Optimizer)在运行时校准。
二、死区、移相、同步与斩波的分工
死区(DB)用于互补桥臂,防止上下管直通。DBCTL 可选择 A 通道上升沿延迟、B 通道上升沿延迟,或两者独立;典型值 100~500 ns,需大于功率管关断时间加驱动传输延迟。移相(Phase)通过 TBPHS 设置相位偏移,使多个 ePWM 模块的载波错开,用于多相 Buck、交错并联 PFC 和三相逆变。同步(Sync)通过 EPWMxSYNCI/EPWMxSYNCO 链路,让从模块在收到同步脉冲时把 TBCTR 装载为 TBPHS,从而保持固定相位关系。斩波(Chopper)则用高频载波对 PWM 输出进行调制,常用于变压器隔离栅极驱动,以减小脉冲变压器体积。四者关系可用下图概括:时基决定载波,比较值决定占空比,死区决定互补边沿间隔,移相/同步决定多模块相对位置,斩波决定输出脉冲的高频包络。
三、关键配置与参数示例
下面给出一个 100 kHz、互补输出、死区 200 ns、HRPWM 使能的配置片段,用于说明各寄存器之间的配合关系。示例参数为教学假设,实际需按器件手册和功率级验证。
// 假设 SYSCLK = 100 MHz, TBCLK = 100 MHz (HSPCLKDIV=1, CLKDIV=1)
// 开关频率 100 kHz → TBPRD = 100 MHz / 100 kHz / 2 = 500 (增减计数)
EPwm1Regs.TBPRD = 500;
EPwm1Regs.TBPHS.bit.TBPHS = 0; // 主模块相位 0
EPwm1Regs.TBCTL.bit.CTRMODE = 2; // 增减计数
EPwm1Regs.TBCTL.bit.PHSEN = 0; // 主模块不接收同步
EPwm1Regs.TBCTL.bit.SYNCOSEL = 1; // 计数到 0 时输出 SYNCO
// 占空比 40%:CMPA = TBPRD * (1 - 0.4) = 300(增减计数下)
EPwm1Regs.CMPA.bit.CMPA = 300;
EPwm1Regs.CMPAHR.bit.CMPAHR = 0x80; // HRPWM 微边沿,约半 MEP 步进
// 死区 200 ns:DBRED = 200 ns / 10 ns = 20
EPwm1Regs.DBCTL.bit.OUT_MODE = 3; // 使能 RED 和 FED
EPwm1Regs.DBCTL.bit.POLSEL = 2; // A 高有效,B 反相
EPwm1Regs.DBRED.bit.DBRED = 20;
EPwm1Regs.DBFED.bit.DBFED = 20;
// HRPWM 使能
EPwm1Regs.HRCNFG.bit.HRLOAD = 1; // 在 CTR=0 时装载 HR 值
EPwm1Regs.HRCNFG.bit.EDGMODE = 1; // 上升沿高分辨率
从模块 EPwm2 若需移相 90°,则设置 TBPHS = TBPRD × 90°/180° = 250(增减计数下相位以半周期为参考),并使能 PHSEN,同时把 EPWM1SYNCO 连到 EPWM2SYNCI。这样 EPwm2 的载波相对 EPwm1 滞后 90°,多相并联时输入电流纹波相互抵消,等效纹波频率提高 4 倍。
四、结果观察与判断依据
配置完成后,可用示波器同时观察 EPWMxA、EPWMxB 和电感电流。判断要点:第一,互补两路之间应存在约 200 ns 的明显死区,且死区期间两路均为低电平;第二,移相模块的载波过零点应与主模块错开 90°,用双通道上升沿触发即可测量;第三,开启 HRPWM 后,占空比微调时输出脉宽应出现小于 10 ns 的连续变化,而不是跳变一个 TBCLK 台阶;第四,用功率分析仪观察输出电压谐波,在相同占空比下,HRPWM 使能后低次谐波(如 3、5、7 次)应有可测下降,具体幅度取决于原量化误差大小。若死区过大,输出电压基波幅值会下降、低次谐波反而上升;若 HRPWM 未校准,MEP 步进可能非线性,表现为脉宽抖动,此时应运行 SFO 库函数重新计算比例因子。