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.

[参考译文] TMS320F28384S:意外的 ePWM 行为

Guru**** 2392905 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1280729/tms320f28384s-unexpected-epwm-behavior

器件型号:TMS320F28384S

您好、TI 团队、

我正针对电机控制应用使用3个 EPWM 对(13 A-B、14 A-B 和15 A-B)。

这3个对被配置为彼此互补、具有它们必要的死区和跳闸区域等。  对于驱动模式、这工作正常。

但是、我有一个新要求 、需要:

  • 将 A 通道设置为100%占空比、而 B 通道在 我的控制环路的一些周期内保持0%占空比。
  • 然后、 在控制环路的某些周期内、将全部6个通道3 (A 和 B 对)的占空比旋转至0%。
  • B 通道必须始终保持0%。

因此、我的初始方法是

  • 我的 A 信号100%、
  • B 侧应达到0%占空比(因为这些是互补的)
  • 然后、当需要全部关闭时、我启动链接的跳闸区域并禁用所有输出

下面的示波器图像显示了预期的行为。  我的控制环路以41us 的间隔运行、因此如果收到命令、在1个周期内保持100%、我预计 A 上会有100%的占空比、同时在一个周期内保持0%、然后在下一个周期都变为0。

但是、如果我将示波器切换为在 B 侧触发、我也会看到相同的模式、在高 B 低电平与低电平之间交替、频率约为12Hz。

如果我增加控制环路周期的数量以将 A 侧保持在100%需求、那么 PWM 信号看起来更令人困惑。  在下面捕获的 GIF 中、I 增加到控制环路的2个周期。

大部分情况下、A 侧和 B 侧在我的控制环路持续时间的不同长度都会变为高电平。  我不明白 B 侧为什么一直很高。

但从 R of A 到 B 的 FE、开/关遵循控制环路计数2或~82usec 的长度。

一些附加信息:  

  • 控制环路频率为24kHz
  • 我的 PWM 频率设置为12kHz
  • 通道配置为高电平有效 互补死区时间

问题:

  • 如何正确地命令 PWM 通道停止、刷新正在进行的内容、重新加载新计数以及与没有死区时间补偿的软件驱动事件同步?

我尝试了几个不同的组合,但还没有使它工作干净。

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

    Rafael、您好!

    如果输出 B 与输出 A 互补、那么当输出 A 在0%和100%占空比之间交替时、您通过什么方法使输出 B 保持低电平? 您能分享一下您在自己的代码中是如何做到这一点的吗?

    谢谢!

    卢克

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

    Luke、您好!

    我强制 A 侧和 B 侧关闭  跳匣区域。  当我们不驱动电机时、我需要使两个 PWM 通道都保持低电平、以便高桥开关打开。

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

    Rafael、您好!

    我不确定是什么原因导致输出 B 变为高电平。 最好的猜测是将 CMPA 值加载为0或 PRD、并通过影子将 CMPA 值加载到 TBCTR=0。 如果使用向上计数模式、我建议在 TBCTR=PRD 上影子加载 CMPA 值。 如果这无法解决问题、您是否可以发送一些可在显示此问题的 Launchpad 或控制卡上运行的示例代码、而无需依赖系统的输入?

    谢谢!

    卢克