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.

[参考译文] TMS320F28377D:具有 DMA 访问 MRAM 器件的 SPI

Guru**** 2539500 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/608636/tms320f28377d-spi-with-dma-access-to-mram-device

器件型号:TMS320F28377D
Thread 中讨论的其他器件:controlSUITE

您好!

客户正在设置 SPI 和 DMA 以访问 MRAM 器件。 https://www.everspin.com/family/mr25h10

设置类似于 controlSUITE 中的示例

C:\TI\controlSUITE\device_support\F2837xD\V200\F2837xD_Examples_CPU1\SPI_LOOP_DMA\cpu01\example_2837xD_SPI_dma.c

问题在于、在 TX 和 RX 端、传输无法可靠地进行。 例如、当将 RX 和 TX FIFO 深度设置为4时、客户可以成功写入和读取8个字节、但不能再写入更多字节、其余数据不正确。 将 FIFO 水平设置为10等更高的数字时、可以写入/读取更多的数据、但有用数据少于15个字节。

本示例中有用于设置 RX 和 TX FIFO 的代码

   SpiaRegs.SPIFFRX.All=0x2040;            //启用 RX FIFO、清除 FIFO 内部

   SpiaRegs.SPIFFRX.bit.RXFFIL = FIFO_LVL; //设置 RX FIFO 电平

   SpiaRegs.SPIFFTX.All=0xE040;            // FIFO 被启用、TX FIFO 被释放、

   SpiaRegs.SPIFFTX.bit.TXFFIL = FIFO_LVL; //设置 TX FIFO 电平

DMA 传输设置为 BURST_LENGTH 等于 RX 和 TX FIFO 电平。 这是根据 TRM 第18.3.8.1章使用带有 DMA 的 SPI 发送数据和18.3.8.2使用带有 DMA 的 SPI 接收数据来完成的。

您是否在 SPI 和 DMA 中看到过这种行为?

谢谢、

-Gunter

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

    您能告诉我有关配置的更多信息吗? C28x SPI 是主器件还是从器件? DMA 是传输接收到的数据还是要传输的数据? 您能否发布故障情况下预期数据与接收到的数据?

    此致、
    Kris