发新帖本帖赏金 3.00元(功能说明)我要提问
返回列表
打印

遇到一个疑难问题,要崩溃了

[复制链接]
楼主: john-deng
手机看帖
扫描二维码
随时随地手机跟帖
61
yfy871216| | 2016-6-24 15:06 | 只看该作者 回帖奖励 |倒序浏览
另外,还有一种可能就是数据传输链路速度不匹配造成数据丢失,ARM SPI数据传输的波特率为8Mbps的话,FPGA数据接收的速率达到这个水平是没有任何问题的,关键就在于从SPI转换为RS-422这个过程,数据很大可能是在这个地方丢的,如果只是数据丢了,那么时钟信号应该还是正常的,如果时钟信号通过MAX3087之后都不正常了,那么我只能说楼主采用这种通信方式是有问题的。

使用特权

评论回复
62
john-deng|  楼主 | 2016-6-24 18:56 | 只看该作者
yfy871216 发表于 2016-6-24 15:06
另外,还有一种可能就是数据传输链路速度不匹配造成数据丢失,ARM SPI数据传输的波特率为8Mbps的话,FPGA数 ...

多谢,抓了两天数据,基本锁定我们板子有一定的问题,但还不知道从什么地方入手。

试验结果是这样的:把demo板的SPI接口飞出来,同样的demo程序,demo板SPI接口经过RS422转换到FPGA抓取,没有丢包现象,且速率非常恒定(260K左右)。而同样的demo程序,在我们板子上运行,刚开始速率是160K左右,跑到10多分钟才能稳定在260K左右,就是中间有一个速率的跳变,目前还不知道是什么原因。demo板和我们的板子基本都是最小系统在跑同一个SPI测试程序,但是demo板的接口速率很恒定,我们的板子接口速率有跳变。

使用特权

评论回复
63
ranli55| | 2016-6-24 20:00 | 只看该作者
john-deng 发表于 2016-6-24 18:56
多谢,抓了两天数据,基本锁定我们板子有一定的问题,但还不知道从什么地方入手。

试验结果是这样的:把 ...

速率从160K变到260K ?那肯定会丢包啦,SPI的速率整个过程应该是固定速率的不会变化的,你看下你的时钟电路看看,SPI的速率和时钟直接关联的,你的总线时钟有一个变化,你看下是哪里引起的,把不用的功能都禁用掉一点点的查很容易的就查到的

使用特权

评论回复
64
john-deng|  楼主 | 2016-6-24 21:11 | 只看该作者
ranli55 发表于 2016-6-24 20:00
速率从160K变到260K ?那肯定会丢包啦,SPI的速率整个过程应该是固定速率的不会变化的,你看下你的时钟电 ...

我量了,SPI  CLK 一直是8M,只是数据速率变化了,很纳闷啊

使用特权

评论回复
65
ligoxyz| | 2016-6-25 15:46 | 只看该作者
mark一下,学习。

使用特权

评论回复
66
江南依旧| | 2016-6-25 17:38 | 只看该作者
根据6.24的观察,可以肯定是硬件有问题,那个电阻换了之后,不知道是否已经解决的丢包问题

使用特权

评论回复
67
john-deng|  楼主 | 2016-6-26 09:06 | 只看该作者
江南依旧 发表于 2016-6-25 17:38
根据6.24的观察,可以肯定是硬件有问题,那个电阻换了之后,不知道是否已经解决的丢包问题
...

换了那个电阻没变化。用稳压电源供电也没变化。给内核电源以及DDR电源增加大电容也没变化。换了更好的晶体也没变化。调上电时序和demo板一样也没变化。
现在就一个最小系统了,还是不行……

使用特权

评论回复
68
ranli55| | 2016-6-26 10:44 | 只看该作者
john-deng 发表于 2016-6-26 09:06
换了那个电阻没变化。用稳压电源供电也没变化。给内核电源以及DDR电源增加大电容也没变化。换了更好的晶 ...

还没搞定?  既然demo板可以运行,那就好检查 1.直接用DEMO的烧录程序过来测试 2. 依然不行肯定就是硬件 逐步改成DEMO一样的测试 逐步添加外围

使用特权

评论回复
69
ayl439| | 2016-6-26 11:47 | 只看该作者
关注!不知道楼主的问题解决了没有

使用特权

评论回复
70
john-deng|  楼主 | 2016-6-26 18:55 | 只看该作者
本帖最后由 john-deng 于 2016-6-26 19:00 编辑
ranli55 发表于 2016-6-26 10:44
还没搞定?  既然demo板可以运行,那就好检查 1.直接用DEMO的烧录程序过来测试 2. 依然不行肯定就是硬件  ...

恩,程序用的是demo板的,硬件除了PCB,其他基本和demo板一样了。现在的现象是在demo板上上电就很稳定的260k,我们的板子上电只有160K,要跑十分钟才能上升到260K。
硬件改了复位、上电时序、时钟器件,没有变化,也是要等十分钟我们的板子速度才能上来。
主电源3.3V用安捷伦的高精度电源供,CPU各个电源并47uF大电容,DDR电源加47Uf,结果现象没有变化,上电只有160K速度,要跑十分钟才能上升到260K。
就是做了很多试验,结果的现象没有一点变化,都不晓得要改什么地方了。。。。

使用特权

评论回复
71
lfc315| | 2016-6-26 21:58 | 只看该作者
故障发生的时间固定,故障现象固定,硬件的可能性比较小;
不妨仔细想想,硬件有什么可能会影响到SPI的数据发送速率?
只可能是软件有什么判断条件被触发了,比如两个板的程序一样,但一些设置参数却不一样;
又或者利用某个IO口的高低电平作为判断,但两个板的这个IO口电平不一样。

使用特权

评论回复
72
han0097| | 2016-6-27 09:00 | 只看该作者
换个CPU试试。

使用特权

评论回复
73
john-deng|  楼主 | 2016-6-27 09:05 | 只看该作者
lfc315 发表于 2016-6-26 21:58
故障发生的时间固定,故障现象固定,硬件的可能性比较小;
不妨仔细想想,硬件有什么可能会影响到SPI的数据 ...

SDK 是linux 3.5的内核,跑demo程序需要配置什么参数呢?(我对软件一点不懂,他们软件说环境是一样,但我也没办法确认)

使用特权

评论回复
74
corset| | 2016-6-27 17:51 | 只看该作者
楼主说的这个通讯速率的变化,只能说明demo板通讯数据量比测试板的数据多,但速率是一样的。这个问题应该是测试板的功能和demo板不一样,你可以排查一下;另一个问题,FPGA板和测试板通讯不上,难道相互之间没有通讯协议和机制吗?起码有个数据校验。依我看,FPGA板虽然能正常工作,但它的容错机制做的也不好,信号波形或速率稍微畸变,就不能正常工作了。

使用特权

评论回复
75
liuyu305| | 2016-6-27 21:36 | 只看该作者
如果demo板子能和FPGA板子正常高速工作,那么说明很可能是你们的硬件layout有问题

使用特权

评论回复
76
yfy871216| | 2016-6-28 09:45 | 只看该作者
同意69楼的解释,如果是硬件问题,出现该问题将具有很大的随机性,楼主啊还是让软件人员认认真真的配合查问题吧……

使用特权

评论回复
77
john-deng|  楼主 | 2016-6-28 11:46 | 只看该作者
yfy871216 发表于 2016-6-28 09:45
同意69楼的解释,如果是硬件问题,出现该问题将具有很大的随机性,楼主啊还是让软件人员认认真真的配合查问 ...

不好沟通啊,不懂软件,不知道从什么地方开始查....

使用特权

评论回复
78
ranli55| | 2016-6-28 11:52 | 只看该作者
john-deng 发表于 2016-6-28 11:46
不好沟通啊,不懂软件,不知道从什么地方开始查....

把DEMO板正常运行的MCU拆过来焊上

使用特权

评论回复
79
waiter| | 2016-6-28 12:27 | 只看该作者
给楼主提个建议:
查查FPGA板子上有没有用别人的IP。 有些情况下,IP给你设定了一个评估时间,过了这个评估时间,功能就不保证了。
所以你可以看看。

使用特权

评论回复
80
xiashengcheng| | 2016-6-28 19:36 | 只看该作者
SPI上拉应该是10K吧,怎么1K这么小?换大点4K7-10K

使用特权

评论回复
发新帖 本帖赏金 3.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则