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.
Hello,
我们的SPI通讯出现了一个问题,在Master与Slave全双工通讯的时候(双TDA4 MCU通讯 MCSPI0),slave端Rx数据和Tx数据出现了数据覆盖(通过逻辑分析仪确认Master端Tx数据是正常的;Slave端Tx的数据异常,并且读取的Rx数据也是异常的),我们通过分析异常的数据帧发现,异常的数据帧里面会有32byte的错误数据,其内容为上一帧发送数据的内容,并且这32byte错误数据的位置是随机的,有可能出现在包头和包尾或者中间(我们一帧数据的长度为160byte,使用SetupEB并启用DMA传输方式),错误出现的概率大约为10%,SPI通讯周期为10ms,目前怀疑可能是DMA问题,需要你们的帮助~
for example:
DATA1: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
DATA2: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
DATA3: 3 3 3 3 3 3 2 2 2 2 2 3 3 3 3 3 3 (随机出现在包头 包尾 或 中间,长度为32byte)
DATA4: 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
您好我们已收到您的问题并升级到英文论坛寻求帮助,链接如下,如有答复将尽快回复您:
e2e.ti.com/.../tda4vm-dma-transfer-data-exception-on-slave-side-during-spi-communication
您好,
请问下您是在什么模式下使用的哪个实例?
工程师这边尝试了32 byte传输,将 MCU_McpSI2用作主机,7 MAIN_MCSPI4为从机。
以1秒的频率发送消息时是没有问题的,但尝试100ms 的频率时,出现了与您相同的问题。
SDK 不支持slave模式。
Hello Cherry,
我们使用的mcal版本是v1.3.2,SDK8.2,双TDA4用的都是MCU_MCSPI0, 我们将TDA4_2端通过手动修改代码配置为slave模式。
您那边也复现了此问题,那有什么进展和建议吗?