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.

[参考译文] TMS320F2800137:F2800137 HRPWM 和单次触发负载模式

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1469372/tms320f2800137-f2800137-hrpwm-and-one-shot-load-mode

器件型号:TMS320F2800137
主题:SysConfig 中讨论的其他器件

工具/软件:

您好、

我将 F2800137用于多个 PWM。 HRPWM 中的 ePWM1和标准分辨率的 ePWM2/4信号、因为该 DSP 仅在通道1上提供 HRPWM。

所有 PWM 都与 ePWM1同步、它们以40KHz 至300kHz 的可变频率运行。 控制环路以大约100KHz 的固定频率运行

如果我以标准分辨率使用所有 PWM、则可以使用单时触发加载模式(GLDCTL2[OSHTLD]= 1、以指定主 TPRD 和所有 CMP 都在影子寄存器中正确更新、并可以在计数器= 0时一次性传输到主寄存器中。 在该配置中、我们知道所有活动寄存器都将具有最新且正确的值(不像之前计算中的一些值、还有一些来自新值)。

我有几个问题:

1)行为是您希望 ePWM1现在成为 HRPWM 并使用相同的方案。 为什么我无法在 HR 模式下使用一次性加载模式?

2)如果我们无法在 HR 模式下真正使用一次性加载模式、那么您建议怎么做?为了确保所有 EPWM 寄存器同时更新、计数器= 0?

谢谢、

Arnaud

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

    Arnaud、

    如果应该在 HRPWM 中工作、您是否使用 SysConfig 配置这些 EPWM 设置? 如果像这样的复杂设置中缺少任何逻辑配置、它会显示警告。 另外、您的固定频率 ISR 的来源是什么? 此外、您如何得出结论:它在 ePWM 中工作、而不在 HRPWM 中工作? 您能否分享您可能已完成的设置的任何屏幕截图?

    此致、

    Sumit

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

    在参考手册的注释中、他们说我们不应使用一次性加载模式。

    我使用 SysConfig 配置默认设置。

    固定频率 ISR 基于一个计时器、该计时器设置为每150kHz 中断一次。 在此 ISR 期间、我计算 LOP 补偿器和所有比较器/DB/TPRD 值、并将它们设置到 所有 ePWM 通道的相应影子寄存器中。 当所有影子寄存器都更新时、

    我调用 HWREGH (EPWM1_BASE + EPWM_O_GLDCTL2)= EPWM_GLDCTL2_OSHTLD;

    在标准分辨率下、一切都正常、并且所有周期/CMP 都在下一个 PWM 周期正确更新。 (@0cnt、向上计数))

    但当我将 ePWM1设置为 HR PWM 时、与 ePWM2 (标准分辨率)相比、ePWM1的更新延迟恰好为1个 PWM 周期。 换句话说、epWM1以之前的频率运行、ePWM2以新频率运行。 它们在1个周期内不同步。 当从低频变为高频时、会很明显。

    当然、我将 HR 设置为周期。

    如果您需要我的帮助、请告诉我。

    谢谢、

    Arnaud

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

    在处理 HR PWM 中无法使用一次性加载模式的高分辨率 PWM 时、同步多个 PWM 更新变得非常困难。 具体情况如下:

    即使设置为:

    • 计算在单独的低频率 ISR 中完成
    • 结果存储在 RAM 中
    • 值在 PWM ISR 期间的计数器= 0处复制到 PWM 影子寄存器
    • 影子寄存器计划在下一个计数器= 0时加载

    高频(400kHz+)下仍然存在时序问题。 PWM ISR 可能会被其他中断延迟、当以非常接近周期结束的方式运行时、只有一些影子寄存器可能会在周期结束之前更新、从而导致 PWM 通道上的不同步更新。

    在这些条件下确保所有 PWM 寄存器同时更新的最佳方法是什么?

    某些 DSP 有一些您可以设置或清除的标志、以指示所有寄存器都已更新完成、现在可以在下一次事件时安全地重新加载、是否有类似的内容?

    谢谢

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

    Ahugron

    我们正在审核您的问题。 我们的专家将在我们有理由了解您所观察的行为后回复您。感谢您的耐心!

    此致、

    Sumit

     

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

    您好、

    是否有关于此问题的新闻?

    非常感谢、

    Arnaud

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

    上述讨论移至以下主题、使讨论保持一致:https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1469372/tms320f2800137-f2800137-hrpwm-and-one-shot-load-mode/5645487#5645487

    关闭这个。

    此致、

    Sumit