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.

[参考译文] TMS320F28035:PWM 同步问题

Guru**** 2547860 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/628587/tms320f28035-pwm-synchronization-issue

器件型号:TMS320F28035

大家好、我正在尝试使用 SWFSYNC (软件强制同步脉冲)在 ePWM1、ePWM2、ePWM3之间进行同步。

数据表中显示了这一点

只有当 SYNCOSEL = 00选择 EPWMxSYNCI 时、SWFSYNC 才有效(运行)。

如果我使用"EPwm2Regs.TBCTL.bit.SWFSYNC=1;"来强制 EPwm2Regs.TBCTR=EPwm2Regs.TBPHS.half.TBPHS、我必须将 ePWM1或 ePWM2的 SYNCOSEL 配置为00? 将 EPwm2Regs.TBCTL.bit.SYNCOSEL 配置为00毫无意义、因为 epwm2的同步源由 epwm1决定。

此外、不论为 ePWM1和 ePWM2配置什么 SYNCOSEL、 SWFSYNC 都可以 始终强制 EPwm2Regs.TBCTR=EPwm2Regs.TBPHS.Half.TBPHS。

_asm (" NOP");                       //EPwm1Regs.TBCTR 和 EPwm2Regs.TBCTR 都为0x20;
EPwm2Regs.TBCTL.bit.SWFSYNC=1;
_asm (" NOP");
_asm (" NOP");
_asm (" NOP");
_asm (" NOP");
_asm (" NOP");
_asm (" NOP");
_asm (" NOP");
_asm (" NOP");                      //EPwm1Regs.TBCTR=0x53、 EPwm2Regs.TBCTR=0x02、这意味 着 EPwm2Regs.TBCTL.bit.SWFSYNC 采用                                      影响

3.我添加 __asm (" NOP"); 因为 如果我单步执行 EPwm2Regs.TBCTL.bit.SWFSYNC=1; EPwm1Regs.TBCTR 和 EPwm2Regs.TBCTR 是相同的、这意味 着 EPwm2Regs.TBCTL.bit.SWFSYNC 不会生效、为什么不会生效?

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

    Howard、

    要使用 SWFSYNC 将 ePWM1和 ePWM2同步在一起、您需要使用 ePWM1的软件同步。 即配置 ePWM1.SYNCOSEL = 00、然后使用 ePWM1.SWFSYNC。

    在写入 ePWM2的 SWFSYNC 的情况下、只会导致 ePWM2的 TBPHS 被加载到 ePWM2的 TBCTR 中、ePWM1的 TBCLK 将保持不变。 有一种用途、即同步软件事件和 PWM2的输出... 但这不会将 ePWM1同步到 ePWM2。

    要更直接地回答您的问题:

    1. 不需要、如果您只是尝试设置 ePWM2.TBCTR =TBPHS、则无需设置 SYNCOSEL = 00、只需写入 ePWM2 SWFSYNC 即可。  
    2. 是的、如果 ePWM2.PHSEN =1、那么 ePWM2.SWFSYNC 可以始终强制 ePWM2.TBCTR = ePWM2.TBPHS。
    3. 当单步执行时、PWM 的计时看起来总是有点奇怪、它与单步执行的方式有关。 要测试此情况、您将需要运行器件、而不是单步执行或停止。 尝试查看 TBCTL.FREE_SOFT 并查看 TBCTR 的选项、这可能会有所帮助。

    此致、
    Cody