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 驱动的 SPI 从器件从主器件错误循环回数据

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1382954/tms320f28377s-dma-driven-spi-slave-looping-back-data-from-master-error

器件型号:TMS320F28377S
Thread 中讨论的其他器件:C2000WARE

工具与软件:

我正在尝试使用 DMA 来实现 SPI 从器件、并且遇到了将数据发送回主器件的问题。  我已经确认 RX 和 TX DMA 通道都指向 SpicRegs。 SPIRXBUF 和  SpicRegs。 虽然 RX 缓冲区的 DMA 是分别工作 SPITXBUF 和 SPITXBUF、但是 TX 会给我带来麻烦。  我已经注册了 DMA 中断并确认它已启用、但不会触发该中断。  此外、即使 SpicRegs 中没有任何内容也是如此。 SPITXBUF、SPI 从器件正在发送数据。 会填充 SPIDAT 寄存器并发送位、我不确定此数据来自哪里。  除了 SpicRegs.SPITXBUF 之外、什么可以填充此寄存器?

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

    尊敬的 Ben:

    需要注意的一点是、SPI 配置的顺序对于 正常运行非常重要。 确保从正确的寄存器进行读取和写入。 例如、

     

    您还可以参考此示例。 虽然从技术上 讲、对于 F2838x 而言、总体概念 应保持不变、因为 IP 非常相似(几乎相同): C2000Ware_x_x_xx_xx\driverlib\f2838x\examples\c28x\spi\spi_ex5_loopback_dma。

    此致、

    Aishwarya.