CYUSB3014通信中断问题

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
xixi_4205191
Level 1
Level 1
5 replies posted First question asked First reply posted

现在使用cyusb3014,将数据通过FPGA发送到CYUSB3014再到电脑端, 每次发送1024个字节,固件使用的官方的固件, 时钟是100M,总线是32位宽,总的数据速率在640Mbps, 测试发现,每隔半个小时,就会出现flagA一直为0 ,不能写数据的情况,发现flagA 为低的时间比较长,大概至少有100ms左右,  导致我这边的数据没法写到cyusb3014去,从而数据丢失。想问下 ,为什么有时候flagA会一直为低,且时间比较长了?

0 点赞
1 解答
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

这个16KB可能是因为brust 为16, endpoint size为1024, 所以在传完16k数据后时序上会有一个间隔。可以参考GPIF中对brust write的仿真时序。

在原帖中查看解决方案

0 点赞
8 回复数
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

您看看FX3的log是否有commit buffer failure. 对于Synchronous Slave FIFO Read,FlagA为低的时间应该为thread切换socket的时间,不应有100ms。对于Asynchronous Slave FIFO Read,FLAGA为低表明DMA buffer已满,这时可能因为commit failure导致此问题。

Regards,
Eddie

0 点赞
xixi_4205191
Level 1
Level 1
5 replies posted First question asked First reply posted

艾迪,你好

      现在我们板子上只有JTAG接口,没有串口,log是必须通过串口才能打印么? 我们现在img用的是slave fifo sync. 因为每次只发1024个字节长度,所以用的是loopback, 没有使用stream_in_out,  下面是我们.h的设备,能帮忙看下有问题么?

pastedImage_0.png

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

你这个loopback和stream_in_out定义的是什么?我们SDK中的example并没有这两个定义。

0 点赞
xixi_4205191
Level 1
Level 1
5 replies posted First question asked First reply posted

Hi

    下面这个是你们官方的AN84868里的.h文件的截图,我刚说错了,我意思是我用的是LOOPBACK_SHRT_ZLP  这个定义。因为每次只想传输1024个字节的。这个buffer好像刚好是1K的

pastedImage_0.png

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

如果你的目标是只是想向PC端传数据,没有必要用loopback,这个是测试用的,有两条DMA通道。

你可以参考下我们FX3 SDK里面的SlaveFifoSync,

0 点赞
xixi_4205191
Level 1
Level 1
5 replies posted First question asked First reply posted

Hi

   我目标是只想向PC端传输数据,单向的,  那意思是使用那个stream_in_么?  但是我每次希望只发送1024个字节, 那个stream_in_out   好像每次是需要写入 16KB数据。

0 点赞
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

这个16KB可能是因为brust 为16, endpoint size为1024, 所以在传完16k数据后时序上会有一个间隔。可以参考GPIF中对brust write的仿真时序。

0 点赞
lich_4062331
Level 1
Level 1
10 replies posted 5 replies posted First reply posted

请问楼主问题解决了吗?我也遇到了这样的问题!

正常工作一段时间后,莫名其妙的就不工作了。用的官方AN65974的源代码,停止时,FLAGA是高,FLAGB为低,一直持续。

0 点赞