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.

[参考译文] TMS320F280040-Q1:什么原因可能导致两个 PWM 通道之间的同步丢失?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1216326/tms320f280040-q1-what-might-cause-the-synchronization-between-two-pwm-channels-lost

器件型号:TMS320F280040-Q1
"Thread:SysConfig"中讨论的其他器件

您好!

当程序运行时、当 PWM 通道 PWM1和 PWM2之间的相移发生变化时、两个 PWM 通道之间的同步将丢失、这意味着两个通道之间的相移大于这两个通道之间设置的相移。  

在开环控制中、这两个通道之间的相移变化正常运行。 它仅在闭环控制中发生相移变化时发生。

这种情况的原因可能是什么? 是否有任何方法可以跟踪导致这种情况的原因? 已验证在 PWM1和 PWM2之间设置新相移的过程不会被任何中断中断中断中断。

谢谢!

吊车

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

    似乎 PWM1、PWM2和 PWM3在同一同步分支中、但实际上并不会自动同步。   SysConfig 中此处没有相关内容:

    它存在于其他任何地方吗?

    谢谢!

    吊车

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

    Crane 先生、您好!

    要通过 EPWM1同步 EPWM2和 EPWM3、必须在 TBCTL 寄存器中启用 PHSEN、写入 TBPHS 寄存器、并在 TBCTL 寄存器中配置 SYNCOSEL、以便配置 EPWM1何时生成 SYNCOUT 信号。 这都可以在 SysConfig 的 EPWM 时基菜单中进行配置。

    您的意思是、它在闭环控制而不是开环控制中工作? 您能否更具体地说明配置中发生了哪些变化?

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

    Luke、您好!

    好的、看一下。

    这与使用下面的函数相同、对吧?

    ePWM_setSyncOutPulseMode (myEPWM2_base、ePWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);

    是否应该通过调用此函数来设置 PWM1和 PWM2? 如果是、它们是否必须使用相同的参数?  

    我曾尝试以不同的组合调用该函数、但结果似乎不太有希望。 仍在测试中。

    就开环与闭环而言、它是相移变化的来源。 在开环中、我可以完全控制相移变化。 在闭环中、相移变化由外部参数控制。

    谢谢!

    吊车

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

    Crane 先生、您好!

    如果您希望将 EPWM2同步到 EPWM1、则需要 EPWM1来生成其自己的输出脉冲、通常发生在 EPWM1 TBCTR=0事件或您喜欢的任何事件上。 仅当外部同步源通过 EXTSYNCIN 信号进入时、才使用 EPWMxSYNCIN。

    是手动编写 driverlib 还是使用 SysConfig? 还是两者的混合?

    您需要调用该函数来使 EPWM1在 TBCTR=0时生成 SYNCOUT 脉冲:

    EPWM_setSyncOutPulseMode (EPWM1_BASE、EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO );
    这是通过在 SysConfig 中选择以下选项生成的:
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只有通过 EXTSYNCIN 信号传入外部同步源时,才能使用 EPWMxSYNCIN。

    好的,明白了。

    我现在将同时使用这两者。 有些在 SysConfig 中、有些通过调用 driverlib 进行设置。

    要将 EPWM2与 EPWM1同步、我是否需要为 PWM2以及以下调用此函数?

    EPWM_setSyncOutPulseMode (EPWM2_base、EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO );

    谢谢!

    吊车

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

    嘿 Crane、

    您只需要在 EPWM1上调用此函数。 EPWM2 SYNCIN 将始终 连接到 EPWM1的 SYNCOUT 信号、您需要配置导致 EPWM1生成同步的事件。

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

    好的、明白了。 那么、如何配置该事件呢?

    很抱歉、现在我没有时间 搜索文档来查找此内容。 如果您能告诉我去哪里看看、那将不胜感激。  

    谢谢!

    吊车

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

    此函数由 SysConfig 生成:

    EPWM_setSyncOutPulseMode (EPWM1_BASE、EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO );

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

    我可能误解了您之前的消息。

    红色块和蓝色块中的语句 谈论的是 同一件事?

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

    Crane 先生、您好!

    是的、这两者是一回事。 我在最后一条消息中发送的函数对 EPWM1进行配置、以便在 EPWM1 TBCLK = 0时生成 SYNCOUT 信号。

    如果您有任何其他问题、请告诉我。

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

    好的,明白了。 立即清除。  

    谢谢 Luke!

    吊车