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.

[参考译文] TMS320F2800157-Q1:当占空比为0%时、错过 ePWM 中断触发事件意味着 CMPA == TBPRD、INT 源在递增时为 TBCTR == CMPA。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1522622/tms320f2800157-q1-epwm-interrupt-trigger-event-is-missed-when-duty-is-0-means-cmpa-tbprd-and-int-source-is-tbctr-cmpa-when-incrementing

尊敬的 TI 专家:

背景:

我正在尝试生成 脉冲跳跃场景 来启用和禁用 ePWMA 和 ePWMB 输出。


ePWM 设置:

  • 计数器模式 :向上-向下计数

  • TBPRD = 200

  • CMPA = 0 (基于占空比= 100%)

  • 在发生零事件时加载 CMPA () TBCTR == 0

  • 中断源 : CMPA 匹配时 向下计数时 TBCTR == CMPA


查询1: 什么  何时发生TBCTR == CMPA == ZERO (100%占空比情况)?

假设 :在这种情况下,CMPA 匹配事件将丢失,因为在时TBCTR == 0,计数器正在从向下计数转换到向上计数。 因此、TBCTR == CMPA 当 TBCTR 处于向下计数阶段时、不会发生==零匹配。

 此假设是否有效?


ePWM 设置:

  • 计数器模式 :向上-向下计数

  • TBPRD = 200

  • CMPA = 200 (基于占空比0%)

  • 在发生零事件时加载 CMPA () TBCTR == 0

  • 中断源 : CMPA 匹配时 向上计数时 TBCTR == CMPA


查询2:  TBCTR == CMPA == TBPRD(0%占空比情况)时会发生什么情况?

假设 :CMPA 匹配事件将丢失、因为在时TBCTR == CMPA == TBPRD、计数器反转方向并开始向下计数。 因此、TBCTR == CMPA在向上计数时不会发生该情况。

 这种理解是正确的吗?



请 澄清上述问题、并告诉我们如何在向上/向下双向计数模式下处理对称 PWM 时处理0%和100%占空比。

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

    来自 TRM:

    向上向下双向计数模式:在向上向下双向计数模式下、时基计数器从零开始递增
    直至达到周期(TBPRD)值为止。 达到周期值时、时基计数器就会触发
    递减。

    对于向上/向下双向计数模式、每个事件都是如此
    如果比较值介于0x00-TBPRD 之间、则每周期发生两次;如果比较值介于、则每周期发生一次
    等于0x00或等于 TBPRD。

    使用向上/向下双向计数模式生成对称 PWM:
    •如果在零时加载 CMPA/CMPB、则使用大于或等于1的 CMPA/CMPB 值。
    •如果在周期上加载 CMPA/CMPB、则使用小于或等于 TBPRD-1的 CMPA/CMPB 值。
    这意味着在 PWM 周期中始终存在一个至少为一个 TBCLK 周期的脉冲、该脉冲时间非常长
    往往会被系统忽略。

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

    您好:

    我已经邀请了团队的专家、他们应该在接下来的1-2天内回复您。

    此致、

    Delaney

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

    尊敬的会议:

    查询1 (TBCTR = CMPA =零、100%占空比):
    您的假设不完全正确。 在向上/向下双向计数模式下、当 CMPA = 0时:
    1.当 TBCTR=0时、CMPA 匹配事件仍将发生
    2.比较匹配逻辑检查零时是否相等。 对于 AQ 操作、唯一发生的操作是在计数器递增事件时 CMPA =ZRO。 仅当计数器递增计数时、ZRO 上的 CTR = CMPA 时、事件触发器才会触发。


    查询2 (TBCTR = CMPA = TBPRD、0%占空比):
    您的假设也不完全正确。 当 CMPA = TBPRD 时:
    1.当 TBCTR = TBPRD 时、将发生 CMPA 匹配事件
    2.采用比较匹配逻辑来检测周期值的匹配
    3.匹配事件是在仅针对动作限定器的计数器方向从向上计数变为向下计数之前生成的。 但是、当计时器递增时、如果 CMPA == TBPRD、则事件中断不会生成中断。 仅当计时器递减时、CMPA == TBPRD 时才会生成中断。

    重要注意事项:
    1. 不必担心这些边缘情况、因为这些是 ePWM 的已知限制、请参阅以下建议。  

    妥善做法是使用非零 CMPA/CMPB 事件并改用零动作或周期动作来实现所需占空比。 在一些边沿情况下、根据 CMPx 值更新的速度以及输出端发生的情况、输出端出现了脉冲缺失。

    如果您想验证 Query1/2在特定应用中的行为、您可以运行此示例测试用例、该测试用例使用 CMPA = 0来生成中断+切换输出。 您将看到它起作用。 但是、请遵守最佳实践声明。

    e2e.ti.com/.../Universal-Project.7z

    此致、

    Ryan Ma