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.

[参考译文] TMS320F280025:ePWM 事件是否触发标志溢出?

Guru**** 2582405 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/953592/tms320f280025-does-epwm-event-trigger-flag-overflow

器件型号:TMS320F280025

尊敬的香榭丽舍

我向我们的客户提出这一问题。

1) 1) ePWM 事件触发器是否可能溢出? 溢出时、不会触发 ADC 的 EPWM SOC、这是正确的吗?

2) 2)如果1)是肯定的。 用户是否"负责"澄清是否存在任何溢出并清除标志或再次强制触发事件? 或者是否有任何硬件可用于此目的?

3) 3) ETFLG.SOCA/B 在脉冲事件发生后"自动"清零。 对吗?

4) 4)我们正在调试一个奇怪的问题、请告知我们。

在 TI F280025控制卡上、软件设置为:

-使用 EPWM1 CMPC 生成 SOCA 以触发许多 ADC 通道。

- CMPC = CMPA >> 1 (即 CMPC = 1/2 CMPA、 递增计数。 动作限定符:ZRO 表示清除、CAU 表示设置)。

在正常情况下、它可以根据需要正常运行。

当发生特殊事件时、用户将 CMPA 设置为0 (占空比0)、但随后所有 ADC 通道都无法采样、这是不需要的。

根据需要、我们认为所有 ADC 仍应采样、因为在该特殊事件期间、它们由 CMPC=0触发。

当 ADC 采样失败时、我们发现 EPWM1 SOCA 似乎无法触发(即挂起)。 ETFLG.SOCA = 1保持不变。 我们不知道原因。

在 CCS 监视窗口上 ETFRC.SOCA 再次强制使用 SOCA 后、它可以再次正常工作。 请注意、无论我们清除了 SOCA (ETCLR.SOCA)、还是在 ETFRC.SOCA 之前清除了 SOCA (ETCLR.SOCA)、它都可以再次正常工作。

因此、我们很困惑 EPWM1 SOCA 为什么会先挂起、然后我们为什么可以通过 ETFRC.SOCA 恢复它。

你有什么意见吗?

黄维恩

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

    1、就溢出而言、这意味着两个事件发生得非常近、在可以采取操作之前发生了另一个事件、没有、我们没有发生溢出。

    2.用户的标志就在那里。  ETFLG 必须由用户清零。 它们在发生时会被锁存。

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

    3、不是、我认为用户必须清除标志。 但是、即使未清除、该事件也会继续生成新事件。

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

     您是否知道导致 FRC 一次性要求的原因?

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

    尊敬的 Nima、Devin:

    对于3)、来自 TRM、

    ETFLG.SOCA:

    "1:表示在 EPWMxSOCA 上生成了转换开始脉冲。 即使设置了标志位、EPWMxSOCA 输出也将继续生成。"

    因此、这意味着即使用户不清除该标志、每次计数器在每个 PWM 周期中比较 CMPC (在本例中)时仍应定期生成脉冲。 我的理解是否正确?

    我在我们的示例代码中看不到 ADC_ex1_SoC_ePWM.c、我们也处理 ETFlG.SOCA。

    对于4)、我们仍然需要您的建议来调试...

    黄维恩

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

    对于3)是的!

    4)让我回顾一些 ADC 设置。

    NIMA

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

    尊敬的 Nima:

    让我离线向您发送 ADC/PWM 设置的代码。

    黄维恩

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

    韦恩、  

    已收到您的电子邮件。 我将很快作出答复。

    NIMA

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

    最终结果为:

    从 Devin:

    "我认为、ADC 中唯一可以阻止的事情是、如果 ADCINTFLG 被置位但不被清零、同时 CONTINUE TO-INTERRUPT 位未置位(INTxCONT)。  您可以检查 INT 溢出标志、或查看设置 INTxCONT 位后行为是否发生变化。  

     

    否则、请注意预分频= 3是无效设置。  这可能是预分频= 2。"

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

    将于今晚晚些时候会面、并发布找到的任何资源。

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

    尊敬的 Nima:

    非常感谢您帮助我们找到根本原因和调试。

    根本原因是 CMPC 高于 TBPRD、因此 ePWM SOCA 没有 counter=CMPC 事件。

    用户已经发现他们的计算在他们的代码中有时是错误的。

    黄维恩