I am doing an experiment that need ADC 16 channels (10 bits per channel, say 2 bytes), and record all data at 20 kHz (every 0.05 ms) for 1 s. So probably I have to use the mega board. I have two options:
Use the serial and stream data back. In this option I have to stream at at least: 20000 * 16 * 2 = 640000 baud rate. Is that possible?
Log to the SD and take it later. The SD need to be written every 0.05 ms. What shield should I use in order to do this?
If I want to crank up to 1 MHz what board do you suggest me to use?
All 16 channels at 20kSPS? That's 320kSPS, so an external SPI ADC is a minimum requirement to get the data,
and probably some analog switching is needed, 16 channel ADCs are not common.
The ADCs on the Uno and Mega sample at 10kSPS, so no chance of using this.
The data requirement is 640k bytes at 2 bytes/sample, orders of magnitude beyond what an Arduino Mega can store - we are talking Due or some such board just to have enough RAM. The Due ADC might even be fast enough too, although its not the best ADC in the world in my experience, and the whole analog side is very
noisy due to the SMPS.