Logging 100 ksps with the Arduino internal ADC
fat16lib:
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
pito:
>If there is any interest in this sketch I will polish it a bit and post it.
Sure, there is.. :)
p.
Verdris:
What's the SNR on such high-speed readings?
fat16lib:
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.
Where
Quote
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.
fat16lib:
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.
Navigation
[0] Message Index
[#] Next page