AVR: overclock ADC

8

Esta es una cita de la hoja de datos ATmega32 :

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.

Estoy planeando usar 8 bits de ADC. La pregunta es: ¿cuánto más alto que 200kHz puedo ir? No pude encontrar ninguna información sobre esto en la hoja de datos. ¿Es posible usar un preescalador de 64 o 32 y, por lo tanto, ejecutar ADC a 250kHz o 500kHz respectivamente sin errores de conversión cuando el uC está funcionando a 16MHz? ¿Y cuáles son las posibles consecuencias de ejecutar ADC fuera de especificaciones?

Ashton H.
fuente

Respuestas:

12

La frecuencia máxima del ADC se especifica como 1MHz.

El problema real no es exactamente el ADC en sí, sino el dispositivo de muestreo y retención, que en los primeros 2 relojes del ADC tiene que obtener una muestra del voltaje de entrada.

Cuando estos 2 relojes son dos cortos, el condensador de almacenamiento del S / H no puede seguir la señal de entrada con suficiente precisión.

Por cierto, es por eso que también hay una frecuencia mínima. En este caso, el gran tiempo de conversión permite que el condensador de almacenamiento se descargue durante la conversión.

En el reloj de 1MHz, obtendrá 13us de tiempo de conversión o aproximadamente 77ksps. En reloj de 200kHz - 15ksps.

johnfound
fuente
buena respuesta amigo +1. Me pregunto si el S&H interno se puede dejar funcionando libremente y usar S&H externo que es mucho más rápido.
Andy alias
1
@Andyaka, probablemente no. El S / H interno es controlado solo por el hardware. Tal vez sea posible realizar algún hack cambiando el divisor de frecuencia durante la conversión: make es lento durante los primeros 2 relojes y luego más alto ... Pero hay que verificar el manual si es posible y luego hacer un experimento.
johnfound
Gracias por la respuesta. Entonces, ¿es seguro subir hasta 1MHz cuando se usan 8 bits de ADC?
Ashton H.
@AshtonHearts - Sí, eso creo. ¿Por qué no hacer algunas pruebas? Es solo una cuestión de programa.
johnfound
2
@AshtonHearts: no es overclock. Es un comportamiento documentado. Solo obtendrá una menor precisión.
johnfound