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.

[参考译文] TMS320F28386D:寻求有关使用特定协议的 DMA/SPI 的建议

Guru**** 2455450 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1000454/tms320f28386d-seeking-for-advice-on-dma-spi-usage-with-specific-protocol

器件型号:TMS320F28386D
主题中讨论的其他器件:C2000WARE

您好!

我有一个与具有特定协议的 SPI 总线连接的特定组件。

该协议由对应于运算代码的第一个数据字节后跟1个或多个数据字节组成。  切勿在每个字节之间禁用芯片选择、相应的访问数据位于 FIFO 中、这是可以实现的。

我需要在我们的实时周期内执行多个此类访问、而无需 CPU 操作、因为每次 访问之间必须停用芯片选择。

我不知道如何使用可用的 DMA 触发器实现这一点,您是否有任何想法建议?

此致、

克莱蒙特

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

    Clement、

    如果您打算在特定的时间间隔发送/接收、您可以考虑使用 CPU 计时器触发器/ePWM 触发器来触发 SPI 发送/接收操作。

    您是否已经了解了 C2000Ware 示例中提供的 SPI_ex4_loopback _DMA 示例? 这显示了如何配置 SPI/DMA。

    此致、

    曼诺伊

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

    您好!

    我们过去已经实现了 DMA/SPI 传输。

    我在这里关注的是如何在不使用 SPITXDMA 事件的情况下实现特定的协议受限功能。

    但是,一种解决方案可能是使用内部计时器来管理它,因为我认为即使计时器仍产生新的中断,也可以在 X 次传输后停止 DMA?

    此致、

    克莱蒙特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="365761" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1000454/tms320f28386d-seeking-for-advice-on-dma-spi-usage-with-specific-protocol/3696749 #3696749"]但可能的解决方案是使用内部计时器对其进行管理,因为我认为即使计时器仍产生新中断,也可以在 X 次传输后停止 DMA?

    如果希望在'X'传输后停止 DMA 传输、请确保通过清除 mode.continuous = 0来配置 DMA 以在'X'传输后禁用 DMA 通道。