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.

[参考译文] TMS320F280039C-Q1:EPWM 卡在低于 AQ 配置下

Guru**** 2466550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1485523/tms320f280039c-q1-epwm-stuck-with-the-below-aq-configuration

器件型号:TMS320F280039C-Q1

工具与软件:

嗨、专家

我想找到 CTR 在向上和向下模式下的配置、它都可以使用" CTR CAU=PRD/ CTR = Zero"信号生成50%、 使用"CAU/CD"信号生成 CTR 值的中心对称性

所以、我在下面编写了 PWM AQ 配置:

EPWM_setActionQualifierAction (DEVICE_EPWM_LLC_CD_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (DEVICE_EPWM_LLC_CD_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (DEVICE_EPWM_LLC_CD_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (DEVICE_EPWM_LLC_CD_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
CTR 模式设置为向上和向下、CTR = 1000、我执行以下测试:
1.阻止以下代码:
EPWM_setActionQualifierAction (DEVICE_EPWM_LLC_CD_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (DEVICE_EPWM_LLC_CD_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
可以生成50% PWM  
2.设置 CMPA = 500、即 CTR
可生成50% PWM、这是 CTR = 1000时的中心对称
设置 CMPA = 1500、即> CTR
PWM 卡住、输出引脚中无波。
我查看了 TRM、其中提到当我要生成0% PWM 时、我需要设置 CMPA = PRD - 1、而不是 PRD。 但 TRM 没有提到、一旦我设置 CMPA = PRD、PWM 就会卡住。  
所以我的代码卡在步骤3中、您能建议一个很好的方法来达到我的 目标吗?
谢谢
Joe
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Joe。

    您能说明一下您在第3步中要做什么吗? 如果 CMPA 大于周期值、则不会发生向上计数事件。 当时基计数器等于 PRD 时、将发生向下计数事件。

    在配置中、ePWM 在零匹配时设置为输出低电平、然后由于 CMPA 关闭事件(将在 PRD 发生、因为 CMPA > PRD)、它将再次设置为低电平。 这就是当您将 CMPA 设置为1500时、EPWM 输出被视为"无输出"的原因。

    此致、
    Marlyn

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

    你好、 Marlyn

    很高兴在 E2E 中见到您、第3步的解释是、我想忽略 CMPA 来触发操作。 我希望通过该配置、设置 CMPA>CMPA 时能实现50%的占空比 CTR、并 在 CTR 时实现可变中心对称脉冲。

    谢谢

    Joe

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

    您好、Joe。

    谢谢、也很高兴在 E2E 上见到您。 您能否分享最终目标图表? 当步骤1和步骤2提供50%输出时、我对为什么需要步骤3感到困惑。  

    此致、

    Marlyn

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

    你好、Marlyn

    很抱歉耽误你的时间。 因为我有今天的客户访问计划,明天会分享详细信息.

    谢谢

    Joe

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

    不用担心、谢谢 Joe。 我会等你的答复。

    此致、

    Marlyn

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

    您好、Joe。

    感谢您分享这个图表。 如果我理解正确、您希望能够在 CMPA 向上、TBPRD、CMPA 向下和零上有动作限定器事件时控制占空比、对吗?

    TRM 中的下表显示了计数器递增和递减计数时事件的优先级。

    CMPA 事件的优先级高于 ZERO 或 TBPRD 事件。 因此、即使 CMPA 等于零、EPWM 也会发生 CMPA 操作指定的 AQ 事件、而不是计数器等于零时的操作、TBPRD 也是如此。  

    但是我没能这样做、因为 CMPA 设置为高于 PRD 也无法忽略。

    如果 CMPA 设置为高于 PRD、则会看到0%占空比输出、因为 CMPA 关闭事件用于 EPWM 输出低电平。 当 CMPA > PRD 时、您期望的占空比是多少?

    此致、

    Marlyn

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

    你好、Marlyn

    感谢您的澄清、 我认为我们完全符合这一目标。

    当 CMPA > PRD 时、您期望的占空比是多少?

    我预计占空比为50%。 还有其他方法可以认识到这一点吗?

    我想进一步澄清一下、为什么不使用 CMPA = 1/2 PRD 来生成50%占空比:

    我将使用 PHS 值(范围为0至 PRD、表示0°至180°相移)在触发 SYNC 脉冲时加载 CTR 寄存器、如果 PHS>CMPA、则不会在上升沿发生 CMPA 脉冲、这可能会导致短路。 因此、我将50%的脉冲放置在不受 PHS 影响的 CTR 下降沿中。

    谢谢

    Joe

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

    我还尝试使用另一个 PWM 模块来实现该目的、因此使用 CMPA 和 CMPB 在输出通道 A 中实现灵活控制、但客户的设计中不再剩下 PWM 通道、因此应在具有通道 A 和通道 B 的单个 PWM 模块中实现

    谢谢

    Joe  

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

    您好、Joe。

    感谢您的进一步解释。 没有一种简单的方法可以绕过事件的 AQ 优先级。

    您必须在代码中检查 PHS 是否设置为高于 CMPA 值。 如果发生这种情况、您应该在下一个周期更改 CMPA、然后在下一个 EPWM 周期中重新切换 CMPA。  您可能还必须更改 下一周期动作限定器的操作、然后在 PHS 设置为 PRD 时将其切换回。  

    这是一个较旧的应用手册、但代码中的逻辑仍应适用: https://www.ti.com/lit/spraai1 

    此致、

    Marlyn