记录沁恒芯片的一个bug

使用场景:CH32V203F6P6作为SPI主机(同时使用UART作为调试口)

                  CH32V203C8T6作为SPI从机(同时使用UART作为调试口)

     使用杜邦线进行SPI的链接,USB转TTL也是

但SPI主机发送消息时出现部分情况乱码的现象,开始想着加上CRC进行数据的校验,但发现只要一条数据出现错误之后,

之后的数据均发生错误,如果使用CRC校验的话,后面数据均舍弃,那不就没法进行下去了吗

所以想查一下到底是什么导致数据出错

最终排查出来的问题是:

当使用CH340芯片当USB转TTL的串口收发器时,SPI数据出现错误,注意是只要一接上这个USB转TTL的GND和RXD(因为我只用到了这两个引脚)

就会出现SPI数据出错,而且还只有但SPI主机有这个问题,SPI从机没有这个问题

我认为的原因是

 

 

 

 PA2--UART TX

PA3--UART RX

PA4--SPI SCK

PA5--SPI MISO

PA6--SPI MOSI

看出来了吗   F6P6在PA2/PA3/PA4上没转弯

而C8T6在在PA2/PA3/PA4上转弯了,虽然来说不应该考虑两个引脚之间的干扰,但我使用杜邦线连接,没法和PCB上的电路相比,在前几年也

遇见过类似的现象,当时没在意,修改了引脚定义就好了(当时的芯片型号是STM32F103C8T6)

posted @ 2023-03-09 17:23  TheRemember  阅读(185)  评论(0)    收藏  举报