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.

[参考译文] TMS320F28388D:在发生 TZFRC.bit.OST 事件后的开关周期开始时开启 PWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1483347/tms320f28388d-turning-on-pwm-at-the-beginning-of-a-switching-cycle-after-tzfrc-bit-ost-event

器件型号:TMS320F28388D

工具与软件:

您好!

 关于 ePWM 模块、我有两个问题。

以下是我的配置:

ePWM1被设定为高电平有效互补。 我使用向上/向下双向计数模式。 PWM 模块与外部时钟同步。 当一个同步事件发生且 TBPHS=0时、TBCTR 被载入 TBPHS。

我对几乎所有寄存器使用影子模式、 当 TBCTR = 0时发生影子到活动加载。

问题1:

我需要进行以下确认:

当 SYNCIN 事件发生时、TBCTR 将等于 TBPHS 且 TBPHS 设置为0、因此 TBCTR = 0 =>是否会为我的寄存器引发影子到活动加载(我想确保是)? 我问这个问题是因为在我的案例中、计数器不是续流的。 导致 TBCTR = 0的是 SYNCIN 事件。

问题2:

在发生强制一次性跳闸软件事件(TZFRC.bit.OST = 1)时、我强制将 ePWM1A 和 ePWM1B 置为低电平。

我希望能够在开关周期开始时重新启用 PWM 模块。

问题是当我清除一次性跳闸软件事件时、PWM 模块在开关周期内随机导通、而我想在开关周期开始时开始(这意味着当 CTR = 0时)。

有什么想法要做这个吗?

我尝试过的另一件事,但我认为这不是最好的方法:我尝试使用 AQCSFRC 在阴影模式来实现这一点。 这样、我解决了问题、PWM 在开关周期开始时打开、但使用 AQCSFRC 寄存器时出现了另一个问题。 当我在高电平有效互补模式中配置该模块时、ePWM1A 按照我需要被强制为低电平、但 ePWM1B 被强制为高电平、位 CSFB 被忽略(而我也希望 ePWM1B 为低电平)。

此致、

Adrien

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

    Adrian、

    对 Q1的应答: 当 SYNCIN 事件发生时、 TBCTR 立即加载 TBPHS 中的值。 请注意、此任务需要1-2个系统周期、因此您需要在 TBPHS 中添加该偏移量。 您可以为相同的目的使用 API。   

    问题2:如果要 在开关周期开始时重新启用 PWM 模块、则需要使用逐周期(CBC)跳闸模式、即必须监控这些寄存器中的 CBC 位。 您可以参阅 TMS320F28388D TRM ePWM 一章、了解有关配置相同功能的详细信息。

    AQCSFRC 是异步事件、因此它不是解决问题的可靠方法。 因此、在这个点上、逐周期是实现您的想法的最佳方式。

    此致、

    Sumit