Preescalado de reloj de conversión analógico-digital - ATmega328P

3

Estoy tratando de usar el ADC en un ATmega328P con reloj de 16 MHz. La hoja de datos menciona el rango típico de frecuencia de reloj ADC de 50 kHz a 200 kHz.

  

Por defecto, el circuito de aproximación sucesiva requiere una frecuencia de reloj de entrada entre 50   KHz y 200 kHz para obtener la máxima resolución. Si se necesita una resolución inferior a 10 bits, la   la frecuencia del reloj de entrada al ADC puede ser superior a 200 kHz para obtener una mayor frecuencia de muestreo.   El módulo ADC contiene un preescalador, que genera una frecuencia de reloj ADC aceptable   Desde cualquier frecuencia de CPU superior a 100 kHz. La preescala se establece mediante los bits de ADPS en ADCSRA.   El prescaler comienza a contar desde el momento en que se enciende el ADC al configurar el bit ADEN   en ADCSRA. El prescaler sigue funcionando durante el tiempo que se establece el bit ADEN, y está continuamente   restablecer cuando ADEN está bajo.

Los precalificadores para el reloj ADC varían de 2 a 128. Según tengo entendido, para permanecer 'en la especificación' probablemente requeriría un precalibrador de más de 80, es decir, 128.

Sin embargo, el ADC funciona para todas las frecuencias de reloj desde CLK / 128 hasta CLK / 4 pero no en CLK / 2, es decir, 8 MHz, donde solo devuelve 0x3FF (es un ADC de 10 bits ) para todas las conversiones. ¿Es solo porque estoy ejecutando el ADC más allá de su máximo recomendado o es algo más que necesito saber?

Hoja de datos ATmega328P

    

2 respuestas

3

En la hoja de datos se dice claramente que el reloj ADC no debería superar 1MHz. Si rompes las reglas, el comportamiento es indefinido .

Podría funcionar, podría no funcionar, podría funcionar solo cuando la luna está llena y la temperatura es más de 23.7 ° C o lo que sea.

Obviamente, si su reloj es de 16 MHz, no debe usar un divisor inferior a 16.

    
respondido por el Spehro Pefhany
3

En caso de que esté interesado en operar el ADC a alta frecuencia, hay un artículo que muestra la compensación de la profundidad de bits para el overclocking del atmega adc y un análisis de la etapa de entrada de adc.

Los resultados de la prueba muestran que la resolución efectiva de la frecuencia de reloj vs ADC es similar

    
respondido por el alexan_e

Lea otras preguntas en las etiquetas