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.

[参考译文] TMS570LC4357:澄清了在不禁用 DMA 控制器的情况下 DMA 控制数据包的更新

Guru**** 2462900 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1190477/tms570lc4357-clarification-regarding-dma-control-packet-updates-without-disabling-dma-controller

器件型号:TMS570LC4357

您好、TI 论坛、

我有一个设计、需要通过在多缓冲模式下运行并使用 DMA 的 MIBSPI 外设传输可变长度的数据。

我需要更新 DMA 控制数据包、以配置每次传输的源地址和元件数量、 但是、在查看 TRM (SPNU563A)、第724页、表20-9的 DMA_EN 位说明中、我知道在启用 DMA 控制器之前应设置控制数据包。

不清楚的是、在执行期间、是否应禁用 DMA 控制器以更新控制数据包、或者控制数据包是否可以在执行期间安全更新、而无需禁用然后重新启用 DMA 控制器。 我非常希望避免禁用整个 DMA 控制器来重新配置单个通道、这样会有停止/延迟所有其他 DMA 通道传输的风险。

请注意 、当相关 DMA 通道参与传输时、不会更新控制数据包。

谢谢

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

    大家好、Marc Andre、

    [引用 userid="531255" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1190477/tms570lc4357-clarification-regarding-dma-control-packet-updates-without-disabling-dma-controller "]不清楚的是在执行期间是否应禁用 DMA 控制器以更新控制包[/quot]

    我建议您在更新控制数据包之前禁用 DMA 控制器、因为 如果通道处于挂起状态、更改通道控制数据包的内容将清除相应的挂起位。 如果活动通道的控制数据包发生更改、则该通道将立即在仲裁边界处停止。 当同一通道再次被触发时、它将从新的控制数据包信息开始。

    --

    谢谢、此致
    Jagadish。