CH573 SPI设置为从机时中断接收出现误码

请教,我现在用ch573的spi从机进行通信,spi从机发送使用DMA发送,并使能DMA发送完成中断,目前spi从机发送测试正常;同样的通信频率,用示波器观察,spi通信速率在200k左右,ch573的spi接收却出现问题了,使用的是spi单字节传输完成中断;现象如下:

1、ch573 spi从机接收数据会有部分bit高低判断出现问题,例如主机发送0x52, ch573接收为0x5A, 主机发送0x53, ch573接收为0x5B, 也就是说最高位的0判断为1了,导致接收出现问题;主从通信使用的时模式0

2、如果把主机每次发送数据时加上延时,问题能够解决;

请问下这是什么原因导致的ch573 spi主从接收速度有差异呢?这个问题该怎么解决呢?

有没有相关技术人员,麻烦解答下


用示波器抓波形并解析,查看发送数据的时候,cs线是否有先拉低,发送完成再拉高。查看clk和数据线的解析数据,提供出来看下。


icon_jpg.gif主机发送添加延时后ch573接收正确.png

icon_jpg.gifch573_未加延时错误数据.png

附件分别是主机发送是否接收数据时 , 逻辑分析仪抓取的CLK和MOSI数据

如若需要,我把CS信号也在逻辑分析仪中添加

另外在主机程序中,在发送数据前已经对CS信号拉低进行片选,数据发送完成后,进行拉高操作


更新补充下,上午用示波器观察时钟,把CLK的频率计算错了,实际上CLK的频率是2MHz, CH573 spi的最高频率应该也不止2M吧


再次麻烦相关技术解答下,或者有SPI作为从机,使用DMA中断进行发送和接收的例子,麻烦请发邮箱个人信息保护,已隐藏


使用SPIdma中断收发可以参考:

CH58xSPI0中断DMA - SweetTea_lllpc - 博客园 (cnblogs.com)

代码发送到你邮件。

上面描述的问题,查看主机发送的波形是可以抓取到正常,理论上从机从DMA进行取数据也是正常的。

可以使用上面提供的demo,再测试一下看看是否取数据为异常。

spi的时钟频率

image.png

如果方便的话,可以提供一下代码我们进行测试。


你好,代码已提供,请问测试结果有了吗?

我现在使用CH573用作SPI主机进行接收数据,发现也会出现误码,发送0x33,CH573误判为0x3B, 只有把spi主频降低后,问题才稍有改善,希望官方重视下这个问题!!!


主机测试的时候,可以将发送数据加上延时,邮件已回复。


只有登录才能回复,可以选择微信账号登录