单片机作主机,C6748作从机,SPI0,三线模式。单片机一直向C6748发送数据,硬件测试时钟和数据信号都好的,仿真器看RXDATA接收的数据都是错的,这个大概是什么原因?
Shine:
请问数据错的有规律吗?还是随机的数?
fei jie:
回复 Shine:
随机的,没有规律
Tony Tang:
fei jie仿真器看RXDATA接收的数据都是错的,
直接看RXDATA,怎么与当前数据线发的数据对应起来?MCU一直发一个固定的数据吗?
在C6748这边用软件接读RXDATA数据结果如何?
另外可以检查的方向是C6748 SPI时序模式的配置与MCU SPI发出的时序是否一致。
fei jie:
回复 Tony Tang:
是的,我MCU一直发两个固定的数据,目前用软件读取了RXDATA,数据也是毫无规律。 SPI时序指的是时钟的极性和相位吗?
fei jie:
回复 Tony Tang:
刚刚看了下时钟信号太差了,改善了以后,还是错的,只是固定发两个数据,接收也是固定的了。
fei jie:
回复 Tony Tang:
现在的结果是发送0xFF00,接收到0x7F80;发送0x00F0,接收0x0078。接收延迟了一位,我发送和接收的相位设置的是一样的。
fei jie:
回复 Tony Tang:
发送接收相位phase=0时数据是对的,但是phase=1时是右移了一位。按规格书和时序图的说明,两边设置一样应该是数据一样的呀,还是我没看懂,请帮忙解释一下。phase=1用在什么情况呢?