阅读:1759回复:5
68013 bulk 丢数据问题请教
FPGA+68013+PC,将FPGA中的FIFO的数据读到PC,RDY0接该FIFO的空信号,即不空就一直读。
没用flowstate,每个包内不丢数,到4k时丢数据,以后每2K就丢数据,当我去掉逻辑判断RDY0信 号时,就不丢数了,是波形的问题么? 我用的是通用的驱动。 EP6CFG = 0xE0; // EP6IN, bulk, size 512, 4x buffered EP6FIFOCFG = 0x08; //8位 SYNCDELAY; EP6AUTOINLENH = 0x02; SYNCDELAY; EP6AUTOINLENL = 0x00; if(in_enable) // if IN transfers are enabled { if ( GPIFTRIG & 0x80 ) // if GPIF interface IDLE { if ( EXTFIFONOTEMPTY ) // if external FIFO is not empty { if ( !( EP68FIFOFLGS & 0x01 ) ) // if EP6 FIFO is not full { if(enum_high_speed) { SYNCDELAY; GPIFTCB1 = 0x02; // setup transaction count (512 bytes/2 for word wide -> 0x0100) SYNCDELAY; GPIFTCB0 = 0x00; SYNCDELAY; } else { SYNCDELAY; GPIFTCB1 = 0x00; // setup transaction count (64 bytes/2 for word wide -> 0x20) SYNCDELAY; GPIFTCB0 = 0x20; SYNCDELAY; } SYNCDELAY; GPIFTRIG = GPIFTRIGRD | GPIF_EP6; // launch GPIF FIFO READ Transaction to EP6 FIFO SYNCDELAY; while( !( GPIFTRIG & 0x80 ) ) // poll GPIFTRIG.7 GPIF Done bit { ; } 波形文件: FIFORd // // Interval 0 1 2 3 4 5 6 Idle (7) AddrModeSameValSameValSameValSameValSameValSameValSameVal DataModeNODataActivateNODataNODataNODataNODataNOData NextDataSameDataNextDataSameDataSameDataSameDataSameData SameData Int Trig NoInt NoInt NoIntNointNoInt NoInt NoInt IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1Wait1Wait1 TermAEF# LFunc AND Term B EF# Branch1then1 Branch0ElseIdle Re-Exec Yes Sngl/CRCDefaultDefaultDefaultDefaultDefaultDefaultDefault REN# 00111111 OE# 00000000 // unused 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // |
|
沙发#
发布于:2005-02-02 17:29
你使用什么模式?使用了那些端点?只使用了EP6吗?(是bulk方式、512字节)?
你一次使用ReadFile读64k,这64k数据是不是也会有丢的? |
|
|
板凳#
发布于:2005-02-03 11:02
我用auto in 模式,6 in 2 out ,主要是用ep6 in,bulk 512字节,用control panel 第一次读64k的话,在4k时丢数,然后每2k就丢数,请问是什么原因呢??
|
|
地板#
发布于:2005-02-05 13:45
我用auto in 模式,6 in 2 out ,主要是用ep6 in,bulk 512字节,用control panel 第一次读64k的话,在4k时丢数,然后每2k就丢数,请问是什么原因呢?? 应该是你固件没有处理好 |
|
|
地下室#
发布于:2005-02-07 13:58
你是指哪里没有处理好?固件就在上面,是波形文件的事么?
|
|
5楼#
发布于:2005-02-17 10:51
大虾们都回来了吧??指教一下
|
|