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 更新 CMPA 值以使用 ePWM 生成正弦波

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1302308/tms320f28379d-update-cmpa-value-with-dma-to-generate-sine-wave-using-epwm

器件型号:TMS320F28379D

我正在尝试使用 DMA 更新 PWM 的 CMPA 值、以便生成正弦波、而无需使用中断。

我正在使用一个包含32个 uint16值的数组、通过使用 DMA 更新 CMPA 值。

当 TBCTR 为零时、我要使用 ePWM SOCA 触发 DMA。

我只想在每次 SOCA 被触发时将一个16位字传输到 CMPA 寄存器、而在传输完成后移动到数组中的下一个索引。

传输32个值(每个 SOCA 1个值)后、我想回绕到阵列的开头。  

在尝试实现这一点时、我遇到了几个问题:

源地址似乎更新正确、但从未写入目的地址。

我也不能完全理解换行-似乎你能够在 x 个突发后包装地址、而不是像我尝试实现的那样在 x 个传输后包装地址。

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

    我找到了这个问题。

    DMA 正在读取的数组需要存储在 GS RAM 中。

    一旦我在 GS RAM 中对数组进行了初始化、我的代码就能正常工作。

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