大家好、
通过将 SoC 用作 SPI 主机、以20ms 的间隔一次性读取128个字节的数据。 TMS570LS1227的 SPI4是一个从器件、使用 DMA 进行具有1个 DMA 元素数量和128帧的数据传输。
问题:在 TMS570中定义了一个要发送的128字节的数组、如果数组内容保持不变、SPI 主机可以连续正常读取从机数据。 但是、当分配改变了 SPI 从站阵列的内容时、SPI 主机读取的内容将被移位。
DMA 启动后、SoC 的 SPI 主机可以连续正常读取数据、而无需 TMS570 SPI 从器件对阵列进行分配更改、如图所示:
下图显示了从 SPI 主机程序启动开始算起一段时间内从 SoC SPI 主机程序读取的数据、此时 TMS570 SPI 从器件在 DMA 启动后对阵列的第四个字节进行分配更改为:
下图显示了在 SPI 双通信程序运行一段时间(在此期间、从器件发送数据字节4仍分配有时序变化)后、SoC SPI 主机程序读取的从器件数据会发生移位:
在循环或 DMA 帧传输完成中断中、从从器件分配的阵列是不可避免的。
您能帮助检查这个问题吗? 谢谢。
此致、
切里