I would like to continuously stream data from an ADC with 12 to 16 bit to a Raspberry 4 at around 10 MSPS. Since the Raspberry is not realtime, I'm assuming I need some sort of FIFO buffer as intermediate to take the samples from the AD converter and keep them for the Raspberry to fetch them. The Raspberry would do a feature extraction from my signal, so it wouldn't actually have to store the values, just do some computations on them.
I m thinking about using an ADC evaluation board from TI or Analog Devices, because I don't really want to mess around with the additional circuitry needed for the converter.
This post goes into some detail about how it's quite difficult to transfer that many samples over SPI. One solution was to make the Raspberry more realtime, but I think they ignored things like FIFOs.
Another idea would be to read the bits in parallel from the FIFO via GPIOs. Would this be a valid solution? How about a FTDI converter that takes the samples from the FIFO and sends them out over USB?
The main point of this project is to use the Raspberrys computational power to reduce my signals from the continuous stream into manageable chunks. But I'm facing a lot of difficulties feeding the stream to the Raspberry since I'm not very experienced in the field of ADCs and FIFOs. I would appreciate if you could point me in some directions about which of these solutions could be valid or what else I could try.