Cypress技术william hill官网
直播中

南中南

8年用户 952经验值
擅长:光电显示
私信 关注

CYUSB3014使用自带的SlaveFifoSync固件会丢包的原因?怎么处理?

芯片:CYUSB3014
使用自带的SlaveFifoSync固件

FPGA每200us发送一个包,每个包的大小为512个字节,如下,第一个字节表示包数
1  0 1 .... 255 0 1 ...254
2  0 1 .... 255 0 1 ...254
3  0 1 .... 255 0 1 ...254
PC上接收到的数据如下:
2           0 1 .... 255      0 1 ...254
100       0 1 .... 255      0 1 ...254
24 25 。。。            253 254  231 232 233 234 。。。254
202       0 1 .... 255      0 1 ...254
丢了很多包,而且偶尔会有错误出现,
并且接收到的好像都是偶数包!!!!!!

使用的PCLK为80M,FPGA那边抓波形没发现问题,这个可能的原因是什么?
                     

回帖(1)

打马过草原

2024-2-29 15:39:58
CYUSB3014使用自带的SlaveFifoSync固件丢包的可能原因有以下几个:

1.  数据传输速率不匹配:可能是FPGA和CYUSB3014之间的数据传输速率不匹配导致丢包。确保FPGA和CYUSB3014的传输速率设置正确。

2.  性能问题:CYUSB3014的USB接口可能处理不了FPGA每200us发送一个512字节大小的包的速率。可以尝试减少FPGA发送的数据包的频率或者增加CYUSB3014的处理性能。

3.  USB缓冲区溢出:可能是CYUSB3014的USB缓冲区无法及时处理传输的数据包,导致溢出丢包。可以尝试增加USB缓冲区的大小或者减少FPGA发送数据包的大小。

针对以上问题,可以尝试以下处理方法:

1.  检查数据传输速率:确认FPGA和CYUSB3014之间的数据传输速率设置是否正确。

2.  优化性能:提高CYUSB3014的处理性能,可以尝试升级固件版本或者使用更高性能的硬件替代CYUSB3014。

3.  调整数据包发送频率和大小:减少FPGA发送数据包的频率,以及适当调整数据包的大小,确保CYUSB3014可以及时处理传输的数据。

4.  增加USB缓冲区大小:修改CYUSB3014的配置文件,增加USB缓冲区的大小,以增加CYUSB3014的接收能力。

5.  通过硬件加速:添加FPGA或其他辅助设备,来增加数据处理的能力,以减少丢包的可能性。

注意:以上是一些常见的处理方法,对于具体情况,还需要根据实际情况进行调试和优化。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分