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.

[参考译文] F29H850TU:RTDMA 触发器和 EPWM CMPA/B 影子到有效负载在同一计数器周期内发生时的运行顺序

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1620201/f29h850tu-order-of-operations-when-rtdma-trigger-and-epwm-cmpa-b-shadow-to-active-load-occur-in-the-same-counter-period

器件型号: F29H850TU

尊敬的 TI 专家:

我正在 ePWM 计数器周期触发 RTDMA 来更新 ePWM CMPA/B 寄存器。 当我将 ePWM CMPA/B 影子到活动加载时序配置为与 RTDMA 触发器在相同的计数器周期内发生时、首先会发生哪个事件:RTDMA 写入 CMPA/B 或 ePWM 寄存器从影子到活动状态加载?

我最初的理解是:  
(1) ePWM 加载寄存器(读取旧值)并应用占空比、
(2) 然后 DMA 更新寄存器、
(3) 在下一次加载正时、新的负荷将生效。

然而、当在此配置下测试 PWM 行为时、我观察到了结果取决于 DMA 写入完成时序的情况:
(2) DMA 更新寄存器、
(1) 然后、EPWM 加载寄存器、和
(3) 新值立即生效。

如果按照设计排序、我需要在 ePWM 加载时序后触发 DMA。 为确保在 DMA 更新寄存器之前已加载 ePWM、应该延迟多少个系统时钟周期来触发 DMA?

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

    尊敬的 Kiyora:

    DMA 触发源名称是什么? 是否使用同一事件触发 DMA 以及与影子加载事件相同?  例如、您是否可以在同一周期内为影子活动加载事件使用不同的 PWM 事件(即计数器= 0)?  

    通常、DMA 提供相当 瞬时的读取/写入操作、因此您可能希望使用延迟来帮助按照所需的顺序管理事件。

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    感谢您发送编修。

    我的道歉,“我观察到的情况下,结果取决于 DMA 写完成时间“是一个误解。

    我在 DMA 传输完成中断处理程序中切换 GPIO 以确认传输完成时序、但我发现中断嵌套已禁用、从而导致 GPIO 更改时序与实际传输完成不对齐。

    如您在另一个 QA 中所述、DMA 传输需要 TRM 12.5 中描述的周期数、因此我知道、如果同时触发 DMA 传输和寄存器加载、则将首先加载 CMPA/B。

    我已将 DMA 触发设置为 ePWM2 计数器 0、并将加载触发设置为 ePWM2 计数器 0。
    建议您将加载触发设置为 ePWM1 计数器 0、将 DMA 触发设置为 ePWM2 计数器 0(ePWM1 和 2 同步)。

    此致、

    Kiyora