I am making a simple 1MHz oscilloscope with an embebbed system based on ARM and Android. I have an ADC with a speed of 12MSa/s that takes the samples. I need it to send the samples to a PIC microcontroller, to send them via USB to my Android system.
I cannot send 12MSa/s of data through USB so I investigated and I think I have to use a RAM buffer. I have done some research on the internet, but I can't understand how they work.
As far as I can understand: Lets suppose I have 2 RAM ICs. I start filling RAM 1 with samples from my ADC, then, when it is filled, I start filling RAM 2. My microcontroller will start reading data from RAM 1. The USB transfer speed is not fast enough to read all the RAM content before RAM 2 is filled, so the ADC will have to wait until RAM 1 is empty, thus I will loose samples from my ADC.
Is there any way to prevent this? My development board is a PandaBoard. I am running Android 4 on it and it is working perfectly, but I have this problem regarding hardware buffering.