深入解析TI C2000 eHRPWM:PWM斩波、故障保护与高精度控制实战
1. 项目概述与核心价值在数字电源和电机驱动的世界里PWM脉冲宽度调制就像一位指挥家通过精确控制开关管的“开”与“关”的节奏来塑造我们所需的电压与电流波形。然而随着系统对效率、动态响应和电磁兼容性的要求越来越高这位指挥家手中的“指挥棒”——也就是PWM的边沿精度——变得至关重要。尤其是在高开关频率下传统的PWM生成方式会面临一个尴尬的境地系统时钟周期是固定的比如10纳秒对应100MHz时钟那么PWM边沿的最小移动步长也只能是10纳秒。这意味着当你需要微调占空比时可能只能以1%甚至更大的步长跳跃这在追求极致性能的伺服驱动或高效率DC-DC变换器中会直接导致输出电压纹波增大、环路稳定性变差甚至产生可闻的噪声。eHRPWMEnhanced High-Resolution Pulse-Width Modulator增强型高分辨率脉宽调制器技术的出现就是为了解决这个“指挥棒不够精细”的难题。它不再满足于以系统时钟为最小单位而是引入了一种名为“微边沿定位器”MEP Micro Edge Positioner的“显微镜”机制。MEP能够在一个粗粒度的系统时钟周期内再进行多达255次的细分将边沿定位的精度从纳秒级提升到了皮秒级例如150-180皮秒。这就好比指挥家不仅能按拍子指挥还能精确控制到每一个音符的微小颤音从而实现了对功率变换过程的极致控制。本文将从一线工程师的视角带你深入TI C2000系列DSP中eHRPWM模块的腹地。我们不会停留在手册概述而是聚焦于三个最核心、也最体现其设计精妙与实用价值的子模块PWM斩波PWM-Chopper子模块、故障保护Trip-Zone子模块以及高分辨率PWMHRPWM子模块。我会结合实际的寄存器配置、波形分析和避坑经验为你拆解它们如何协同工作在复杂的电力电子系统中实现高精度、高可靠性的控制。无论你是正在调试一款高性能数字电源还是设计精密的电机驱动器理解这些细节都将让你在解决纹波、噪声、保护响应等实际问题时拥有更清晰的思路和更有效的手段。2. eHRPWM架构总览与核心子模块定位在深入细节之前我们有必要先俯瞰eHRPWM的全貌。它不是一个简单的PWM发生器而是一个高度模块化、可配置的“控制中心”。一个完整的ePWM模块eHRPWM是其增强版通常包含时间基准TB、计数比较CC、动作限定AQ、死区生成DB、PWM斩波PC、故障保护TZ、事件触发ET以及高分辨率HRPWM等多个子模块。你可以把它想象成一个高度自动化的工厂流水线时间基准TB是流水线的节拍器产生基础的计数周期CTR0到CTRPRD。计数比较CC和动作限定AQ是核心加工站根据预设的CMPA/CMPB值在特定的节拍点如CTRCMPA触发输出动作置高、拉低、翻转。死区生成DB是安全质检员确保一对互补的PWM信号如EPWMxA和EPWMxB不会同时导通防止桥臂直通短路。PWM斩波PC和高分辨率HRPWM则是精密加工和微雕部门负责对基础PWM波形进行“精修”。故障保护TZ是整个工厂的紧急制动系统一旦外部检测到过流、过压等危险信号它能以纳秒级速度强制PWM输出进入安全状态。事件触发ET是生产报告系统在特定事件如计数器归零发生时向CPU发出中断通知其进行新一轮的控制计算。本文的核心将放在PC、TZ和HRPWM这三个最能体现eHRPWM“增强”特性的子模块上。它们分别解决了驱动优化、系统保护和精度提升这三个关键工程挑战。3. PWM斩波PWM-Chopper子模块驱动变压器的“智慧心跳”PWM斩波子模块常被工程师们昵称为“剁波模块”。它的主要应用场景是驱动脉冲变压器隔离的门极驱动电路。在高压、高边驱动或需要电气隔离的场合我们常用一个小型脉冲变压器来传递驱动信号。但变压器有个特性它只能传递交流变化量。如果直接给变压器初级输入一个长时间的直流电平即普通的PWM高电平变压器会很快磁饱和导致次级无法输出有效的驱动电压功率开关管就会失控。3.1 工作原理从单脉冲到持续脉冲串PWM斩波模块的智慧在于它将输入的一个长脉冲EPWMxA in转换成一个更适合变压器传输的脉冲串EPWMxA out。这个转换过程包含两个关键阶段首脉冲One-Shot Pulse这是一个宽度可编程的独立高脉冲。它的能量较高目的是为了快速、可靠地开启功率开关管如MOSFET或IGBT。想象一下启动一个沉重的飞轮最初那一下需要很大的推力。维持脉冲Sustaining Pulses在首脉冲之后模块会生成一系列频率和占空比均可编程的连续脉冲。这些脉冲的能量较低但足以维持开关管处于导通状态防止其因门极电荷泄露而误关断。这就好比飞轮转动起来后只需要很小的力就能维持其运动。模块的载波时钟PSCLK由系统时钟SYSCLKOUT分频而来。通过配置PCCTL寄存器的CHPFREQ[2:0]位你可以设置维持脉冲的频率即载波频率。例如SYSCLKOUT100MHz设置CHPFREQ001b除以4则PSCLK频率为25MHz周期为40ns。3.2 关键寄存器配置与计算配置这个模块主要就是和PCCTL寄存器打交道。我们需要关注三个核心参数首脉冲宽度OSHTWTH由PCCTL[7:4]这4位控制取值范围1-16。其实际宽度计算公式为T_one_shot T_sysclk * 8 * OSHTWTH其中T_sysclk是系统时钟周期。例如T_sysclk 10ns (100MHz)OSHTWTH 4则首脉冲宽度T_one_shot 10ns * 8 * 4 320ns。实操心得首脉冲宽度需要根据你的开关管门极电荷Qg和驱动电流能力来估算。宽度太短不足以完全开启管子会导致导通损耗增加宽度太长则浪费能量且可能加剧变压器饱和。通常可以从器件手册推荐的驱动电压上升时间开始调试。维持脉冲占空比CHPDUTY由PCCTL[2:0]这3位控制提供7种选择12.5% 25% 37.5% 50% 62.5% 75% 87.5%。这个占空比决定了维持阶段能量注入与泄放的比例。注意事项占空比的选择直接影响变压器磁芯的伏秒积平衡。占空比偏离50%越多变压器磁芯的直流偏置越大越容易饱和。在满足维持门极电压的前提下通常优先选择50%占空比以实现最佳的磁平衡。如果驱动能力不足导致门极电压在维持期间跌落可以适当提高占空比如62.5%。维持脉冲频率CHPFREQ由PCCTL[10:8]控制决定PSCLK相对于SYSCLKOUT的分频比1, 2, 4, 8, 等。维持脉冲频率越高脉冲串越密集对变压器的频率要求也越高但维持效果更平稳。避坑指南频率的选择需与变压器设计匹配。频率太高可能超出变压器磁芯材料的适用频率范围导致铁损剧增频率太低则维持脉冲间隔太长可能导致门极电压在间隔期内下降过多。一个常见的起点是设置在几百kHz到1MHz左右。3.3 配置示例与波形观测假设我们需要为一个IGBT驱动设计斩波参数。系统时钟100MHz目标首脉冲宽度约300ns维持脉冲频率2.5MHz周期400ns占空比50%。计算首脉冲宽度T_sysclk 10ns。目标T_one_shot ≈ 300ns。代入公式300ns 10ns * 8 * OSHTWTHOSHTWTH ≈ 3.75。取整为4则实际T_one_shot 10ns * 8 * 4 320ns。这个值在可接受范围内。因此设置PCCTL[7:4] 0100b。设置维持脉冲目标PSCLK周期 1/2.5MHz 400ns。T_sysclk10ns所以分频比 400ns / 10ns 40。查找寄存器CHPFREQ不支持直接分频40。最接近的是CHPFREQ011b分频8PSCLK周期80ns或100b分频16周期160ns。我们选择011b得到PSCLK频率12.5MHz周期80ns。这意味着维持脉冲的实际频率是12.5MHz远高于目标。这里就体现了理论和实际的取舍手册提供的频率是离散的。我们需要评估12.5MHz是否在变压器和驱动电路的能力范围内。如果不行则需选择分频166.25MHz并接受更低的维持频率。这里假设可以接受设置PCCTL[10:8] 011b。设置维持脉冲占空比选择50%对应PCCTL[2:0] 100b。使能斩波模块最后将PCCTL[15] (CHPEN)位设置为1使能整个PWM斩波功能。配置完成后用示波器同时测量EPWMxA输入斩波前和输出斩波后波形。你应该能看到一个长的高电平被转换成一个320ns的宽脉冲紧跟一串频率为12.5MHz、占空比50%的窄脉冲串直到输入EPWMxA变为低电平。4. 故障保护Trip-Zone子模块系统的“紧急制动”在电力电子系统中过流、过压、过热等故障是致命的。故障保护子模块TZ就是eHRPWM内置的硬件级快速保护电路其响应速度远快于软件中断处理。它通过专用的GPIO引脚TZ1~TZn接收外部故障信号并立即对PWM输出采取强制动作。4.1 两种保护模式Cycle-By-Cycle与One-ShotTZ子模块提供两种不同响应策略的保护模式理解其区别是正确配置的关键逐周期Cycle-By-Cycle, CBC保护适用于电流限流等需要持续监控的场景。当TZ引脚故障信号有效时模块立即对PWM输出执行预设动作如拉低。关键特性在于该保护状态会在每个PWM周期开始时当时间基准计数器TBCNT0时自动复位。如果此时故障信号已消失PWM输出恢复正常如果故障依然存在则保护动作再次立即生效。这就像一个自动复位的断路器允许系统在故障出现时立即限制电流并在下一个周期尝试恢复。单次One-Shot, OSHT保护适用于严重短路、过压等需要彻底关断并锁存的故障。当故障触发时模块执行预设动作并且该状态会被锁存直到软件主动清除标志位。即使外部故障信号消失PWM输出也保持在被强制状态如高阻态防止故障扩大。这就像熔断的保险丝需要人工干预复位才能恢复。4.2 寄存器配置与实战策略配置TZ模块主要涉及以下几个寄存器TZSELTrip-Zone选择寄存器决定哪个TZ引脚TZ1~TZn连接到本ePWM模块以及该引脚触发哪种保护模式CBC或OSHT。例如TZSEL[CBC1]1表示TZ1引脚作为CBC事件源TZSEL[OSHT2]1表示TZ2引脚作为OSHT事件源。TZCTLTrip-Zone控制寄存器定义当故障发生时EPWMxA和EPWMxB输出引脚分别采取什么动作。动作选项包括00: 强制为高阻态Hi-Z01: 强制为高电平10: 强制为低电平11: 无动作忽略故障TZEINTTrip-Zone使能中断寄存器使能CBC或OSHT事件触发CPU中断以便软件记录故障类型或进行后续处理。TZFLG标志寄存器和TZCLR清除寄存器用于查询和清除故障标志位。典型配置场景分析 假设我们有一个三相逆变桥驱动电机使用三个ePWM模块EPWM1, EPWM2, EPWM3生成六路PWM。TZ1引脚连接直流母线过流检测电路TZ2引脚连接IGBT去饱和Desat保护电路。对于TZ1母线过流我们通常配置为CBC模式。因为过流可能是瞬态的或负载突变引起的系统需要在限流后尽快尝试恢复。动作可以设置为将所有高侧PWM拉低或所有PWM拉低实现快速限流。// 以EPWM1为例配置TZ1为CBC触发时A、B路均拉低 EPwm1Regs.TZSEL.bit.CBC1 1; // TZ1 作为 CBC 源 EPwm1Regs.TZCTL.bit.TZA TZ_FORCE_LO; // 2 强制低 EPwm1Regs.TZCTL.bit.TZB TZ_FORCE_LO; // 2 强制低 EPwm1Regs.TZEINT.bit.CBC 1; // 使能CBC中断对于TZ2IGBT去饱和保护这通常意味着IGBT已发生直通短路是严重故障。必须配置为OSHT模式并强制所有PWM输出为高阻态Hi-Z彻底关闭驱动并锁存故障状态等待软件检查。// 配置TZ2为OSHT触发时A、B路为高阻 EPwm1Regs.TZSEL.bit.OSHT2 1; // TZ2 作为 OSHT 源 EPwm1Regs.TZCTL.bit.TZA TZ_HIZ; // 0 高阻态 EPwm1Regs.TZCTL.bit.TZB TZ_HIZ; // 0 高阻态 EPwm1Regs.TZEINT.bit.OST 1; // 使能OSHT中断重要注意事项异步TripTZ输入是异步的即使系统时钟丢失只要故障引脚信号有效保护仍能动作。这是硬件安全的最后屏障。动作优先级OSHT事件的优先级通常高于CBC。一旦发生OSHT故障即使同时有CBC事件也会执行OSHT设定的动作。软件清除OSHT故障标志必须由软件写TZCLR[OST]1来清除。在清除前务必排查故障根源否则清除后可能立即再次触发。引脚滤波TZ引脚是高速故障输入通常需要硬件RC滤波以抗干扰但滤波时间常数要远小于需要保护的死区时间通常100ns否则会失去保护意义。5. 高分辨率PWMHRPWM子模块皮秒级的精度魔法当你的开关电源频率跑到500kHz甚至1MHz以上或者伺服驱动需要极其平滑的转矩控制时传统PWM那“粗糙”的边沿定位就成了性能瓶颈。HRPWM子模块的核心——微边沿定位器MEP就是为了打破系统时钟周期的限制。5.1 MEP原理细分系统时钟周期传统PWM的边沿位置由比较寄存器CMPA的值决定其调整步长是一个系统时钟周期T_sysclk。HRPWM在CMPA的基础上增加了一个8位的扩展寄存器CMPAHR或用于相位控制的TBPHSHR。CMPAHR控制着在一个T_sysclk的“粗调”步长内进行多达255步的“微调”。假设T_sysclk 10ns (100MHz)MEP步进时间T_mep 150ps。那么在一个粗调步长内MEP可以提供10ns / 150ps ≈ 66个可选的微调位置实际芯片的MEP步数/周期是一个固定值需查数据手册。边沿的最终位置由CMPA * T_sysclk CMPAHR * T_mep共同决定。5.2 配置模式与计算流程HRPWM主要支持两种控制模式通过HRCNFG寄存器配置占空比控制模式Duty Control精细控制上升沿或下降沿的位置用于调节PWM占空比。这是最常用的模式。相位控制模式Phase Control精细控制整个PWM脉冲的相位偏移常用于移相全桥等拓扑。配置与计算实战 假设我们需要在开关频率F_pwm 1MHz (T_pwm1000ns)系统时钟F_sysclk100MHz (T_sysclk10ns)的条件下输出一个40.5%的占空比。传统PWM的占空比分辨率是1 / (T_pwm / T_sysclk) 1/100 1%无法精确输出40.5%。使用HRPWM则可以。步骤1计算传统CMPA值粗调PWM周期对应的计数器值TBPRD T_pwm / T_sysclk 1000ns / 10ns 100。 目标高电平时间 T_pwm * Duty 1000ns * 0.405 405ns。 传统CMPA值 405ns / 10ns 40.5。取整数部分所以CMPA 40。这对应的高电平时间是400ns占空比40%误差为0.5%。步骤2计算CMPAHR值微调我们需要补偿那缺失的5ns (405ns - 400ns)。首先需要知道每个MEP步进代表的时间。假设数据手册给出在100MHz下每个系统时钟周期内包含的MEP步数MEP_STEPS_PER_CLK 55这个值因芯片和温度电压而异可通过HRPWM自检功能校准。 那么每个MEP步的时间T_mep T_sysclk / MEP_STEPS_PER_CLK 10ns / 55 ≈ 181.8ps。 需要补偿的MEP步数 缺失时间 / T_mep 5ns / 181.8ps ≈ 27.5取整为28步。 CMPAHR寄存器的值计算需要按特定格式CMPAHR (MEP步数 8) 0x800x80是四舍五入的偏置常数有时是0x180具体见手册。 所以CMPAHR (28 8) 0x80 0x1C00 0x80 0x1C80。步骤3软件实现在实际代码中TI提供了库函数来简化计算。但理解原理后你可以这样实现#include driverlib/hrpwm.h“ uint16_t ui16CmpA; uint16_t ui16HrpwmCmpA; float32_t f32Duty 0.405; // 目标占空比 uint32_t ui32TbPrd 100; // TBPRD值 float32_t f32MepScaleFactor; // MEP缩放因子与MEP_STEPS_PER_CLK相关 // 1. 计算传统CMPA值整数部分 ui16CmpA (uint16_t)(f32Duty * (float32_t)ui32TbPrd); // 结果为40 // 2. 计算小数部分并转换为MEP步数 float32_t f32Fraction (f32Duty * (float32_t)ui32TbPrd) - (float32_t)ui16CmpA; // 0.5 uint16_t ui16MepSteps (uint16_t)(f32Fraction * f32MepScaleFactor 0.5); // 四舍五入假设f32MepScaleFactor55 结果为28 // 3. 合成CMPAHR值 (假设偏置为0x80) ui16HrpwmCmpA (ui16MepSteps 8) | 0x0080; // 结果为0x1C80 // 4. 配置HRPWM模块并写入寄存器 HRPWMConfig(EPWM1_BASE, HRPWM_CHANNEL_A, HRPWM_DUTY_MODE, HRPWM_RISING_EDGE); // 配置为A通道占空比模式控制上升沿 EPwm1Regs.CMPA.half.CMPA ui16CmpA; // 写入CMPA EPwm1Regs.CMPA.half.CMPAHR ui16HrpwmCmpA; // 写入CMPAHR5.3 注意事项与自检功能占空比范围限制HRPWM的MEP逻辑并非在整个PWM周期都有效。通常在周期开始后的前3-6个系统时钟周期内MEP是不工作的。这意味着极低占空比如3%和极高占空比如97%可能无法使用高分辨率模式。手册中会有明确说明。对于需要极低占空比高精度的应用可以考虑使用“下降沿控制”模式。MEP步长校准MEP_STEPS_PER_CLK会随芯片工艺、温度和电压变化。TI的芯片通常内置了HRPWM自检Auto-Conversion功能。上电后或定期运行此功能可以自动测量并校准当前的MEP步长确保精度。强烈建议在系统初始化时使能并运行自检。影子寄存器CMPAHR寄存器也有影子寄存器机制。在up-down计数模式下要正确配置加载时机CTRPRD或CTR0以避免PWM周期中间发生跳变。6. 子模块协同应用实例数字降压Buck变换器为了将上述三个子模块串联起来我们以一个数字电压模式控制的同步Buck变换器为例描述eHRPWM的典型配置思路。系统目标输入12V输出5V/10A开关频率500kHz采用峰值电流保护使用脉冲变压器隔离驱动高边MOSFET。主PWM生成TB CC AQEPWM1A作为控制主开关管高边的信号。设置TBPRD (系统时钟频率) / (开关频率) - 1。若系统时钟100MHz则TBPRD 100MHz/500kHz - 1 199。配置为递增-递减计数模式Up-Down以生成对称的PWM有利于滤波。配置AQ模块使CTRCMPA时EPWM1A输出拉高CTRCMPA时输出拉低对于Up-Down模式需设置两次动作。高边驱动与PWM斩波PCEPWM1A输出后接入PWM斩波子模块。根据所选脉冲变压器和MOSFET的Qg计算并配置首脉冲宽度OSHTWTH例如设为5对应400ns。设置维持脉冲频率CHPFREQ为2MHz左右分频50需选择最接近的预分频值占空比CHPDUTY设为50%。使能CHPEN。这样EPWM1A输出的长脉冲被转换为适合变压器传输的脉冲串驱动高边MOSFET。电流保护与Trip-ZoneTZ使用电流采样电阻和比较器在过流时产生一个低电平故障信号连接到TZ1引脚。将TZ1配置为逐周期CBC保护模式动作设置为强制EPWM1A和EPWM1B同步整流管驱动为低电平。使能CBC中断。这样一旦过流PWM立即关闭保护并在下一个周期开始时自动尝试恢复限流同时CPU收到中断可进行记录或调整。电压环精度与HRPWM500kHz开关频率下传统PWM分辨率 log2(100MHz/500kHz) ≈ 7.64 bits。这意味着电压环输出的占空比控制字其最小变化会导致输出电压阶跃约5V / 2^7.64 ≈ 30mV。对于要求输出纹波10mV的应用这不够。启用HRPWM功能控制EPWM1A的上升沿或下降沿。在电压环PID计算得到占空比后使用前述方法将浮点占空比分解为CMPA和CMPAHR写入。假设MEP步长为150ps则HRPWM的有效分辨率提升至log2(100MHz/500kHz) log2(T_sysclk/T_mep) ≈ 7.64 log2(66) ≈ 7.64 6.04 13.68 bits。此时占空比最小变化对应的电压阶跃降低到5V / 2^13.68 ≈ 0.5mV足以满足苛刻的纹波要求。事件触发与中断ET配置ET模块在CTRPRD周期点或CTR0零点触发中断。在此中断服务程序中读取ADC采样的输出电压和电感电流执行PID运算更新下一个周期的CMPA和CMPAHR值实现闭环控制。通过这样的配置eHRPWM的三个核心子模块各司其职PC确保了驱动的可靠性TZ提供了硬件级的安全保障而HRPWM则赋予了控制系统前所未有的精度。这三者结合使得基于C2000的数字电源能够在高频率、高效率、高可靠性的道路上走得更远。7. 调试技巧与常见问题排查即使理解了原理实际调试中依然会遇到各种问题。以下是一些从项目实践中总结的要点问题1PWM斩波后驱动变压器发热严重。可能原因维持脉冲频率或占空比设置不当导致变压器磁芯饱和。排查步骤用电流探头观察变压器初级电流波形。如果电流波形呈持续上升的三角波或尖峰很可能是饱和。降低维持脉冲频率增大CHPFREQ分频比。将维持脉冲占空比调整为50%。检查首脉冲宽度是否过长。过长的首脉冲会注入过多单极性能量加剧偏磁。确认变压器磁芯材料和匝数设计是否满足工作频率要求。问题2Trip-Zone保护误动作系统频繁进入保护。可能原因TZ引脚受到噪声干扰保护阈值设置太接近正常工作电流硬件滤波电路时间常数不合理。排查步骤用示波器高频档直接测量TZ引脚波形观察是否有毛刺。在TZ引脚到地之间增加一个几十到几百皮法的小电容进行高频滤波注意不能影响保护速度。检查比较器参考电压或采样电阻精度适当提高保护阈值需在安全裕度内。区分是CBC还是OSHT误触发。如果是CBC可能是负载瞬态变化如果是OSHT则可能是严重干扰或硬件故障。问题3启用HRPWM后PWM波形出现抖动或占空比不准。可能原因MEP步长未校CMPAHR影子寄存器加载点配置错误占空比计算中存在整数溢出或精度丢失。排查步骤首要步骤运行HRPWM自检Auto-Conversion程序获取当前准确的MEP缩放因子MEP Scale Factor。检查HRPWM配置寄存器HRCNFG确认影子加载模式Shadow Mode与CMPA的加载模式一致例如都在CTR0时加载。在调试器中观察计算得到的CMPA和CMPAHR值是否符合预期。特别注意浮点数到定点数转换时的四舍五入。使用高精度示波器最好带高分辨率采集模式测量PWM边沿观察其是否稳定。抖动可能源于系统时钟PLL的抖动。问题4高开关频率下HRPWM精度下降甚至失效。可能原因超出了HRPWM的有效工作范围。每个系统时钟周期内可用的MEP步数是有限的。当PWM频率很高导致每个PWM周期对应的系统时钟数很少时可用于高分辨率调制的“空间”就很小了。排查步骤查阅芯片数据手册中HRPWM章节的表格确认在当前系统时钟频率下目标PWM频率是否被支持。手册中通常会提供一个类似“最大PWM频率 vs. 系统时钟”以及“可达分辨率”的表格。例如在100MHz系统时钟下要求1MHz PWM频率达到14-bit分辨率可能是可行的但要求2MHz PWM频率达到同样分辨率可能就不支持了。如果必须工作在极限频率可以考虑提升系统时钟频率或者接受更低的高分辨率位数甚至在某些对精度不敏感的区间切换回传统PWM模式。问题5多个ePWM模块之间同步出现问题。可能原因同步信号EPWMxSYNCI/EPWMxSYNCO链配置错误相位寄存器TBPHS未正确设置计数器模式不一致。排查步骤确保同步链的物理连接和软件配置正确。例如EPWM1作为主模块其EPWM1SYNCO输出连接到EPWM2的EPWM2SYNCI输入。仔细配置每个从模块的相位寄存器TBPHS。在接收到同步信号后计数器会加载TBPHS的值。这是实现多相交错并联或移相控制的关键。检查所有需要同步的模块其时间基准模式递增、递减、递增-递减和周期值TBPRD是否一致。利用示波器多通道功能同时测量各模块的EPWMxA输出观察其相位关系是否符合预期。调试eHRPWM是一个系统工程需要理论分析、寄存器配置、波形观测和系统联调相结合。最好的习惯是每配置一个复杂功能就用示波器验证一下输出波形是否符合预期从小功能模块验证起逐步构建完整的控制系统。