搜索
bottom↓
回复: 9

Cyusb3014 USB 3.0芯片传到电脑端的数据错误

[复制链接]

出0入0汤圆

发表于 2015-4-22 19:40:11 | 显示全部楼层 |阅读模式
具体情况是这样的:我通过FPGA发送的数据经过Cyusb3014 USB 3.0芯片传输到电脑端,Cyusb 3014配置为同步Slavefifo 传输,16位数据总线,接口频率100MHZ。现在出现的问题是如果FPGA发送的数据刚好是100MHZ,那么出来的数据是没问题的;但是如果FPGA以20MHZ的速率发送数据,那接收到的数据同一个数会出来5次,如下图1所示;50MHZ那么一个数出来2次,以此类推。感觉USB3.0那块片子一直以100MHZ的速率往电脑端发,完全没有理会我这边发送的是20MHZ的数据,空了之后继续以原来那个数据传到电脑直到下一个数据更新。不知到是什么原因,感谢大神指导!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入442汤圆

发表于 2015-4-23 11:35:01 | 显示全部楼层
你FPGA给的时钟始终是100MHz

出0入0汤圆

 楼主| 发表于 2015-4-23 16:33:34 | 显示全部楼层
wye11083 发表于 2015-4-23 11:35
你FPGA给的时钟始终是100MHz

我现在改了FPGA输出给USB 3.0的时钟为20MHZ,仿真出来的也是20MHZ,如图2中的clk_out  是输出给usb 3.0芯片的;但是这么一来PC端就收不到数据了,如图3中显示的BULK IN transfer       BULK IN transfer failed with Error Code:997
这是怎么回事呢 ;谢谢~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-4-23 16:38:54 | 显示全部楼层
wye11083 发表于 2015-4-23 11:35
你FPGA给的时钟始终是100MHz

对了,仿真图里面的16位 fdata就是发送给usb芯片传到电脑端的数据,当clk_out改回为100MHZ的时候PC端又能收到数据了


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入442汤圆

发表于 2015-4-23 20:26:22 | 显示全部楼层
uestc19 发表于 2015-4-23 16:38
对了,仿真图里面的16位 fdata就是发送给usb芯片传到电脑端的数据,当clk_out改回为100MHZ的时候PC端又能 ...

那我就不知道了,反正我多少速度都测试过,最高稳定340MB/s传输,除了在Intel原生上需要关掉电源管理外,没有别的问题。

出0入0汤圆

 楼主| 发表于 2015-4-23 21:53:21 | 显示全部楼层
wye11083 发表于 2015-4-23 20:26
那我就不知道了,反正我多少速度都测试过,最高稳定340MB/s传输,除了在Intel原生上需要关掉电源管理外, ...

那再问一下你在测不同速度的时候是只改了FPGA发送给GIIF II的时钟吗?还是固件程序里也有需要改变的呢?

出0入442汤圆

发表于 2015-4-23 22:27:51 | 显示全部楼层
uestc19 发表于 2015-4-23 21:53
那再问一下你在测不同速度的时候是只改了FPGA发送给GIIF II的时钟吗?还是固件程序里也有需要改变的呢? ...

噢,有一点,我只用了32bit,没用16bit。当初测试稳定性时专门测过不同时钟的。

出0入0汤圆

 楼主| 发表于 2015-4-24 09:37:39 | 显示全部楼层
wye11083 发表于 2015-4-23 22:27
噢,有一点,我只用了32bit,没用16bit。当初测试稳定性时专门测过不同时钟的。 ...

噢,谢谢,能不能看下你的固件程序和FPGA程序呢~~

出0入442汤圆

发表于 2015-4-24 15:08:58 | 显示全部楼层
uestc19 发表于 2015-4-24 09:37
噢,谢谢,能不能看下你的固件程序和FPGA程序呢~~

固件没任何东西,只是调用SlaveFIFO初始化一下。不过注意DMA缓冲大小一定得是Burst Length的整数倍,比如BL=16,则缓冲区必须为16K的整数倍大小,即16*1K,8*2K,====。

出0入0汤圆

 楼主| 发表于 2015-4-24 15:24:54 | 显示全部楼层
wye11083 发表于 2015-4-24 15:08
固件没任何东西,只是调用SlaveFIFO初始化一下。不过注意DMA缓冲大小一定得是Burst Length的整数倍,比如 ...

谢啦哈,我解决了哈,是我FPGA的问题,谢谢你的热心解答~~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 00:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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