archdemo
驱动牛犊
驱动牛犊
  • 注册日期2005-09-16
  • 最后登录2009-07-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3186回复:0

Ez-USB2.0 GPIF的FIFOFlag标志位的问题

楼主#
更多 发布于:2009-03-05 16:29
请教一个问题:
最近因为图像采集的需要做ez-usb的开发,数据采集带宽要求30MBytes/s左右。
为此需要尽可能加快传输速度。我测试用的传输过程使用EP6,buffer为512*4,使用AUTOIN模式,即传输过程不由CPU控制,
CPU只控制GPIF的初始化和启动等。
GPIFTCB0,1,2,3设置为40960,启动一次GPIF传输40K字节数据。

在GPIF波形图中设置了判断TCExpire的条件,即传输的字节达到40K字节,停止传输。
按照这种配置传输 512*4个字节后,传输就停止了。

猜测是由于FIFO缓冲区满以后,GPIF放在Data线上的数据不能进入FIFO造成。

进一步加入逻辑判断FIFOFlag,如果FIFOFlag=0,进入一个死循环 ,暂停传输数据
这样配置后,可以传输40K字节数据。但发现在写入513字节后FIFOFlag就为0,整个流程中,FIFOFlag经常为0,大大降低了数据传输速度。

我的问题是FIFOFlag的含义究竟是什么(不要说RTFD,文档写的不太明确),
在EP被配置为AUTOIN模式下有没有一个标记代表512*4,四个缓冲区全满,完全无法写入数据,好让GPIF流程转入一个暂停取数状态?
游客

返回顶部