打印

CPLD和单片机通信问题

[复制链接]
1798|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
问题是这样的,小弟用CPLD向单片机发送一个32位数据,0xaaaaaaaa,单片机通过SPI中断接收,单片机这边已经把SPI中断设置为最高中断优先级了,但是接收到的数据却是如上图所示,其中这个数据只是一个实例,还有其他的数据。数据该是高电平1的时候单片机收到0,该低的时候为1,但前两个字节左右又是正确的。请问这是PCB干扰问题还是程序问题呢?附上程序。谢谢各位!


相关帖子

沙发
axietiancai|  楼主 | 2017-5-27 11:28 | 只看该作者

使用特权

评论回复
板凳
axietiancai|  楼主 | 2017-5-27 11:35 | 只看该作者

附上SPI时序,由于是32位数据所以只截取了一部分。

使用特权

评论回复
地板
chunyang| | 2017-5-27 20:15 | 只看该作者
显然是程序问题,根据存储示波器捕获的结果先确认是否为CPLD编程的问题,否定的话,检查MCU的程序。

使用特权

评论回复
5
Prry| | 2017-5-27 23:37 | 只看该作者
单片机一般使用SPI的主机模式,我从模式没有过,但从模式会比主机模式复杂些。你这类情况一般是程序问题,PCB布线在极端恶劣环境下才会影响spi,百度相关关键字,多调试程序!

使用特权

评论回复
6
axietiancai|  楼主 | 2017-5-28 14:11 | 只看该作者
chunyang 发表于 2017-5-27 20:15
显然是程序问题,根据存储示波器捕获的结果先确认是否为CPLD编程的问题,否定的话,检查MCU的程序。 ...

谢谢解答。示波器图是探头接地时显示的波形图,当没有接地的时,波形很糟糕。我的PCB上既有DCDC模块,又有GPS模块,布局布线的时候也没太多考虑,所以现在问题比较模糊了。CPLD只管发送数据,当另外一个引脚输出低电平提醒单片机开始采集数据。单片机收到这个低电平信号之后,开启中断,进入SPI中断接收两次8位数据,MCU程序确实问题不大。

使用特权

评论回复
7
axietiancai|  楼主 | 2017-5-28 14:13 | 只看该作者
Prry 发表于 2017-5-27 23:37
单片机一般使用SPI的主机模式,我从模式没有过,但从模式会比主机模式复杂些。你这类情况一般是程序问题,P ...

谢谢回复。从机模式只管接收,我这里使用的SPI中断接收,只需要配置一下SPI进入中断接收两次SPI数据即可。另外,主机时钟为1.3KHZ,从机以24M/128的速度进行采集,这样会影响接收数据的正确与否吗?

使用特权

评论回复
8
chunyang| | 2017-5-28 15:55 | 只看该作者
axietiancai 发表于 2017-5-28 14:11
谢谢解答。示波器图是探头接地时显示的波形图,当没有接地的时,波形很糟糕。我的PCB上既有DCDC模块,又 ...

有没有问题以实际为准,如前帖的检查步骤去认真检查吧。

使用特权

评论回复
9
Prry| | 2017-5-29 09:44 | 只看该作者
axietiancai 发表于 2017-5-28 14:13
谢谢回复。从机模式只管接收,我这里使用的SPI中断接收,只需要配置一下SPI进入中断接收两次SPI数据即可 ...

spi是同步通信,跟你从机时钟无关,时钟信号由主机提供。检查spi的从机配置代码。

使用特权

评论回复
10
yddjz| | 2017-6-10 00:50 | 只看该作者

使用特权

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

本版积分规则

15

主题

89

帖子

2

粉丝