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