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.

[参考译文] TMS320F28377S:DMA 两个缓冲器

Guru**** 2469920 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/988521/tms320f28377s-dma-two-buffers

器件型号:TMS320F28377S

您好!

有一个应用需要 DMA 将 ADC 结果连续复制到频率为400kHz 的 RAM 中。  

一个特殊的请求是、在复制100个 ADC 结果后、DAM 触发 CLA 任务、该任务使用 RAM 中的数据执行一些任务。 在任务执行期间、还会出现一些其他 ADC 结果、这些结果仍需要复制到不同的地址 RAM 中、以便对 CLA 任务使用的原始数据进行类写覆盖。  

我们正在考虑使用两个 DAM 来实现它。 除此之外、还有其他解决方案吗?

非常感谢。

BR、Jordan  

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

    约旦

    看一下 DS、DMA 和 CLA 不能访问相同的 SRAM 块。  如果客户希望 CLA 执行与 C28x 不同的数学运算;那么他需要触发 C28x 以将 ADC 结果从 GX 存储器(DMA 将存储它的位置)复制到消息 RAM 或 LX 存储器、然后 C28x 可以触发 CLA。

    DMA 也无法触发 CLA、我可以在 CLA 触发器列表中看到这一点。

    在 DMA 方面、您可以将其设置为在两个缓冲区之间交替、以避免过写。  我认为这是把每400个字设置为一个传输、并将传输计数设置为2的问题。  两次传输后、影子地址将重新加载到原始复制地址。

    最棒的

    Matthew