打印

EP6=512X2buffer FPGA@5MHz数据发送的数据丢失出错问题

[复制链接]
1716|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
domofin|  楼主 | 2012-11-13 13:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
系统背景:输入时钟5MHz,FPGA内以这个时钟做计数器,0-311循环,case计数器:0-63时按照5MHz往FD[15-0]发自增数据0x0000-0xffff(SLWR<=‘0’)64-311时SLWR<='1';68013在从fifo模式下,autoin模式,512*的缓冲区。上位机就是普通的线程内循环,begin;wait;finish;但是数据写到文件以后会有这样的错误:集中在0x3FFF后的下一包数本应是0x4000,但是经常接受为0x8000,再过512后,又回到0x4100,然后继续正确,具体见图。
CPUCS = 0x10;      
48MHz


IFCONFIG = 0x43;
从FIFO,时钟从外部输入


SYNCDELAY;              

REVCTL = 0x03;

SYNCDELAY;

EP6CFG = 0xE2;


SYNCDELAY;


EP8FIFOCFG= 0x0D;   

SYNCDELAY;

EP6FIFOCFG= 0x0D;   16位auto in

SYNCDELAY;

1.PNG (13.85 KB )

1.PNG

2.PNG (13.65 KB )

2.PNG
沙发
domofin|  楼主 | 2012-11-13 14:07 | 只看该作者
FPGA程序见附件

usb_test.zip

1.13 KB

使用特权

评论回复
板凳
lijixiu| | 2012-12-25 15:32 | 只看该作者
首先你必须设置AUTOUINLENGTH的大小为512,另外,上位机一次读取数据量为2MB,上位机设置与USB的缓冲大小为2MB,这个必须设置,API函数里有这个函数,否则,读取速度会非常慢。你这个情况就是读取速度慢导致丢数!

使用特权

评论回复
地板
yhddlxwzj| | 2013-1-11 16:16 | 只看该作者
楼主解决问题了吗?我也碰到类似问题了

使用特权

评论回复
5
yhddlxwzj| | 2013-1-12 10:59 | 只看该作者
不知道3楼说的函数是哪个?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

0

粉丝