Very fast and presicioned AD converter

Hi,
I'm searching for a realy fast (1Mbps) one or two channel analog digital converter which can be conected to the Arduino. (SPI maybe)

is there any lib or did anybody done such a Project before?

Hopefully get some Input:

AD7980 is one Option.

Gert186:
Hi,
I'm searching for a realy fast (1Mbps) one or two channel analog digital converter which can be conected to the Arduino. (SPI maybe)

is there any lib or did anybody done such a Project before?

Hopefully get some Input:

AD7980 is one Option.

And what are you going to do with all this data?

You can only store a fraction of a second of it.

There's pages of them at Digikey, some easier to interface with than others.
http://www.digikey.com/product-search/en/integrated-circuits-ics/data-acquisition-analog-to-digital-converters-adc/2556291?k=adc
Filter on the speed you want, # of bits, interface type, # of inputs, package type. AD7980 is 16-bit with nearly SPI like interface, very pricey parts.
1 Mbps - you need to define what you mean there.

Which processor are you using?
328P have 1K storage for 16 bit words/ints, 2560 4K, 1284 8K.
Some of that memory will be used by other parts of the code as well.
All can transfer data at nearly 1 million bytes per second (17 clocks, just over 1uS/byte) with SPI divisor set to 2 (8 MHz SPI clock). SPI typically requires chip select low, two SPI transfers for 10-16 bit samples, then chip select high. So you could achieve 1 or 2 clocks for the CS low, 34 clocks for the 2 SPI transfers, 1 or 2 more clocks for the CS high, so maybe 200000 samples per second depending how much time your for loop needs to cycle thru an array to save the data as it came in:

unsigned long startTime = micros();
for (int i = 0; i<750; i=i+2){ // use 1500 bytes of 2048 bytes of memory
PORTB = PORTB & 0b11111011; // D10 low for CS
dataArray[i] = spdr(0); nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;
dataArray[i+1] = spdr(0);nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;
PORTB = PORTB | 0b00000100; // D10 high for CS
}
unsigned endTime = micros();
unsigned duration = endTime - startTime;
Serial.println (duration); // in microseconds

You could try that and see how long it takes with no device connected even, be sure to set the SPI clock divisor to 2 after SPI.begin() is called on setup():

SPI.begin();

SPI.setClockDivider(SPI_CLOCK_DIV2 ); // 8 MHz rate

Need to define nop as well at the top of sketch

#include <SPI.h>

#define nop asm volatile ("nop")

I think the for loop is the big clock pig there, I don't know how to avoid it for large samples like that tho.

thanks for the post,

There is an Analog Signal and I would like to transmit that over ah 2.4Ghz transmitting module.

on the other side there is also ah 2.4Ghz module which receives the data and voncert it into Analog signals again.

Analog/Digital converter-Microcontroller-2,4Ghz Transceiver Air 2,4GhzTransceiver-Microcontroller-Digital/Analog converter.

Can the Arduino pump 2 Million bytes per second into your 2.4 GHz transceiver?