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.

[参考译文] TMS320F28379D:在不同频率同步两个 PWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1380727/tms320f28379d-synchronizing-two-pwms-at-different-frequencies

器件型号:TMS320F28379D
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好!

我想以不同的频率运行两个 PWM - ePwm1和 ePwm2、其中两个 PWM 中的一个是另一个 PWM 的积分乘法器(可能是32或64)。 哪种 PWM 更快、可灵活选择。  我知道、我可以使用 HSPCLKDIV 和 CLKDIV 的组合来实现频率差异、并且仍然使用 SYNCOSEL 来同步 TBCTR。  要获得相同的时分辨率、较慢 PWM 上的 CMPA 必须除以 CLKDIV 值、但这 会严重限制较慢 EPWM 的分辨率、因为两者上的相同 CMPA 值将使 CLKDIV 缩放任何 AQCTLA (或 B)事件。  

例如:
ePWM1的 TBPRD 在(10kHz)切换时为5000、而 ePWM2上使用了相同的 TBPRD。 ePWM 的 CLKDIV 为0b100、 分频器为16。 因此、如果我希望两个 PWM 的输出引脚在 CMPA 为100时变为高电平- 在 PWM1上会宽得多、我必须使用 CMPA 值(100/16)以获得与 ePWM2大致相同的脉冲宽度。  

在不使用 HRPWM 的情况下、有没有更好的方法可以做到这一点? 两个 PWM 上的 CTR 需要每隔几个周期同步。  

谢谢!

Adtya

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

    尊敬的 Aditya:

    要在不同的频率下运行两个 ePWM 模块、普通的解决方案是使用不同的 TBPRD 值。 您可以仍然使用相同的时钟分频器、并使用同步脉冲来同步 PWM。 为了以防万一、我  还想链接我们的一些 ePWM 学习资源:

    此致、

    Allison

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

    您好、Allison、

    谢谢你的答复。 遗憾的是、使用两个 TBPRD 值正成为一个小问题、因为如果我需要频率之间超过32或64倍的差异、较慢 PWM 的 TBPRD 会溢出。  

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

    尊敬的 Aditya:

    所以、您无法对这两个 ePWM 模块使用更高的 ePWM 时钟频率(以获得更好的分辨率)、因为这样 TBPRD 就需要非常大的数字?  

    抱歉,如果我是误解,但你能详细说明为什么你需要它们与一个积分乘法器相关,而不是硬编码/调整周期或行动限定符? 所需的 ePWM 输出到底是什么?

    此致、

    Allison