深入解析C2000 ePWM时间基准与同步机制:从原理到多模块协同实战

发布时间:2026/7/20 12:41:45
深入解析C2000 ePWM时间基准与同步机制:从原理到多模块协同实战 1. 项目概述从零开始理解ePWM的脉搏在嵌入式电机控制、数字电源或者任何需要精确功率调节的场合PWM脉冲宽度调制信号就是系统的“心跳”。它决定了能量传递的节奏和力度。然而很多开发者在使用微控制器的PWM模块时往往只停留在配置频率和占空比的层面对于其内部精密的“时钟心脏”——时间基准Time-Base和复杂的同步机制——却一知半解。这就好比只会开车却不了解发动机的转速与变速箱的匹配逻辑一旦遇到多电机协同、交错并联电源等复杂场景就容易出现波形错乱、效率低下甚至硬件损坏的问题。今天我们就深入德州仪器TIC2000系列微控制器中功能强大的增强型PWMePWM模块核心拆解其时间基准计数器、三种工作模式以及复杂的同步机制。无论你是正在调试一台伺服驱动器还是设计一个多相LLC谐振变换器理解这些底层原理都能让你从“配置寄存器”的层面跃升到“设计波形时序”的高度真正掌控硬件。本文假设你已有基本的PWM概念和微控制器编程经验我们将聚焦于ePWM独有的高级特性和实际工程中的“坑点”。2. 时间基准计数器ePWM的节拍器所有PWM波形的生成都始于一个不断循环计数的核心——时间基准计数器TBCTR。你可以把它想象成一个音乐节拍器它规律地摆动定义了整个PWM周期的基本时间单位。ePWM模块的灵活与强大很大程度上源于这个“节拍器”丰富的可配置性。2.1 核心寄存器TBPRD与频率计算时间基准计数器的计数范围由周期寄存器TBPRD决定。TBPRD的值直接定义了PWM的周期T_PWM和频率F_PWM但其具体计算公式取决于计数器的工作模式。时间基准时钟TBCLK这是计数器每一步“滴答”所经历的时间。它来源于系统主时钟EPWMCLK经过一个可配置的分频器由TBCTL寄存器的HSPCLKDIV和CLKDIV位控制得到。设定TBCLK是第一步它决定了时间分辨率。例如若系统时钟为100MHz分频器设为2分频则TBCLK 50MHz周期为20ns。三种模式下的周期与频率上计数模式Up-Count计数器从0开始递增达到TBPRD值后归零重新开始。一个完整的PWM周期就是计数器从0到TBPRD再归零的过程。周期公式T_PWM (TBPRD 1) * T_TBCLK例如TBPRD 999 TBCLK 20ns 则T_PWM (999 1) * 20ns 20us 对应频率F_PWM 50kHz。为什么是TBPRD1因为计数器从0计数到TBPRD总共经历了TBPRD - 0 1个TBCLK周期。这是嵌入式编程中常见的“边界计数”问题忽略这个“1”会导致实际频率比预期高。下计数模式Down-Count计数器从TBPRD值开始递减到0后重新加载TBPRD值开始下一轮递减。其周期计算与上计数模式完全相同T_PWM (TBPRD 1) * T_TBCLK。虽然计数方向相反但完成一个循环所需的时钟周期数是一样的。上下计数模式Up-Down-Count计数器从0递增至TBPRD然后立即递减回0如此反复。这是生成对称PWM波形的关键模式。周期公式T_PWM 2 * TBPRD * T_TBCLK例如TBPRD 500 TBCLK 20ns 则T_PWM 2 * 500 * 20ns 20usF_PWM 50kHz。注意在此模式下若要生成与上/下计数模式相同频率的PWMTBPRD值需要减半因为一个周期内计数了两次TBPRD。这是一个常见的配置错误来源。实操心得模式选择背后的工程考量上计数或下计数模式生成的PWM波形是非对称的其脉冲中心在时间轴上是不固定的。这种模式简单计算占空比直观占空比 CMPA / TBPRD常用于普通的开关控制、LED调光等。 上下计数模式生成的是对称中心对齐PWM。其最大优势在于每个PWM周期内开关器件的开通时刻和关断时刻在波形中心对称这能显著减小功率变换器中的谐波分量特别适用于电机驱动如SPWM、SVPWM的载波和全桥/半桥拓扑。在上下计数模式下占空比计算稍复杂通常需要根据计数方向分别设置比较值。2.2 影子寄存器机制安全更新的守护者在PWM运行时动态改变频率TBPRD或占空比CMPA/CMPB是常见需求例如实现电机的软启动或电源的电压缓升。但如果软件直接写入正在被硬件使用的活动寄存器Active Register很可能在计数器正在与该值比较的瞬间发生写入导致产生一个极窄或极宽的“毛刺”脉冲这可能直接炸掉功率管。ePWM的影子寄存器Shadow Register机制就是为了解决这个问题。它相当于给关键寄存器TBPRD, CMPA, CMPB等配了一个“缓冲区”。工作原理当影子模式启用时例如TBCTL[PRDLD] 0你的软件代码写入的其实是影子寄存器这个写入操作可以在任何时间安全进行不影响当前PWM输出。硬件会在一个你指定的、安全的“时刻”加载事件自动将影子寄存器中的值复制到活动寄存器中从而更新实际生效的参数。关键的加载事件这个安全的“时刻”通常是计数器归零CTR0或达到周期值CTRPRD时。对于TBPRD加载事件由TBCTL2[PRDLDSYNC]位选择是仅在CTR0时加载还是在同步事件SYNC时也加载。对于CMPA/CMPB加载事件则通过CMPCTL[LOADAMODE/LOADBMODE]等位更精细地控制可以选择在CTRPRD、CTRZERO或两者都发生时加载。立即加载模式如果禁用影子模式TBCTL[PRDLD] 1则写入操作直接作用于活动寄存器。除非在PWM初始化阶段或明确需要即时响应的特殊场景否则在运行中动态更新参数时强烈建议使用影子模式。这是用硬件可靠性换取软件便利性的经典设计。踩坑记录影子寄存器未生效的常见原因模式未启用配置了加载事件但忘了将对应寄存器的影子模式使能位如CMPCTL[SHDWAMODE]清零。默认通常是使能的但最好在初始化代码中显式配置。事件未发生你配置了在CTRPRD时加载但你的计数器工作在上下模式并且你只在计数器递增时更新了影子寄存器而加载发生在递减阶段的CTRPRD点不对于上下模式CTRPRD点只有一个波峰。更常见的是你更新了寄存器但还没等到下一个加载事件比如下一个PWM周期开始就去读取活动寄存器验证发现值没变误以为配置失败。解决方法更新后等待一个完整的PWM周期或者通过事件触发中断来确认加载完成。全局加载冲突如果同时使能了全局加载Global Load则个别寄存器的影子加载事件配置可能会被全局事件覆盖。需要仔细检查GLDCFG和GLDCTL寄存器的配置。3. 同步机制让多个ePWM模块齐步走在复杂的电力电子系统中经常需要多个PWM通道协同工作例如三相逆变器的6个桥臂或者交错并联Boost电路的2个相位。如果这些PWM模块各自为政相位关系混乱会导致电流纹波增大、电磁干扰严重。ePWM提供了多层次、灵活的同步机制来解决这个问题。3.1 时钟同步TBCLKSYNC基础节拍对齐这是最底层的同步。即使所有ePWM模块的TBPRD和分频器设置都一样如果它们的计数器开始计的时刻有细微偏差那么它们的CTR0点就不会对齐。TBCLKSYNC位存在于系统时钟控制寄存器中它可以一次性对齐所有已使能ePWM模块的TBCLK时钟起点。正确的启用流程必须严格遵守顺序使能模块时钟在PCLKCRx寄存器中使能你需要用的ePWM模块的时钟。此时模块有电了但时间基准计数器还没开始走。停止所有时基将TBCLKSYNC位写0。这确保了所有ePWM的TBCLK都被“冻结”在低电平。配置模块参数此时安全地配置各个ePWM模块的TBCTL模式、分频、TBPRD、CMPx等所有寄存器。关键点所有模块的TBCLK分频设置HSPCLKDIV/CLKDIV必须完全相同否则即使起点对齐后续计数速度也不同很快又会失步。同步启动将TBCLKSYNC位写1。在下一个TBCLK的上升沿所有ePWM模块的计数器将同时开始计数。这就好比乐队指挥在所有人准备好后同时挥下指挥棒。注意事项TBCLKSYNC是一次性的全局硬同步通常只在系统初始化时使用。它保证了所有模块的“秒针”起点一致。但它不解决运行过程中因响应不同中断、执行不同任务而导致某个模块的TBPRD被异步更新从而产生的相位漂移问题。这就需要更高级的计数器同步。3.2 计数器同步SYNCI/SYNCO运行时相位对齐时钟同步让计数器一起开始但运行中如何让一个模块从模块的计数器去匹配另一个模块主模块的某个特定点呢这就是EPWMxSYNCI同步输入和EPWMxSYNCO同步输出信号的作用。同步输入SYNCI当某个ePWM模块检测到其SYNCI引脚上一个上升沿时可以触发一个同步事件。如果该模块的TBCTL[PHSEN]位被置位那么在此同步事件后的下一个有效TBCLK边沿该模块的计数器TBCTR会被立即重载为相位寄存器TBPHS中设定的值。同步输出SYNCO每个ePWM模块可以配置在特定时刻如CTR0, CTRPRD, CTRCMPC等产生一个同步脉冲输出。这个输出可以连接到其他ePWM模块的SYNCI形成同步链。典型应用主从串联同步假设ePWM1为主模块ePWM2为从模块希望ePWM2的波形滞后于ePWM1 1/4个周期。配置ePWM1的SYNCO在CTR0时输出脉冲。将ePWM1.SYNCO连接到ePWM2.SYNCI通过芯片内部的同步信号路由寄存器如EPWMSYNCINSEL。配置ePWM2的TBCTL[PHSEN] 1使能同步事件加载相位。设置ePWM2的TBPHS TBPRD / 4。这样当ePWM1计数器归零并发出同步脉冲时ePWM2的计数器会被立即设置为TBPRD/4从而实现固定的90度相位差。软件强制同步除了硬件信号还可以通过写TBCTL[SWFSYNC] 1来产生一个软件同步脉冲其效果与硬件SYNCI信号相同。这在调试或由软件主循环触发同步时非常有用。数字比较同步更高级的是数字比较子模块DC产生的DCAEVT1/DCBEVT1事件也可以作为同步源。这意味着你可以根据外部模拟比较器的结果如过流信号来实时同步或重置PWM相位实现基于硬件保护的快速相位调整。深度解析同步事件对计数器模式和波形的影响看图13-9至13-12的官方波形图至关重要。它揭示了同步事件发生时计数器行为的细微差别。在上计数模式下同步事件发生时TBCTR被强制加载为TBPHS值然后继续向上计数。如果TBPHS 当前TBCTR值计数器会“跳变”到一个更大的值如果TBPHS 当前值则会“回退”。这可能导致当前周期内预期的CTRCMPx比较事件被“跳过”。这不是错误而是正常机制你的中断服务程序或动作限定逻辑必须能处理这种“事件丢失”的情况。在上下计数模式下TBCTL[PHSDIR]位变得重要。它决定了同步事件后计数器的初始方向。PHSDIR0同步后计数器向下计数。PHSDIR1同步后计数器向上计数。 这个特性允许你精确控制同步后波形的起始斜率上升沿或下降沿开始在多相交错电源中这对于均流至关重要。3.3 全局加载Global Load多寄存器原子更新在变频应用中如电机弱磁控制、LLC谐振变换器变频调压我们可能需要同时更新多个ePWM模块的TBPRD和CMPx寄存器。如果使用普通的影子寄存器每个寄存器在其自身的CTR0事件加载由于各个模块的计数器并不同时到达零点即使有同步也可能有细微延迟就会导致一个周期内有些模块用了新频率参数有些还用旧的造成严重的瞬时不平衡。全局加载机制就是为了实现“原子更新”。它允许你将多个模块的多个影子寄存器的加载动作绑定到同一个同步事件上。如何工作使能全局加载模式设置GLDCTL[GLD] 1。配置加载事件在GLDCTL[GLDMODE]中选择一个事件作为全局加载触发源例如某个特定的SYNCI事件或软件强制事件。选择参与全局加载的寄存器在GLDCFG寄存器中为TBPRD、CMPA、CMPB等寄存器分别使能全局加载例如设置GLDCFG[TBPRD] 1。效果当指定的全局加载事件发生时所有使能了全局加载的寄存器其影子寄存器的值会在同一时刻被加载到各自的活动寄存器中无论它们各自原本的私有加载事件是什么。这确保了所有相关模块的参数切换是严格同步的。单次加载模式One-Shot Load通过GLDCTL2[OSHTLD]位可以配置全局加载只发生一次。这在需要精确地在某个特定PWM周期切换参数时非常有用切换完成后即恢复各寄存器自身的影子加载机制。工程实践交错并联Boost的相位同步与全局更新假设一个两相交错并联Boost电路ePWM1和ePWM2分别驱动两个相位相位差180度。初始同步使用TBCLKSYNC让两个模块时钟起点对齐。设置ePWM2的TBPHS为TBPRD/2并使用ePWM1在CTR0产生的SYNCO去同步ePWM2实现180度移相。动态调压当需要改变输出电压时软件计算新的TBPRD调频和CMPA调占空比值分别写入两个模块的对应影子寄存器。原子切换配置一个软件强制同步事件SWFSYNC作为全局加载触发源。使能两个模块TBPRD和CMPA寄存器的全局加载。当软件触发SWFSYNC时两个模块的新参数同时生效两个相位的PWM波形在同一个开关周期完成切换避免了因切换不同步导致的瞬时电流失衡和电压振荡。4. 计数器比较与动作限定绘制PWM波形时间基准计数器提供了均匀的时间轴而真正决定PWM波形形状占空比的是计数器比较CC子模块和动作限定AQ子模块。它们合作在时间轴的特定“刻度”上打上标记并规定此时输出引脚应该执行什么动作置高、拉低或翻转。4.1 计数器比较子模块定义事件时刻这个子模块持续将时间基准计数器TBCTR的值与四个比较寄存器CMPA, CMPB, CMPC, CMPD进行比较。当相等时产生对应的事件信号CTR CMPA, CTR CMPB等。CMPA和CMPB是生成PWM波的核心它们的事件会送给动作限定子模块。CMPC和CMPD通常用于在特定时刻触发ADC采样通过事件触发子模块实现精准的采样点控制。影子寄存器同样适用CMPA和CMPB同样拥有影子寄存器其加载模式LOADAMODE/LOADBMODE和加载同步LOADASYNC/LOADBSYNC的配置与TBPRD类似提供了安全的占空比更新机制。特别注意LOADASYNC/LOADBSYNC位当它为0时加载事件由LOADxMODE决定当为1时加载事件由同步事件SYNCI等决定这为实现与外部事件严格同步的占空比更新提供了可能。不同计数模式下的比较行为上/下计数模式每个比较事件如CTRCMPA在一个PWM周期内只发生一次。上下计数模式如果CMPA的值在0和TBPRD之间0 CMPA TBPRD那么CTRCMPA事件每个周期会发生两次一次在递增过程中一次在递减过程中。这是生成对称PWM的关键。如果CMPA等于0或TBPRD则只发生一次。4.2 动作限定子模块执行输出动作动作限定子模块接收来自时间基准CTRPRD, CTRZERO和计数器比较CTRCMPA, CTRCMPB的事件并根据当前计数器的方向递增或递减为两个输出引脚EPWMxA和EPWMxB分别指定动作置高Set、拉低Clear、翻转Toggle或无动作Do Nothing。这是ePWM波形生成最核心的配置部分。通过组合这些事件和动作可以生成各种复杂的PWM波形。经典配置示例生成一对互补的带死区PWMA输出高有效B输出低有效假设使用上下计数模式。动作配置通过AQCTLA/AQCTLA寄存器当CTR CMPA且计数器递增时对EPWMxA执行Clear下降沿对EPWMxB执行Set上升沿。当CTR CMPA且计数器递减时对EPWMxA执行Set上升沿对EPWMxB执行Clear下降沿。当CTR PRD时通常不直接用于边沿控制而是用于在波峰点触发事件。当CTR ZERO时通常不直接用于边沿控制而是用于在波谷点触发事件。工作原理在计数器从0向上增加到CMPA的过程中EPWMxA为高EPWMxB为低。当计数器等于CMPA时递增EPWMxA变低EPWMxB变高。接着计数器继续增加到TBPRD后开始递减当递减再次回到CMPA时EPWMxA变高EPWMxB变低。这样就形成了一个以波峰为中心对称的PWM波形。死区时间通常不是在这里插入的而是由后续的死区DB子模块处理。动作限定子模块生成的是“理想”的互补信号。避坑指南动作优先级与竞争条件如果多个事件例如CTRCMPA和CTRZERO被配置为在同一时刻触发不同的动作比如一个要置高一个要清零怎么办动作限定子模块有内置的固定优先级。通常CTRPRD和CTRZERO这类由时间基准直接产生的事件优先级最高其次是CTRCMPA和CTRCMPB。具体优先级需要查阅芯片数据手册的AQ子模块章节。在配置时应避免将多个事件配置为在同一计数器值触发冲突动作。一个常见的技巧是如果你需要在计数器为0时做某个动作就使用CTRZERO事件而不是将CMPA设为0来模拟。5. 高级同步与联动应用剖析理解了基础模块后我们可以将它们组合起来解决更复杂的工程问题。5.1 多相电机驱动的同步实现对于一个三相逆变器需要6个PWM通道每相上下桥臂两两互补三相之间互差120度电角度。硬件连接通常将ePWM1设为主模块ePWM2和ePWM3设为从模块。时钟同步初始化时使用TBCLKSYNC确保三个模块的TBCLK同时启动。相位同步配置ePWM1的SYNCO在CTR0时输出。配置ePWM2的SYNCI选择ePWM1.SYNCO并设置TBPHS TBPRD / 3 PHSDIR根据波形需要设定通常为0同步后向下计数以形成对称波形。配置ePWM3的SYNCI选择ePWM1.SYNCO并设置TBPHS 2 * TBPRD / 3。使能ePWM2和ePWM3的相位加载PHSEN1。波形生成三个模块均配置为上下计数模式使用相同的TBPRD和CMPA值用于控制占空比。由于相位寄存器TBPHS不同它们的计数器起点不同但同步于同一个主同步信号因此能稳定保持120度相位差。全局更新在调整速度改变TBPRD或转矩改变CMPA时使用全局加载功能确保三个相的参数同时更新避免转矩脉动。5.2 交错并联DC-DC变换器的同步与移相对于两相交错并联Buck或Boost电路目标是让两个相位开关管交替导通使输入/输出电流纹波相互抵消减小滤波元件体积。180度移相配置与上述三相类似但ePWM2的TBPHS设为TBPRD/2实现180度错相。关键点——同步点的选择主模块(ePWM1)的SYNCO输出点选择很重要。如果选择在CTR0输出那么从模块(ePWM2)在同步点被加载TBPHS值后其计数方向由PHSDIR决定。为了获得严格对称的交错波形通常需要仔细搭配TBPHS和PHSDIR并通过示波器观察验证。有时选择在CTRPRD波峰同步可能更符合直觉。电流平衡与均流单纯的相位同步还不够。在实际电路中由于元器件参数差异两相电流可能不均。此时可以利用数字比较DC子模块。采样两相的电流通过比较器产生数字事件DCAEVT1将这个事件连接到从模块的SYNCI并配置为“单次同步”模式。当检测到某相电流偏差过大时微调该相PWM的同步相位通过动态修改其TBPHS值实现动态的均流控制。这展示了硬件同步与软件算法结合的强大能力。5.3 故障联防与快速关断同步在系统中一个模块检测到过流故障通过Trip-Zone子模块需要所有PWM模块立即关断输出。故障信号路由将故障源如比较器输出连接到某个Trip-Zone输入例如TZ1。配置Trip-Zone动作将所有ePWM模块的TZ1动作配置为“异步强制拉低”CBC模式或OST模式确保在几个纳秒内硬件自动关断PWM。同步故障状态光关断输出还不够可能需要让所有PWM计数器也停止或复位到一个安全状态。可以将某个Trip-Zone事件或由其触发的DCAEVT1配置为全局同步事件SYNCI。当故障发生时这个同步信号同时送达所有ePWM模块触发它们的计数器同步加载到一个预设的安全相位例如0为系统的统一软重启做好准备。这种硬件级的联动保护速度远超软件中断响应。6. 调试技巧与常见问题排查理论配置完成后真正的挑战在于调试。以下是一些实战中总结的排查思路。6.1 无PWM输出或波形异常现象可能原因排查步骤完全无输出1. ePWM模块时钟未使能。2. 输出引脚未配置到PWM功能GPIO MUX。3. 动作限定AQ未配置任何有效动作。4. Trip-Zone子模块被误触发强制输出为高阻或固定电平。1. 检查PCLKCRx寄存器对应位。2. 检查GPIOxMUXn/GPIOxGMUXn寄存器。3. 检查AQCTLA/B寄存器确保至少有一个事件如CTRCMPA被配置为Set或Clear。4. 检查TZCTL寄存器及TZFLG标志位。输出恒定高/低电平1. CMPA/CMPB值设置不当如CMPATBPRD在上计数模式。2. 动作配置错误例如只配置了Set没配置Clear。3. 影子寄存器值未加载活动寄存器仍为默认值0。1. 确认CMPA值在0到TBPRD之间上下模式可等于边界。2. 复核AQCTL配置确保上升沿和下降沿事件都已配置。3. 取活动寄存器CMPA:Active的值确认与写入影子寄存器的值一致。检查加载事件是否发生。频率不对1. TBPRD计算公式用错上下模式忘了乘2。2. TBCLK分频系数HSPCLKDIV/CLKDIV计算错误。3. 系统时钟源PLL配置不正确。1. 根据所选计数模式核对周期公式。2. 计算期望的TBCLK反推分频系数。用示波器测量实际周期验证。3. 检查PLL、时钟倍频/分频的初始化代码。占空比不对或不可调1. CMPA影子寄存器未成功加载。2. 在上下计数模式下占空比计算方式错误。占空比 (TBPRD - CMPA) / TBPRD * 2不这取决于你定义占空比的方式和动作配置。通常对于中心对称PWM高电平时间 2 * (TBPRD - CMPA) * T_TBCLK。3. 动作配置中上升沿和下降沿事件绑定的比较值弄反了。1. 同“输出恒定电平”第3点。2.最可靠的方法在仿真中单步运行观察TBCTR和CMPA的值或者用CCS的Graph工具直接看波形调整CMPA看边沿移动是否符合预期。3. 检查AQCTL寄存器确认是CTRCMPA时ClearCTRCMPB时Set还是反过来。6.2 同步功能失效现象可能原因排查步骤从模块不同步1. 主模块SYNCO未配置输出。2. 从模块SYNCI未选择正确的输入源。3. 从模块相位加载未使能TBCTL[PHSEN]0。4. TBPHS值设置错误。1. 检查主模块TBCTL[SYNCOSEL]位。2. 检查从模块EPWMSYNCINSEL寄存器。3. 检查从模块TBCTL[PHSEN]位。4. 确认TBPHS值在0到TBPRD范围内。同步后波形紊乱1. 主从模块的TBCLK分频系数不同。2. 同步事件发生在“危险”的计数器点导致比较事件被跳过见图13-17注释。3. 在上下模式PHSDIR配置与预期波形不匹配。1. 检查主从模块TBCTL的HSPCLKDIV和CLKDIV位。2. 这是正常硬件行为。需确保应用逻辑能容忍或处理事件丢失。可以考虑在同步后由软件在下一个完整周期重新初始化比较值。3. 根据波形图13-11和13-12调整PHSDIR位。全局加载不生效1. 全局加载模式未使能GLDCTL[GLD]0。2. 目标寄存器未配置为使用全局加载GLDCFG[REGx]0。3. 全局加载事件GLDCTL[GLDMODE]未发生。4. 单次加载模式OSHT使用后未复位。1. 确认GLDCTL[GLD]已置1。2. 确认GLDCFG寄存器中对应位已使能。3. 检查触发源如SYNCI是否有信号产生。可以用软件强制GLDCTL2[GFRCLD]测试。4. 单次加载后需清除OSHTLD位才能再次触发。6.3 使用仿真器和示波器进行联合调试寄存器观察在CCS的寄存器视图中实时监控TBCTR、CMPA:Active、TBPRD:Active的值。看它们是否按预期变化。这是验证计数器模式、同步和影子加载最直接的方法。变量观察与Graph工具将关键的影子寄存器变量如g_u16EPwm1CmpaShadow添加到Watch窗口。使用CCS的Graph工具将EPWMxA/B引脚对应的内存地址或直接配置ADC采样PWM波形绘制成图形直观看到波形形状、频率和占空比。示波器抓取同步信号使用示波器多通道功能同时测量主模块的EPWMxA输出和SYNCO信号以及从模块的EPWMxA输出。可以清晰看到同步脉冲的位置以及从模块波形相位是否精确跟随。测量同步脉冲到从模块波形边沿的延迟验证芯片手册中的同步延迟2个EPWMCLK周期或1个TBCLK周期。触发与单次捕获在调试同步更新时将示波器触发模式设为“单次”触发条件设为软件更新寄存器的那条指令可通过在代码中设置一个GPIO翻转来作为触发信号。然后捕获全局加载事件前后的多个PWM周期观察所有相关通道是否在同一周期边界处同时发生变化。深入理解ePWM的时间基准、计数器模式和同步机制绝非一蹴而就。最好的学习方式就是动手实践从一个简单的单通道PWM开始然后实现互补输出再加入死区接着尝试两个模块的移相同步最后挑战多相全局更新。每次增加一个功能就用心观察寄存器的变化和示波器的波形思考其背后的硬件逻辑。当你能够从容地驾驭这些模块让它们像一支训练有素的乐队一样精确合奏时你所设计的电力电子系统也就拥有了坚实而高效的基础。