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.

[参考译文] TMS320F28379D:DMA 传输可设置多个 PWM 的 CMPA、CMPB

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1038031/tms320f28379d-dma-transfer-to-set-cmpa-cmpb-of-multiple-pwms

器件型号:TMS320F28379D

您好!

我需要设置3个 PWM 模块(1、2、3)的 CMPA/B。

是否可以配置单个 DMA 通道将 CMPA/B 值写入这3个模块、即使地址不是连续的?

我想定义1次突发传输和3次传输、也许有办法在传输之间定义地址中的"跳转"?

如果没有、我想唯一的方法是配置3个不同的 DMA 通道?

谢谢!

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

    Mojo、

    这应该是可能的。  我假设您需要写入 PWM1的 CMPA/B、然后是 CMPA/B PWM2、最后是 PWM3的 CMPA/B。  

    CMPA/B 是每个 PWM 中的连续地址,因此您只需执行猝发步骤+1、4个16位写入(或2个16位写入,如果您不使用 CMPA/B 寄存器的 HR 部分,则需要执行猝发步骤+2)。  

    然后、您将需要再执行2次;因此我们可以使用传输计数和步骤来执行此操作。  传输大小为2 (这将执行总共3次 DMA 突发)、然后使用目标传输步骤递增到 PWM2地址空间。  之前的突发大小/步长将负责其余工作。

    如果您在所有 PWM 上写入相同的值、则可以使用源传输步骤进行反向跟踪、或者如果有6个不同的值、则可以在该数组中向前移动、以便在每个 PWM 上写入正确的值。

    最后、您希望这一切都通过单个触发器实现、以便在 DMA 中启用 OneShot 模式。

    如果您有任何问题、请告诉我、我们可以从那里解决。

    最棒的
    Matthew

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

    谢谢!

    它工作得非常完美

x 出现错误。请重试或与管理员联系。