2.3.2. Analog To Digital Conversor (ADC)
2.3.2. Analog To Digital Conversor (ADC)
2.3.2. Analog To Digital Conversor (ADC)
Como su nombre lo dice, un dispositivo ADC fue creado para representar en una palabra digital el nivel de
voltaje existente a la entrada de este. En otras palabras, para tomar una muestra de una señal análoga en un
instante de tiempo, cuantificarla y darle un código digital (comúnmente binario) que representa la cantidad
de niveles a los cuales pertenece la muestra.
En la imagen Nox se podrá ver de forma general los bloques mínimos que hacen parte de un ADC.
En la actualidad existen diferentes técnicas para cuantificar y codificar la señal análoga de entrada, hay de
conversión directa, tipo SAR (Successive-approximation-register), también los SD (Sigma-Delta),
comparador en rampa, y la lista continua, pero no es intención de esta publicación profundizar sobre todos
los que existen, solo se pretende dar los conceptos básicos que debe conocer una persona.
Para el ejercicio de entender un poco mas cada uno de los componentes de un ADC, se usara como
referencia los conversores análogo a digital tipo SAR, ademas es importante aclarar que es de los mas
usados en módulos internos para microcontroladores, pues son ideales para trabajar con velocidades de
operación de hasta 5 Millones de muestras por segundo y con resolución de 8 a 16 bits.
El nombre da una pequeña guía de su funcionamiento, pues físicamente se trata de un registro digital de n
bits y un modulo llamado lógica digital SAR que va gestionando todo el proceso hasta completar y obtener
el resultado que es directamente la salida del registro. A pesar de muchas variantes que existen en los ADC
tipo SAR, en la imagen Nox se pueden ver los componentes básicos de esta arquitectura.
Imagen Nox. Diagrama de bloques de un ADC tipo SAR.
Cada vez que se quiere tomar una muestra de la señal análoga y conocer el valor digital que lo representa,
siempre se siguen los siguientes pasos:
Cuantificar y Codificar
Una vez que la señal esta lista en el retenedor, el modulo de control SAR inicia el proceso de cuantificacion
y codificación directa. Para explicarlo mejor, sigamos con un ejemplo paso a paso este procedimiento.
Ejemplo: Se desea convertir 1.6V a su equivalente digital con un ADC tipo SAR de 4 bits de resolución con
un VREF+ de 5Vdc y VREF- de 0V:
El nivel máximo de conversión esta determinado por el voltaje en el pin VREF+ y el valor mínimo por
VREF-. Desde VREF- hasta VREF+ es dividido en porciones iguales y la cantidad de veces dadas por la
resolución ((2^n)-1). Como n es 4 bits para este ejercicio, entonces, ((2^4)-1) = 15 partes iguales).
En el primer flanco de subida de la señal de RELOJ, el controlador SAR, lleva el BIT MSB del registro
binario a 1. (bit 3 para este ejercicio obteniendo a la salida del registro el dato 1000). La razón de este
primer paso es forzar la salida del DAC interno a VREF+/2. Es decir:
Si a 4 bits el numero binario máximo es 1111 que corresponde a 15 decimal la salida del DAC sera también
el máximo que es VREF+.
Cuando el controlador SAR coloca 1000 a la salida del registro este valor binario corresponde a 8 decimal
que seria de cierta manera la mitad del valor máximo posible, definitivamente a la salida del DAC también
se tendrá la mitad del voltaje máximo, es decir, VREF+/2.
VREF+/2 a la salida del DAC es comparado con VIN presente en el retenedor. Si es mayor VIN que la
salida del DAC este bit es ajustado a 1 de forma permanente durante la conversión, si es menor, el bit es
ajustado en 0. Luego repite uno a uno para todos los bits que indican la resolución de conversión.
En la imagen Nox se puede ver el procedimiento paso a paso para obtener la conversión de análogo a digital
con la técnica SAR.
De lo anterior podemos concluir que para n bits de resolución se necesitan mínimo n ciclos de reloj para
finalizar su proceso. Esta es la razón fundamental por lo que es difícil encontrar ADCs topo SAR que
combinen alta resolución con alta velocidad de operación, ademas se deben tener en cuenta tiempos críticos
que se van sumando, haciendolos mas lentos frente a otras arquitecturas. Uno de estos es el tiempo que tarda
el comparador en obtener una salida estable después de cada cambio, otro es el tiempo que tarda el bloque
lógico SAR en leer la respuesta del comparador y realizar sus operaciones internas, ademas del tiempo de
muestreo y retención de la señal a convertir.
Por lo anterior el Comparador debe ser lo mas rápido y con la mayor resolución posible, pues tiene que ser
tan preciso como el sistema en general. Para los fabricantes es preocupante el ruido que pueda presentarse
afectando el resultado de la comparación es por ello que hay variantes según cada fabricante.
Es importante resaltar que la resolución del Conversor Analogo-Digital (ADC) esta dada por la cantidad de
bits del registro, ademas el Conversor Digital-Analogo (DAC) que esta interno tiene la misma resolución.
El resultado en el ejemplo nos dio 0101 en binario que corresponde a 5/16 del VREF+... Si hiciéramos el
calculo para saber a cuando voltaje equivaldría este dato binario, seria de (5Vdc)*(5/16)=1.5625Vdc, es
decir, tendríamos un error del 3.75%. Para reducir este error tendríamos que hacer mas divisiones entre
VREF- y VREF+, así los pasos entre un nivel y otro serian mas cercanos. Para lograrlo solo queda
incrementar el numero de bits de resolución del ADC. Claro esta que no se puede incrementar la resolución
del ADC por capricho y simplemente seleccionar siempre el que mas tenga pues a mayor numero de bits,
mas ciclos de reloj se necesitan para completar la operación, haciéndolo mas lento. Y si se incrementa la
velocidad del reloj para compensar, el consumo de energía también aumenta. Hay un punto de equilibrio
que lo dará la aplicación que se quiera desarrollar con el ADC.
Gran implementacion en encapsulados pequeños, algo que interviene en gran medida para la selección de su
uso en microcontroladores
En general son de resolución aceptable y como decía inicialmente estos ADCs tipo SAR son la selección
ideal hasta el momento para ser incorporados en microcontroladores.
Teniendo en cuenta el comportamiento lineal de los ADCs, y la ecuación característica que se pueden
observar en la Imagen Nox, es posible predecir el resultado digital binario que se obtendría con un ADC
para una resolución y voltajes de referencia dados. Aunque la linealidad de un ADC es relativa y puede ser
discutida debido a un error intrínseco en el procedimiento de cuantificación de la señal análoga de entrada.
Para ver como usar estas formulas, se puede intentar predecir el resultado del ADC para el ejemplo
propuesto antes.
Ejemplo: Se desea convertir 1.6V a su equivalente digital con un ADC tipo SAR de 4 bits de resolución con
un VREF+ de 5Vdc y VREF- de 0V:
Doutput = 4.8... Pero un ADC entrega resultados enteros, es por ello que se debe aproximar por encima al
valor mas cercano. (A este error que se genera por esta aproximación se le denomina error de cuantización).
Es muy importante la estabilidad y filtrado de los voltajes aplicados por estos dos pines. Variaciones de
estos voltajes en la mitad de un conversión AD, puede generar resultados no predecibles. Por lo anterior
como mínimo se recomienda colocar capacitores de 0.1uF tantalio muy cerca de estos pines.
VREF+ máximo no es el mismo para todos los ADCs. Cada fabricante ofrece diferentes ADCs con rangos
diferentes, es por ello que se hace imprescindible revisar la hoja de datos correspondiente al ADC a usar. En
la mayoría de los microcontroladores es común encontrar que VREF+ máximo es el mismo VCC que se le
esta aplicando al microcontrolador, por ejemplo, si el MCU esta a 3.3V, este sera el voltaje máximo
aplicable en VREF+.
VREF- muchas veces es mal interpretado. No siempre se puede aplicar voltajes negativos en este pin, es
muy importante revisar hoja de datos para tener muy claro esta información. En muchos de los
microcontroladores VREF- minimo es de 0V.
La función principal de estos pines, es definir el rango de voltaje dentro del cual la señal análoga de entrada
estará cambiando. Esto es de gran importancia si se quiere aprovechar en su totalidad la resolucion del
ADC.
Ejercicio: Se desea leer con un ADC a 8 bits de resolución una señal análoga que varia de 0 a 1.5Vdc.
Seleccione VREF+ y VREF- para el ADC.
Solución:
Se deben revisar los 2 valores extremos que podrá tener la señal análoga de entrada. Vmínimo seria de 0V y
Vmáximo seria de 1.5v. VREF- debería ser conectado a GND y VREF+ debería conectarse a un voltaje de
1.5V, pero se recomienda por protección subir este voltaje a 1.6Vdc. Ahora si predecimos cual seria el valor
binario que representaría la señal análoga cuando este en su máximo valor obtendríamos:
Doutput=11110000 base 2.
Cuando se usan microcontroladores con ADC interno, es común usar VREF- de GND y VREF+ de 5V que
es el mismo VCC, esto para evitar el uso de reguladores especiales solo para el ADC. Si intentamos
convertir a digital la misma señal del ejercicio anterior con estos datos de VREF+ y VREF-, encontraríamos
que:
Doutput=1001110 base 2.
De este resultado podemos recalcar que al máximo voltaje en la señal de entrada, solo se usarían 7 bits para
representar la señal, mientras que el ADC es de 8 bits, lo que se puede llamar perdida de resolución.
http://www.octoplus.com.co/images/muestreoADC.gif
En la imagen Nox podemos observar lo importante que tiene la velocidad de muestreo de una señal análoga
que varia en el tiempo. Cuanto mas muestras por segundo se tienen de dicha señal con mas fidelidad podrá
ser recreada para su procesamiento. Pero esta velocidad de muestreo esta limitada por el tiempo mínimo que
tarda el ADC en tomar la muestra, ademas del tiempo que tarda el controlador digital en almacenar dicha
muestra y dar la orden al ADC para una nueva lectura, a esta se debe sumar que a mas muestras por segundo
mas datos deberán ser almacenados y procesados por segundo, lo que agrega ahora la limitación en memoria
del controlador digital. El punto de equilibrio lo dará la aplicación que se esta desarrollando.
El tiempo mínimo requerido por el ADC para tomar una muestra es inversamente proporcional a la
frecuencia señal de reloj usada para el ADC. Cada fabricante en la hoja de datos del dispositivo ADC,
indicad cual es la frecuencia máxima de reloj que se puede aplicar y así la velocidad máxima de muestreo.
Existe el teorema de Nyquist que recalca cual debe ser la velocidad de muestreo mínima para la
digitalización de señales periódicas. Según Harry Nyquist, para poder reconstruir una señal periódica que ha
sido digitalizada, esta debió ser maestreada a una frecuencia mínima de 2 veces la frecuencia de la señal a
procesar. Aunque es un error pensar que con solo cumplir con este requisito se va a lograr un resultado
perfecto en el procedimiento pues no hay que olvidarse de los errores que se suman a la señal digitalizada,
entre ellos el error de cuantización que ocasiona una perdida de información muestra tras muestra. Ademas
hay que combinar el teorema de Nyquist con técnicas de eliminación de ruido y demás para así obtener
resultados aceptables en la señal recreada después de su procesamiento digital.