您好、专家!
我要求在这里为我的客户提供帮助。 客户的紧急案例。
客户正在使用 LLC 控制、通过 40k 至400k 的可变频率控制实现。 当使用 EPWM1_INT (当 TBCTR =零时生成)更新 CMPA 和 TBPRD 时、在 ePWM 模块之间同时写入 TBPRD 和 CMPx 寄存器。 我们知道 F28002x'TRM 中提到的 EPWMXLINK 和全局加载函数。

客户 一直希望使用 软件中断来实现同时写入、但发生了下图所示的错误。 实际上 EPWM1和 EPWM2接收到相同的 CMPA 和 TBPRD、但下图显示 EPWM1A 不正常。 这是一个紧急情况、客户需要通过 RTM F280025解决此问题。

(CH1:EPWM1A;CH2:EPWM2A;CH3:EPWM1 ISR;CH4:ADC ISR)
客户使用 ADC ISR 计算 EPWM1.CMPA/EPWM2.CMPA、 以下 代码在 ADC ISR 中启用 EPWM 中断使能位、然后更新 EPWM1_Int.中的 TBPRD 和 CMPA/CMPB 值。

1.我们检查 EPwm1Regs.CMPA.bit.CMPA > EPwm2Regs.CMPA.bit.CMPA 、未找到。
检查 utemp > utemp1、未找到。 并 在 同时更新时检查所有 ePWM 模块的相同 TBPRD。
查看 ePWM 初始化代码与 TI 示例、未发现错误。
我们也启用了 TBPHS 和 SYNC 从不同的模块、ADC ISR 执行时间为2.180us、EPWM1 ISR 执行时间为3.06 us。
请帮助检查并深入了解该项目。 谢谢。