Capturing streaming data via EZ-USB | Cypress Semiconductor
Capturing streaming data via EZ-USB
My application involves an FPGA to convert a 74MHZ bitstream to a 9MB/s byte stream and send it to the EZUSB, then to a Windows7 host.
The FPGA has minimal memory (~16KB) for FIFO, plus the EZUSB.
I used the streaming example to start off with, and I'm properly doing overlapped IO, in a separate high priority thread, etc. etc.
My first attempt uses bulk, and it works when nothing is touched on the PC, but if I move/resize a window, or refresh a webpage, or look at the computer funny, the USB bus has some latency (in the 10s of mS), and the EZUSB can't offload the data quick enough and the FIFOs back up and I lose data. NOTE: I cannot stop the data from coming to me!
Will moving to another USB endpoint model (interrupt end points? isochronous?) help this problem, or am I in need of a much larger FIFO to try to smooth over the spikey latency in Windows/USB?