TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS570LS1227: SPI从机使用DMA发送数据发生移位

Part Number:TMS570LS1227

程序背景:使用SoC作为SPI主机,单次读取数据128 Bytes,间隔 20ms 。TMS570LS1227的SPI4作为从机,使用DMA进行数据发送,DMA元素个数为1,帧数为128。

程序现象:当我在TMS570中定义一个128 Bytes 的数组进行发送,如果数组内容一直不变化,SPI主机则可以持续正常读取从机数据。但是当我赋值改变SPI从机数组内容时,SPI主机读取到的内容将发生移位。

                                          图1

上图1是DMA启动后,TMS570 SPI从机不对数组进行赋值改变时,SoC的SPI主机持续正常读取数据

                                          图2

上图2是DMA启动后,TMS570 SPI从机对数组第4个字节进行赋值改变时,SoC的SPI主机程序启动开始一段时间内可以正常读取数据

                                          图3

上图3是SPI双机通信程序运行一段时间后(此过程中任然对从机发送数据第4字节进行定时改变赋值),SoC的SPI主机程序读取的从机数据发生偏移。

我发现从机对数组的赋值操作,无论放在循环中进行,还是DMA帧传输完成中断中进行都无法避免!

请问该如何避免这种情况的发生?

Cherry Zhou:

Hi Rui,

您的问题我们升级到英文论坛看下,链接如下:

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1243685/tms570ls1227-shifts-occur-when-the-spi-slave-sends-data-using-dma

这个帖子我们会先关闭,如需帮助您可以随时reopen。

Thanks

,

Cherry Zhou:

Hi,

英文论坛已有工程师在跟进您的问题,您可以持续关注:

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1243685/tms570ls1227-shifts-occur-when-the-spi-slave-sends-data-using-dma

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LS1227: SPI从机使用DMA发送数据发生移位
分享到: 更多 (0)