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

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

[复制链接]
9946|124
手机看帖
扫描二维码
随时随地手机跟帖
john-deng|  楼主 | 2016-6-20 09:16 | 显示全部楼层 |阅读模式
本帖最后由 john-deng 于 2016-6-26 19:21 编辑

问题是这样的:用我们板子上ARM芯片(HI3516A)的SPI接口向FPGA板发视频数据(这个FPGA是购买的成品,不能抓log),每次我们板子上电发到十分钟的时候FPGA就开始出现丢数据,此时重启我们的ARM板子FPGA又好了。FPGA板不上电,我们板子先跑十分钟,接到FPGA上时FPGA就在丢数,和我们ARM板接在FPGA上跑10分钟的现象一样。--------感觉就是ARM板跑10分钟后什么地方跑偏了一样。

谢谢大家。

2016.6.23更新如下:后来我们找了一个可以抓log的FPGA进行联调,ARM这边用模拟的可以计数的数据对FPGA发数据,发到10分钟后也会丢数据。也怀疑的ARM的多任务运行对SPI的发送有影响,后面也用SDK的demo SPI例程测试(就是其他程序都不跑,就只跑SPI例程),此时数据速率比较恒定,但是还是跑十分钟就开始丢数。 硬件上,只将ARM的SPI_CLK和SPI_MOSI转成rs422接到GPGA。
软件上,ARM先把数据拆成248字节一包,加上8字节的同步包头一起共256字节发送给FPGA,FPGA在时钟的下降沿取数,没有其他协议,FPGA通过识别前8个字节的包头来同步和识别数据,通过抓包分析,在8M时钟的情况下,通过FPGA的数据有丢失现象:有时丢几个256字节的包,有时丢几十个256字节的包。

到目前为止,发现只有丢数现象,错位也可能有,但是不确定,因为没有包头的数据都丢了。


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

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

通过以上的实验说明我们的ARM板跑十分钟后应该是有什么地方跑偏了,但又不是偏的很厉害(通过其他422转网口板可以传数据)。

我们已经调了半个月了,

想请教一下可能是什么原因?我们板子应该从什么地方入手分析?

补充:

原理图如下,ARM芯片的SPI做为master,通过max3087转为rs422接口再传输给FPGA,距离只有20cm。

目前配的时钟是8M,跑10分钟后FPGA就开始出现丢数,此时量波形并未有异常(时钟下降沿对着数据信号的正中间),把时钟降低到4M的时候也丢数,只是丢的比较少。

其他实验:1)调整接口匹配、更改接线长度和方式,现象没有任何变化,基本排除了硬件接口上的原因。


Snap6.jpg Snap7.jpg

有坛友提出电源的肯能性比较大,因此我又仔细看了一下电源部分,发现我们的设计和参考设计有一个电阻不同,如下图,请问那个电阻是干什么用的?影响大吗?

Snap8.jpg










打赏榜单

21ic小喇叭 打赏了 3.00 元 2016-06-21
理由:比较完整的提问

相关帖子

jjjyufan| | 2016-6-20 09:35 | 显示全部楼层
上原理图 分析
2块板子的连接方式?
SPI 距离?
核对IO 电压域  
SPI速度
示波器 看波形

使用特权

评论回复
摸摸| | 2016-6-20 09:36 | 显示全部楼层
你得先分析是谁丢数据。你这都还没算崩溃,我们有时候查奇怪的问题能查几个月。

使用特权

评论回复
tyw| | 2016-6-20 09:52 | 显示全部楼层
在大流量数据传输过程中,最相关的是FIFO队列的参数配置,配置不当会导致错包或丢包

spi协议及工作原理分析 .pdf (283.25 KB)

使用特权

评论回复
xmar| | 2016-6-20 12:50 | 显示全部楼层
还有:需要明确谁是SPI的主(Master)、谁是SPI从(Slave)。

使用特权

评论回复
john-deng|  楼主 | 2016-6-20 14:35 | 显示全部楼层
jjjyufan 发表于 2016-6-20 09:35
上原理图 分析
2块板子的连接方式?
SPI 距离?

在原帖补充了,请帮忙看一下,谢谢版主。

使用特权

评论回复
john-deng|  楼主 | 2016-6-20 14:55 | 显示全部楼层
摸摸 发表于 2016-6-20 09:36
你得先分析是谁丢数据。你这都还没算崩溃,我们有时候查奇怪的问题能查几个月。 ...

数据肯定是在FPGA丢的,但是对方纠结的是为什么刚上电的时候FPGA不丢数,ARM板跑了10分钟后丢数就越来越厉害,头都大了.....

使用特权

评论回复
john-deng|  楼主 | 2016-6-20 14:57 | 显示全部楼层
tyw 发表于 2016-6-20 09:52
在大流量数据传输过程中,最相关的是FIFO队列的参数配置,配置不当会导致错包或丢包。

谢谢T叔,我更新了一下描述,请帮忙看一下我们的情况属于哪种?

使用特权

评论回复
richard02| | 2016-6-20 15:19 | 显示全部楼层
会不会是422转换芯片有问题?MAXIM的芯片市面上好多假货,我就遇到过这种情况,上电后芯片越来越烫。可以在422后面再把它转成TTL电平,用示波器检测看一下输出波形跟ARM引脚波形的差异

使用特权

评论回复
xmar| | 2016-6-20 15:40 | 显示全部楼层
ARM的CSN0如何连接到FPGA的SPI接口?

使用特权

评论回复
john-deng|  楼主 | 2016-6-20 15:45 | 显示全部楼层
xmar 发表于 2016-6-20 15:40
ARM的CSN0如何连接到FPGA的SPI接口?

没有接,实际到FPGA就CLK 和 SDO。
并且FPGA那边只要在时钟下降沿取数就可以。

使用特权

评论回复
xmar| | 2016-6-20 15:55 | 显示全部楼层
楼主试验一下: ARM板的3.3V电源切断,换用外接低纹波、低内阻、高质量的3.3V电源。看看有无此故障。

使用特权

评论回复
john-deng|  楼主 | 2016-6-20 16:05 | 显示全部楼层
本帖最后由 john-deng 于 2016-6-20 16:14 编辑
xmar 发表于 2016-6-20 15:55
楼主试验一下: ARM板的3.3V电源切断,换用外接低纹波、低内阻、高质量的3.3V电源。看看有无此故障。 ...

嗯,之前试过单独用3.3V给422接口芯片供电,没有变化。也试过在ARM板不断电的情况下串口发命令reboot,刚开始FPGA是不丢数的,跑到10分钟的时候又开始丢了。

使用特权

评论回复
xmar| | 2016-6-20 16:15 | 显示全部楼层
john-deng 发表于 2016-6-20 16:05
嗯,之前试过单独用3.3V给422接口芯片供电,没有变化。也试过在ARM板不断电的情况下reboot,刚开始FPGA是 ...

这不行。还要包括ARM所有供电电源才行。注意:低纹波、低内阻电源。如果没有用5V适配器加2X1000uF电容LM317调整到3.4V~3.5V。

使用特权

评论回复
john-deng|  楼主 | 2016-6-20 16:27 | 显示全部楼层
本帖最后由 john-deng 于 2016-6-20 16:32 编辑
xmar 发表于 2016-6-20 16:15
这不行。还要包括ARM所有供电电源才行。注意:低纹波、低内阻电源。如果没有用5V适配器加2X1000uF电容LM3 ...

好,电源和海思的参考设计是一样,不过为了保险,后面也按你说的测试一下.

使用特权

评论回复
神奇号| | 2016-6-20 17:01 | 显示全部楼层
看着大家的回答学习了。

使用特权

评论回复
lylwff91128| | 2016-6-20 17:02 | 显示全部楼层
xmar 发表于 2016-6-20 15:55
楼主试验一下: ARM板的3.3V电源切断,换用外接低纹波、低内阻、高质量的3.3V电源。看看有无此故障。 ...

这个地方这样改,主要是考虑电源的动态响应不够吗?

使用特权

评论回复
lylwff91128| | 2016-6-20 17:03 | 显示全部楼层
xmar 发表于 2016-6-20 15:55
楼主试验一下: ARM板的3.3V电源切断,换用外接低纹波、低内阻、高质量的3.3V电源。看看有无此故障。 ...

这个地方这样改,主要是考虑电源的动态响应不够吗?

使用特权

评论回复
玄德| | 2016-6-20 17:07 | 显示全部楼层

这样高速,没有同步机制,
错一个bit,后面就全乱了。


使用特权

评论回复
john-deng|  楼主 | 2016-6-20 17:16 | 显示全部楼层
玄德 发表于 2016-6-20 17:07
这样高速,没有同步机制,
错一个bit,后面就全乱了。

现在是把数据拆成256字节一包,前8个字节做同步用的。

使用特权

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

本版积分规则

53

主题

382

帖子

3

粉丝