打印

两片GD32E103分别做为主——从SPI通讯,误码问题

[复制链接]
816|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dxfshsh|  楼主 | 2022-5-22 17:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dxfshsh 于 2022-5-22 17:49 编辑

最近,项目需求,要在两个单片机间使用SPI通讯,选用了GD32E103,一个为主,一个为从,15M SPI通讯。
由主向从通讯,没有误码,但由从到主的通讯总是有误码,误码率约为万分之一,查了一个月,没有结果。
不知网上有没有童鞋,遇见同样的问题。
经过一个月的排查,基本排除硬件电路和软件编程问题。

使用特权

评论回复
沙发
dxfshsh|  楼主 | 2022-5-24 22:18 | 只看该作者
现在,初步推测大概率的原因,可能是从SPI接收中断,被从机中的其它高优先级中断干扰了。
从原理上讲,即使这样通常也不应该出错,但现在确实是出错了,可能是从机的高优先级中断用时过多。

使用特权

评论回复
板凳
dxfshsh|  楼主 | 2022-5-28 07:23 | 只看该作者
问题基本找到了,是我们查找BUG的方向出了问题,我们将SPI通讯数据通过USB端口输出到PC进行接收显示,并查看数据错误,发现出现误码的地方和64字节或64字节的整倍数有关,这不应该是SPI传输出现的误码,误码应该来自单片机系统的其它地方,和64字节相关。这正好是USB端口一包的定量。于是我们将测试误码的方向转向了USB接口。并且在论坛上看到了一个关于GD32E103的USB传输有硬件BUG的帖子(见图)。发现问题确实出现在这里。由于SPI传输的速率很高且传输的数据量很大,将这些数据通过USB传输给PC的过程中触发了帖子中提到的BUG。

使用特权

评论回复
地板
dxfshsh|  楼主 | 2022-5-28 11:06 | 只看该作者
再一次的感谢Xiao Dong工程师。专业而细致的探索,并将相关内容提供给大家分享

既然找到了BUG的出处,那么我们就不希望上贴中的情况出现。在收到SPI数据后,不能象开始的时候那样,得到SPI数据立即发送给USB端口,而应当有节奏分批发送给USB端口,避免帖子中描述的状况出现。至此问题得以圆满解决!!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

154

帖子

0

粉丝