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.

[参考译文] TMS320F280039:相移和放大器;频率变化 PWM、漏脉冲

Guru**** 2393265 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1489830/tms320f280039-phase-shift-frequency-changing-pwm-missing-pulse

器件型号:TMS320F280039

工具/软件:

尊敬的专家:

我的客户正在 EPWM1上开发相移和频率变化功能。 并解决 脉冲丢失问题。 (黄色和蓝色:EPWM1AB;绿色和紫色:EPWM2AB)

EPWM1与 EPWM2的频率相同。 EPWM1接收来自 EPWM2的同步事件(当 TBCTR = 0时)、以将 TBPRD 从影子寄存器加载到活动寄存器。 EPWM1的 TBPRD 和 CMPA 链接到 EPWM2。

EPWM1和 EPWM2采用向上/向下计数模式。 它们的 AQ 是 CMPA 向上:向下、CMPA 向下:向上。 他们的职责是50%。 对于 EPWM2、没有仅 TBPHS 的频率变化、对于 EPWM1、 TBTHS 和频率都在变化。

当它们直接将 EPWM 的频率从90k 更改为70k 时、它们将满足  EPWM1上的漏脉冲事件。

我们参考以下链接: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1312604/tms320f28379d-tms320f28379d-phase-shift-pwm-missing-pulse 并添加带有 AQ 的 T1事件。 它将减少漏脉冲事件的数量、但无法停止 漏脉冲事件。

对此问题还有其他建议吗?

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

    您好:

    在运行时更新 PWM 参数时、这种情况很常见、因为更新/加载新值的性质、这些值是什么以及发生同步脉冲时。 AQ T1/T2权变措施通常处理较简单的缺失动作限定符情况、但我看到了其他需要解决的情况(例如、在一种情况下、我看到在 CLA 任务内两个不同 PWM 参数更新之间发生了一个同步脉冲、这导致 T1/T2未涵盖的 AQ 缺失问题。 解决方案是在 CLA 任务内连续更新参数、以尽可能缩短更新之间的时间并防止两者之间发生同步脉冲。

    几个问题:

    1. 您要更改哪些参数? 根据您的帖子、我的理解如下(如果我错了、请更正):
      1. EPWM2 :仅更新 TBPRD
      2. EPWM1 :TBPRD 和 TBPHS 正在更新
    2. 在哪里更新您的值(ISR、CLA 任务等)?
    3. 您的价值观将变为什么?
    4. 您使用什么加载方案(更新后的参数是在立即加载模式下加载的、在发生某些事件时加载的影子加载模式、还是在发生某些事件时加载的全局加载)? 何时将新计算的值加载到有效寄存器中?
    5. 您是否已经定义了 SYNC 脉冲的范围? 否则、我强烈建议使用 EXTSYNCOUT 信号路径、以便能够进行示波器并查看同步脉冲发生的位置与您更新参数的位置相关(可以在您更新参数的位置切换 GPIO 以获得可视的时间基准)。

    此致、

    Allison

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

    尊敬的  Allison:

    很抱歉回复延迟。 我花一些时间进行测试、并与客户确认情况。

    检查后、我建议客户端更改 CMP 值以通过全局加载和 PWM 链接实现相移。

    例如、EPWM1和 EPWM2的 TBPRD 为600 (计数器是同步的)。 EPWM1的 CMPA 向上为400、CMPB 向下为200。 EPWM2的 CMPA 向上和向下调整为300。 EPWM1和 EPWM2之间存在相移。 所有 CMP 寄存器、TBPRD 寄存器以及使用影子寄存器和全局加载(OSHTLD)的 RED 和 FED 寄存器(当 TBCTR 达到0时)。 EPWM1的全局加载链接到 EPWM2。 因此、我们可以使用 OSHTLD 位同时将值加载到活动寄存器。

    此解决方案是否正常?

    这是另一个问题。 当 TBCTR 达到0并向 OSHTLD 位写入1时、会发生什么情况?

    谢谢、

    Leo

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

    嗨、Leo、

    请允许我再过一天,在你的询问回来给你. 感谢您的耐心!

    此致、

    Allison

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

    嗨、Leo、

    很抱歉耽误你的时间。 我想检查此处的状态/信息是否有任何变化/更新。 您是否已经过测试和确认? 全局加载将确保变量同时跨 ePWM 加载、但我要谨慎操作以确保在下一个 ePWM 周期更新的变量一起更新。 我遇到了一个问题、即客户在更新之间留下了太多时间、并且其全局加载事件在更新之间发生(即一半的 PWM 更新被加载到有效寄存器中、一半的 PWM 更新尚未计算)。 通过将写入 PWM 影子寄存器的代码移动得更近、以便尽可能缩短所有影子寄存器准备之间的时间、从而解决它们的问题。

    客户何时发出单触发全局加载?

    此致、

    Allison