This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMDSCNCD280039C:相移 PWM 未对齐

Guru**** 663810 points
Other Parts Discussed in Thread: TIDA-010062
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1309274/tmdscncd280039c-phase-shifted-pwm-misaligned

器件型号:TMDSCNCD280039CTMS320F280039C

您好!

我将 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输出错位的做法?

提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新:  我刚意识到、由于我使用的是向上/向下模式、我需要在2个 TBPRD 上应用 PHS、而我要应用的是仅考虑1个 TBPRD。 通过施加高于60%的相移、可使 TBPHS 高于 TBPRD。 在这种情况下,我可能需要调整 TBPHS 并将 PHS_DIR 设置为 EPWM_COUNT_MODE_DOWN_AFTER_SYNC。 有什么想法吗?