OpenEdv-开源电子网

标题: stm32 与fpga进行spi通讯的问题 [打印本页]

作者: ganquanlu    时间: 2016-10-29 17:03
标题: stm32 与fpga进行spi通讯的问题
我用stm32作主机,fpga作从机进行spi通讯,fpga的接收时序,用quaturs仿真时的结果都正确,但是接上线,用stm32给fpga发数据,然后用fpga内部的signaltap看接收数据波形时,有时候数据正确,但是有时候数据不对。。但是重新下载一下fpga程序后,又正确了,我不知道这是什么问题,希望明白的朋友可以指点一二

作者: wye1102    时间: 2016-10-29 20:56
一般来说,SPI的CS是用来复位状态机的。你估计是被那些所谓硬件工程师忽悠着不用复位信号,导致比特位移出错了。
在任何时候,只要CS拉高,不管当前状态如何,Slave状态机必须马上复位;对于写操作,应当马上提交新数据。
作者: ganquanlu    时间: 2016-10-29 23:59
感觉你说得挺对,但是就是不明白为啥fpga在仿真的时候没问题,真正做板级验证的时候就有可能出错,fpga作为从机,其cs信号由stm32产生,并且fpga的接收时序里只有当cs为低并且检测到边沿信号时才会动作。。。我再改改,到时候把程序和波形图发上来
作者: 工控哥    时间: 2016-11-10 09:36
我也在做STM32与FPGA用SPI通讯,你的通讯速率是多少?稳定吗?
作者: xuande    时间: 2016-11-10 11:36

发现很多人都忽视复位问题。



作者: beibei    时间: 2016-11-10 16:49
你好,请问可以分享下你的SPI和FPGA的通讯程序么??
作者: ganquanlu    时间: 2016-11-10 22:52
beibei 发表于 2016-11-10 16:49
你好,请问可以分享下你的SPI和FPGA的通讯程序么??

还没调试好
作者: ganquanlu    时间: 2016-11-10 22:52
工控哥 发表于 2016-11-10 09:36
我也在做STM32与FPGA用SPI通讯,你的通讯速率是多少?稳定吗?

就是不稳定啊,数据容易出错
作者: beibei    时间: 2016-11-11 10:12
ganquanlu 发表于 2016-11-10 22:52
还没调试好

想请教下是如何进行调试的??因为我这边CPLD之前是写好的,但是芯片换成了32,之前的MCU已经是调试好的了,可以看一看你的SPI_Init函数和SPI数据传输发送的函数么??
作者: Yyan    时间: 2016-11-15 16:50
这个和复位有啥关系?
时钟用的CPU发过来的时钟?
个人觉得不要用CPU的时钟,因为你不清楚这个时钟的相位关系你怎么能用这个时钟来驱动数据呢?相当于是随路时钟的问题了
这个情况我觉得直接就按跨异步时钟域来处理,直接把CPU到FPGA的数据和控制信号打两拍到FPGA的时钟域,用FPGA的时钟来做采集,应该可以解决这个问题
作者: 流畅lkl    时间: 2017-7-20 10:17
楼主代码呢?
作者: 呵呵呵开西寨    时间: 2017-7-22 15:47
楼主 分享一下呗
作者: 蜗牛142    时间: 2017-10-27 16:24
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com/) Powered by Discuz! X3.2
/* */