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.
工具与软件:
您好!
我想以不同的频率运行两个 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