What port to use for >1MSPS ADC acquisition?

I'm getting ready to start a project that I'm required to read from an
ADC at speeds beyond I2C devices I have found. Data will be >1MSPS 8
to 16 bit depending on what's possible.

My idea is to have an ADC interface a small FPGA, which will condition
the signals to interface to MMC expansion port, IO Port, OR the Camera
Interface Port.

Any ideas on which port will give me the best performance/least
processor usage?

Many thanks in advance for the help.

Hi Walter,

You have several options here.
I would use one of the McBSPs for data traffic (and maybe misuse another one for the system clock). Further I would use one of the SPIs for converter control (rather than I2C).

I implemented a 24-bit 192 kS/s DAC this way via the BeaglBoard expansion connector.
I even powered the analog part of the board from it with a +/- 18 volt switching DC-DC converter on my expansion board. I did it this way to keep the drivers very simple (not even DMA).

The other, maybe more elegant but much more involving approach would be to just
use the HS USB 2.0 host interface. You then have to implement the USB stack.

Hope this helps,
siñ

If you have an ADC with parallel output, it could be connect to GPIOs
from the GPIO 5 Module of the OMAP3530. You could save the whole
register in a certain memory address and treat the data the way you
want. That would be definitely faster than the 1MSPS.
The I2C2 has a speed of only 400Kbits/s.
The McSPI works with a maximum frequency of 48MHz. For the 8 bits, it
would probably work. However, it would probably be complicated for the
16 bits...
Regards,
Frederico

I heard rumors that the GPIO is implemented with a state machine and may be
quite slow. Haven’t tested so I don’t know for sure.

I still think that having data traffic through McBSP and control by McSPI would be the easiest
fast way to do it. And HS USB 2.0 the most elegant.

siñ

Thanks Seppo and Frederico. Good pointers. I'll start looking at these
interfaces.

Hello,

I heard rumors that the GPIO is implemented with a state machine and may be
quite slow. Haven't tested so I don't know for sure.

I was obtaining 16MHz using it a while ago. The problem is that I
don't really remember what I had set at that time.
But I have now been working around 4 or 5 MHz. The advance is to save
all the bits of GPIO5 module at the same time. That way, it would be
possible to get a 18 bit resolution signal with the 4MHz or even 16MHz
which I had before...

I still think that having data traffic through McBSP and control by McSPI
would be the easiest
fast way to do it.

Acquiring the data using McSPI is a lot easier. However, higher
resolutions would decrease the MSPS.

Regards,
Frederico