On Mon, Jun 20, 2011 at 3:26 AM, Uwe Bonnes <[email protected]> wrote: >>>>>> "Caleb" == Caleb Kemere <[email protected]> writes: > Uwe> Otherwise, how do you read on the PC side? Do yo do asynchronous > Uwe> reads like in libftdi-1.0/src/ftdi_stream.c? > > Caleb> I did test the asynchronous mode, but now I think I've distilled > Caleb> the essence of the test down to the following really simple > Caleb> (blocking) code: > > Caleb> int transferred = 0; int bytes = 0; while (bytes < > Caleb> MAXIMUM_TRANSFER) { last_result = > Caleb> libusb_bulk_transfer(ftdi.usb_dev, ftdi.out_ep, buffer, > Caleb> bufferSize, &transferred, 1000); if ((last_result > 0) | > Caleb> (transferred == 2)) break; else bytes+= transferred; } > > Caleb> I've been messing around with different values for the > Caleb> read-chunksize of the FT2232H and the bufferSize of the bulk > Caleb> transfer. As a reminder, my data streams from the FPGA to the > Caleb> FT2232H at 6.5 MB/s. With that, I can consistently read for about > Caleb> a 30 s or so before I get a buffer overflow (at half speed, I can > Caleb> go for about 3 times that long). It seems like the USB subsystem > Caleb> should be able to handle that data rate for an arbitrary length > Caleb> of time, so I'm wondering what I could be doing wrong... > Uwe> Otherwise, why do you stop when you read 2 bytes? The FTDI will alway return Uwe> 2 status bytes, so this is a legal value which might happen sometimes.
I my case, a two byte message indicates that the transfer buffer on the FT2232H is empty, which happens when the FPGA stops transmitting because it has detected a buffer overflow previously. Unfortunately, for our application, we can't tolerate lost data (or rather, we need something like 99.9%), hence trying to debug. I have noticed something which I don't understand - on my laptop (Core 2 Duo, about 3 years old), I get the performance described above. On my desktop (Core i5, about 2 years old), I can run for many minutes without ever running into trouble. Is there some way of understanding what the USB on the laptop is doing differently? thanks! – caleb -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
