OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10027|回复: 13

stm32 与fpga进行spi通讯的问题

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-7-1
在线时间
11 小时
发表于 2016-10-29 17:03:40 | 显示全部楼层 |阅读模式
1金钱
我用stm32作主机,fpga作从机进行spi通讯,fpga的接收时序,用quaturs仿真时的结果都正确,但是接上线,用stm32给fpga发数据,然后用fpga内部的signaltap看接收数据波形时,有时候数据正确,但是有时候数据不对。。但是重新下载一下fpga程序后,又正确了,我不知道这是什么问题,希望明白的朋友可以指点一二

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2012-6-11
在线时间
8 小时
发表于 2016-10-29 20:56:09 | 显示全部楼层
一般来说,SPI的CS是用来复位状态机的。你估计是被那些所谓硬件工程师忽悠着不用复位信号,导致比特位移出错了。
在任何时候,只要CS拉高,不管当前状态如何,Slave状态机必须马上复位;对于写操作,应当马上提交新数据。
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-7-1
在线时间
11 小时
 楼主| 发表于 2016-10-29 23:59:13 | 显示全部楼层
感觉你说得挺对,但是就是不明白为啥fpga在仿真的时候没问题,真正做板级验证的时候就有可能出错,fpga作为从机,其cs信号由stm32产生,并且fpga的接收时序里只有当cs为低并且检测到边沿信号时才会动作。。。我再改改,到时候把程序和波形图发上来
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-11-28
在线时间
4 小时
发表于 2016-11-10 09:36:05 | 显示全部楼层
我也在做STM32与FPGA用SPI通讯,你的通讯速率是多少?稳定吗?
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2016-11-10 11:36:02 | 显示全部楼层

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


回复

使用道具 举报

15

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2016-9-26
在线时间
26 小时
发表于 2016-11-10 16:49:15 | 显示全部楼层
你好,请问可以分享下你的SPI和FPGA的通讯程序么??
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-7-1
在线时间
11 小时
 楼主| 发表于 2016-11-10 22:52:10 | 显示全部楼层
beibei 发表于 2016-11-10 16:49
你好,请问可以分享下你的SPI和FPGA的通讯程序么??

还没调试好
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-7-1
在线时间
11 小时
 楼主| 发表于 2016-11-10 22:52:44 | 显示全部楼层
工控哥 发表于 2016-11-10 09:36
我也在做STM32与FPGA用SPI通讯,你的通讯速率是多少?稳定吗?

就是不稳定啊,数据容易出错
回复

使用道具 举报

15

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2016-9-26
在线时间
26 小时
发表于 2016-11-11 10:12:40 | 显示全部楼层

想请教下是如何进行调试的??因为我这边CPLD之前是写好的,但是芯片换成了32,之前的MCU已经是调试好的了,可以看一看你的SPI_Init函数和SPI数据传输发送的函数么??
回复

使用道具 举报

0

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
705
金钱
705
注册时间
2016-6-19
在线时间
104 小时
发表于 2016-11-15 16:50:43 | 显示全部楼层
这个和复位有啥关系?
时钟用的CPU发过来的时钟?
个人觉得不要用CPU的时钟,因为你不清楚这个时钟的相位关系你怎么能用这个时钟来驱动数据呢?相当于是随路时钟的问题了
这个情况我觉得直接就按跨异步时钟域来处理,直接把CPU到FPGA的数据和控制信号打两拍到FPGA的时钟域,用FPGA的时钟来做采集,应该可以解决这个问题
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2016-3-3
在线时间
13 小时
发表于 2017-7-20 10:17:31 | 显示全部楼层
楼主代码呢?
回复

使用道具 举报

4

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2017-3-11
在线时间
78 小时
发表于 2017-7-22 15:47:45 | 显示全部楼层
楼主 分享一下呗
回复

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-10-25
在线时间
3 小时
发表于 2017-10-27 16:24:45 | 显示全部楼层
你是否有以下情况:
1.花了大量时间自学,学了一大堆,却不知道有没有用?!!
2.一点小问题就卡住学习进程,浪费了宝贵的学习时间?!!
2.能看懂别人的代码,到自己设计时却不知道先从哪里下手?!!
3.找不到工作,面试难?!!看别人有10K+薪水,而自己只有几K?!!
不要犹豫了,赶紧来报班培训吧,自学没个几年根本达不到就业水平,时间就是金钱,早掌握早赚钱。
明德扬专业FPGA培训,带你摆脱上面的三种情况,一对一辅导教学,您完全掌握了老师才开始下一个知识点的教学,不用担心大班教学跟不上其他学员进度,明德扬承诺能真正让你拥有独立完成任意FPGA项目的能力。
就业班:10800
周末班:7999
网络班(线上真人教学):5999
20000以下找对手,欢迎对比,了解更多请Q我821219077,竭诚为您服务。
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2017-8-29
在线时间
16 小时
发表于 2018-10-30 09:16:44 | 显示全部楼层
楼主,我之前也遇到这个问题,时序都对,但是通讯有时正常有时异常;
后来发现是stm32和FPGA没有共地,
你看看你是不是这种情况
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 01:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表