Note the USB 2.0 (Hi-Speed) has a max data rate of 480 Mbit/s, realistically yielding a max of 7 to 8Ms/s. Near and above that, you'll likely see dropped samples.evaxc wrote:usb2.0,I set the samplerate as 40Ms/s ,and found many samples lost,and one 100MB file generated in 10s. what a pity my operating system is 32bit
Just some quick notes of where I pulled that number from:
Code: Select all
480 Mbit /s = 60 MB/s
1 sample = 4 bytes. A sample is an I,Q pair, where I and Q are both 16bit values (12 of these bits are from the ADC, the upper 4 are reserved).
(60 MB/s) / (4 bytes/sample) = 15 Msamples/second
However, this number is the max (nominal value) and doesn't take overhead and various other non-idealities into account. Googling around, 25-30MB/s seems more typical, hence the 7 to 8 Msamples/s I mentioned above.
At some point in the future (once more "headless mode" work is underway), pushing calculations and signal processing down into the FPGA will be needed to make USB 2.0 more useful on memory and CPU constrained hosts.