您好!
我将 TIDA-010062用作我自己的工程的参考、并开始进行相应的修改。 该设置使用4个 ePWM 模块(包括一个用于控制目的的 ePWM 模块)和2个后台任务(以不同频率运行、并根据 CPU0_TIMER 和 CPU2_TIMER 进行设置)。 EPWM1、EPWM2和 EPWM3针对相移 PWM 设置、彼此之间的相移为120度。 EPWM1作为主站、EPWM2和 EPWM3作为从站、相移分别为120度和240度。
EPWM4_TIMER 为控制 ISR 设置、而 CPU0_TIMER 和 CPU2_TIMER 为转换值和更新评估等后台任务设置。 每个中断正常运行。
不过、在测试代码时、PWM2A 输出与设置的 PhaseShift 不对齐、而 PWM3A 输出与设置的 PhaseShift 完全对齐。 我已经尝试过在基于120度和240度相移的基础上检查 ePwm2和 ePwm3的寄存器和 TBPHS 寄存器似乎是正确的。 TBPRD 和 CMPA/CMPB 也是正确的(有关调试窗口中的寄存器、请参见下图)。 另一方面,令我感到困惑的是 EPWMXLINK 寄存器,因为 PWM2设置为0001 (对应于 PWM2模块),而 PWM3设置为0010 (对应于 PWM3模块)。 这是否意味着它们实际上是与自己联系在一起的? 我的期望是,它们将链接到 ePWM_LINK_WITH_EPWM_1设定的 ePWM1。
我可能采取了哪些可能最终会使 PWM2输出错位的做法?
提前感谢。