阅读:3338回复:0
Ez-USB2.0 GPIF的FIFOFlag标志位的问题
请教一个问题:
最近因为图像采集的需要做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流程转入一个暂停取数状态? |
|