Electronic – AVR: overclocking ADC

adcatmegaavrdatasheetmicrocontroller

This is a quote from ATmega32 datasheet:

By default, the successive approximation circuitry requires an input clock frequency between
50kHz and 200kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the
input clock frequency to the ADC can be higher than 200kHz to get a higher sample rate.

I'm planning to use 8 bits of ADC. The question is: how much higher than 200kHz can I go? I couldn't find any information about this in the datasheet. Is it possible to use a prescaler of 64 or 32 and therefore run ADC at 250kHz or 500kHz respectively without conversion errors when the uC is running at 16MHz? And what are the possible consequences of running ADC out of spec?

Best Answer

The maximal frequency of the ADC is specified as 1MHz.

The actual problem is not exactly the ADC itself, but the sample and hold device, that in the first 2 clocks of the ADC have to get a sample of the input voltage.

When these 2 clocks are two short, the storage capacitor of the S/H is not able to follow the input signal with sufficient accuracy.

BTW, that is why there is minimal frequency as well. In this case, the huge conversion time allows the storage capacitor to discharge during the conversion.

On 1MHz clock, you will get 13us conversion time or approximately 77ksps. On 200kHz clock - 15ksps.