Pages: [1]   Go Down
Author Topic: Precisión del ADC del ATMega  (Read 1817 times)
0 Members and 1 Guest are viewing this topic.
Malaga
Offline Offline
Sr. Member
****
Karma: 6
Posts: 319
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puede parece una pregunta chorra, pero, asumiendo una alimentación estable, y que se va a medir un tensión constante (conseguida, por ejemplo, con un divisor resistivo partiendo de una fuente de alimentación de la misma calidad), ¿el conversor ADC del ATMega llega realmente a la precisión de 10 bits?

Lo lógico sería que si, pero lo que no sé es si el propio ruido de conmutación dentro del chip hace que realmente el último bit no sirva para nada.
Por ejemplo, ¿tienen entradas de alimentación separada VCC - AVCC el chip?

A parte están los problemas de diseño del PCB donde se monte, que por lo que he estado viendo por ahí, los arduinos estandar dejan mucho de desear.

Y ya por último, ¿las medidas del ATMega son radiometrica (ratiometric), si no usas Aref externa? Es decir, se ven realmente afectadas por la tensión de alimentación real del chip que, por ejemplo, cuando se usa USB, es algo menor?
Logged

Vinciduino rocks!

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 40
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Las medidas son relativamente fiables si no tienes mucho ruido en los railes de alimentación. El ruido de conmutación se cuela en las medidas y verás como el rango dinámico se ve afectado.

Contestando a tus preguntas:
- el bit menos significativos lo vas a perder de todas todas con las placas de Arduino. En la vinciDuino no tanto (me pueden los colores ;-))
- siempre puedes implementar por SW un filtro paso bajo para eliminar los picos en las lecturas.
- el AVR tiene entradas de alimentación separadas, Vcc y AVcc al igual que los planos de tierra separados. Si te descargas el esquemático de la vinciDuino, verás como AVcc está derivada de Vcc pero con su correspondiente filtro en Pi y los planos de tierra AGND y GND están separados y unidos en un único punto en la placa.
- Para mejorar las lecturas analógica (ojo solo para aplicaciones que lo requierar) la gama ATMega tiene un modo para mandar a dormir al micro mientras se hace la conversión AD. Es un modo "power saving" donde prácticamente toda la electrónica la madas a dormir. Funciona muy bien. El uso es como el de un chupete - configuras interrupciones, configuras el modo power save (quiero recordar que se llama ADC noise reduction mode), configuras conversión y mandas a dormir al micro. En el momento que mandes a dormir al micro, comenzará la conversión y te despertará cuando termine. Lo puedes ver en el datasheet de cualquier AVR (328p o 32U4). También puedes jugar con los tiempos de conversión para tener unas lecturas más "fiables".
- El procesador también tiene un comparador con un modulo especial para cancelar el ruido, util por ejemplo para detectar un consumo excesivo y cortar alimentación (vamos, hacerse un polyswitch inteligente).
- En toda la familia AVR puedes seleccionar la referencia que usa el conversor ADC: AVcc (tiene que estar a +/- 0.3V de Vcc), referencia externa usando Vref, referencia interna "bandgap" de 2.56V (creo recordar). Todas las medidas se hacen relativas a cualquiera de estas tensiones.
- En el ATMega 32U4 también tiene entradas diferenciales, muy útiles para rechazar ruido.
Logged

   

Malaga
Offline Offline
Sr. Member
****
Karma: 6
Posts: 319
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno,
es que me tendré que leer el daatsheet entero cuando empiece a jugar con el juguete ... menos mal que casi, casi, casi me gusta :-)
Logged

Vinciduino rocks!

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 40
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si realmente necesitas algo mejor que lo que trae de serie algunas librerías lo mejor es leerse el datasheets. El micro es muy flexible.
Logged

   

Cordoba
Offline Offline
God Member
*****
Karma: 38
Posts: 648
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@fm perdon por molestar pero tu sabes bastante de los atmega. Te pregunto: he tomado la idea de usar el atmega32au4 para otro proyecto y no voy a usar la parte analogica, o talvez solo 1 canal para un termometro lm35, hace falta el filtro? puedo usar un filtro LCL tipo murata? me quedo chico de espacio en el pcb y queria ahorrar espacio.
Logged

El que pregunta aprende, el que responde aprende a responder.

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 40
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues realmente depende mucho de tu aplicación. Si lo que necesitas es sacar los 0.5 grados de resolución del LM35 o no. Si la respuesta es si, su alimentación no debería tener un rizado superior a los 3-4mV. Aunque siempre puedes promediar. Normalmente si ya tienes un filtro en Avcc y alimentas el LM35 con ese raíl, con un desacoplo debería valerte y siempre puedes mejorar las lecturas promediando varias adquisiciones des ADC.

Si no distingues entre Vcc y AVcc en tu aplicación entonces dependerá mucho de: la aplicación y rutado.
Logged

   

Cordoba
Offline Offline
God Member
*****
Karma: 38
Posts: 648
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias, voy a reordenar para ver si cabe y dejar el filtro por las dudas.
Logged

El que pregunta aprende, el que responde aprende a responder.

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Para el que quiera ampliar el tema, Atmel tiene una interesante nota técnica:
http://www.atmel.com/images/doc8003.pdf


Saludos,


Igor R.
Logged


Pages: [1]   Go Up
Jump to: