I want to bring a continuous 30 MByte/s stream of 8-bit values from parallel-output ADC (AD9283) into the memory of a standard PC (laptop under Windows 10 if possible). My software does real-time analysis and logging of relevant events. Some latency (100ms) is OK, but I can't loose samples.
I'm considering an FT232H permanently set to "FT245 Synchronous FIFO Write mode" (see text §4.4.2 and drawing §4.4), with WR# asserted on every odd period of the 60 MHz CLK signal (ignoring TXE# should it go high), so that the data rate would be 30 MByte/s. On the software side I'm planning to use the FTDI D2XX driver, which uses USB High Speed bulk mode.
Will I get data loss? I'm ready to assume
- FT232H connected to a dedicated USB port on the motherboard of the PC, and if that helps, some other requirement on the PC, like USB3, and no shared device on the USB root hub
- no other high-traffic USB device (camera, storage, networking, audio) on the whole PC; but that should not prevent casual use of USB mouse/trackpad/keyboard
- no physical USB error
- my application software is able to keep up.
I see that the FT232H has only a 2×512 byte FIFO (but 512 bytes buys a mere 17 µs). The FT2232H does not improve on that. I guess "the two buffers continually swap between each other to increase the performance" also applies to the FT232H.
TN_167 FIFO Basics is somewhat encouraging: it gives a "Synchronous FIFO Performance" of "40 Mbyte/sec" for the FT232H,but does not tell in which direction, and if that's sustained.
An earlier version of this question detailed how I semi-reliably get 24MByte/s using a cheap USB 8-channels logic analyzer, and asked for alternatives, but was deemed not focused enough. Still, feel free to propose another solution!