Data acquisition with fast ADC

Hi all,

I have a task to do a quite fast data logging at sample rate of at least 1Msps with a 24-bit ADC. In my vision it’s a device that takes analog signal, digitizes it and records onto a sd card.

I found this nice ADC which (hopefully) will do the digitizing job. It’s got a parallel 16-bit interface, meaning it would take 2 reads of 16 pins to get data out of it. The clock rate for data output is 5MHz if I’m not mistaken.

I was wondering if any of Arduino family would be up to the task of reading that data and storing it onto SD card? At this stage I can see FPGAs would be ideal, and some people apparently use PRU on Beaglebone Black boards, but with my limited programming skills that sort of solution might take 5+ years to achieve what I want. Would something like DUE be powerfull and fast enough to do that?


AD7760-278585[1].pdf (947 KB)

The 16bit parallel interface will defeat you I think - even the Due doesn't bring out all the pins of the SAM3X8 chip so you're unlikely to have a complete 16 bit chunk of a port available to route those bits through (although the PIO controller will do DMA).

Also you need to checkout if the Due can drive SDcard native, offhand I can't recall.

What chip does 24bit at 1MSPS then?

I was looking at AD7760, but there are others too. It's either parallel or LVDS interface for that sort of speeds...

Looks like there is a native SDIO support in SAM3X8 processors...

Avalonnw: Looks like there is a native SDIO support in SAM3X8 processors...

And have you checked that the relevant pins are brought out on the Due?

Even if they are not, there are other boards, where they are. The question is, whether SAM3X8 is quick enough to do the job.

Check out the DMA and PIO sections of the datasheet to see what rates they will achieve reading a parallel bunch of signals - it sounds quite reasonable to expect this to work, but the details are quite complex as you'll have to config DMA to pull from PIO and fill buffers and write an ISR to switch buffers perhaps? So long as the DMA can pull at least twice per microsecond and you can get a continuous section of 16 pins in one port it ought to work.

You may even be able to interrupt-drive this if you can read the two 16 bit words in quick succession - but I'm not sure the interrupt overhead is low enough (84 cycles per microsecond...)

Can't find in SAM3 datasheet any reference , that PIO controller is supported by DMA.

I think you're right, its limited to SDcard, SPI, synchronous serial, UART... I thought there might be a parallel memory interface at least.

However the external memory interface might be configurable enough.

Looks like STM32 would be better choice then however programming it is so much more pain...