Logging 100 ksps with the Arduino internal ADC

(1/4) > >>

I have been experimenting with a fast logger using an Adafruit Data Logging Shield and a sketch to log 8-bit data from an Arduino analog pin. Any SD shield/module could be used. 

I have been able to log data to an SD card at 100,000 samples per second.

If there is any interest in this sketch I will polish it a bit and post it.

Plots, pictures and more info is here http://forums.adafruit.com/viewtopic.php?f=31&t=30557

>If there is any interest in this sketch I will polish it a bit and post it.
Sure, there is..  :)

What's the SNR on such high-speed readings?

I did some tests but mostly looked at other people's work.

This is a good article on the AVR ADC and agrees with other tests http://www.openmusiclabs.com/learning/digital/atmega-adc/.

Here are the results of the SNR tests expressed as ENOB.


ENOB = (SNR – 1.76dB)/6.02dB

At 100 ksps I must clock the ADC at 2 MHz so the above test says I get an ENOB of a little under 7.5.  Not too bad since I am recording 8-bit data.

At rates lower than about 70 ksps I can use 1 MHz for the ADC clock for better SNR/ENOB.

The ATmega datasheet makes it sound like an ADC clock above 200 kHz will kill accuracy but all test I find give results like the above for the 328p.

I posted the sketch that can log up to 100,000 samples per second as AnalogIsrLogger20120810.zip http://code.google.com/p/beta-lib/downloads/list.


[0] Message Index

[#] Next page