Conversores DAC y ADC
Los convertidores de digital a analógico (DAC) y análogo a digital (ADC) son bloques de construcción importantes que conectan sensores (por
ejemplo, temperatura, presión, luz, sonido, velocidad de crucero de un automóvil) a sistemas digitales como microcontroladores o un computador
personal.
Un ADC toma una señal analógica y la convierte en una binaria, mientras que un DAC convierte una señal binaria en un valor analógico.
La figura da un diagrama de bloques de dicho sistema. Un ejemplo de dicho sistema es una tarjeta de sonido de PC.
Las señales del sensor varían continuamente ("analógico") entre un rango de voltaje especificado. Como ejemplo, la salida de un micrófono da un
voltaje entre 0 (sin habla) a 100 mili Volt (para voz alta). Cualquier valor entre estos dos extremos es posible. La señal "analógica" necesita ser
convertida en una palabra "digital" de n bits para ser leída y procesada por una computadora (o procesador de señal digital - DSP). Estas señales
"analógica" y "digital" se muestran en la figura.
DAC Convertidor Digital a Análogo
La entrada a un DAC es una palabra binaria de n bits y la salida es un valor analógico, como se muestra esquemáticamente en Figura (a).
La palabra de n bits (o código digital) es una representación digital de una señal. La relación entre el valor de salida analógica y la palabra binaria es
para el caso de un código de 3 bits (b2, b1, b0), como sigue:
𝑏2 𝑏1 𝑏0
𝑉𝐷𝐴𝐶 = 𝐾1 ( + + ) 𝑉𝑟𝑒𝑓
2 4 8
𝑏2 𝑏1 𝑏0
𝑉𝐷𝐴𝐶 = ( + + ) 𝐹𝑆
2 4 8
en el que K1 es un factor de escala, Vref es un voltaje de referencia, FS significa Full Scale (= K1 x Vref) y bi es el i-ésimo bit de la palabra digital.
El bit b0 se llama bit menos significativo (LSB) y b3 es el bit más significativo (MSB).
Cada vez que el LSB cambia la salida analógica cambiará en un valor igual a 𝐹𝑆/23 FS/2 3 para un DAC de tres bits (o por FS/2 N para un DAC de N
bits).
Ejemplo: Si la entrada digital es igual a (101), K1 = 1 y la referencia Vref = 5V. El voltaje de salida será entonces:
VDAC = 1 (1/2 + 0/4 +1/8) Vref = 5 / 8 x Vref = 5 / 8 x FS = 3.125 V
Para cada entrada digital (b2, b1, b0) habrá una salida correspondiente como se muestra en la Figura (b) para un total de 23 = 8 palabras digitales
posibles. Tomar en cuenta que solo son posibles valores discretos de la señal de salida.
Cuantos más bits tenga la palabra de entrada, menores serán los pasos de la señal de salida (o mejor será la resolución). Los ADC típicos tienen al
menos 8 bits de resolución e incluso 12 a 16 bits son frecuentes.
DAC por Suma Ponderada
Conceptualmente la conversión digital-analógica consiste en realizar la suma ponderada de los diversos dígitos que configuran el número binario; el
valor relativo de cada uno de ellos viene dado por la correspondiente potencia de 2:
Esta suma puede realizarse mediante un sencillo circuito sumador con resistencias ponderadas (según la relación R, R/2, R/4, R/8, ...) como el de la
figura:
Supuesto que las tensiones que corresponden a los valores booleanos sean 0 y +V:
El último paréntesis de la expresión anterior expresa el valor del número binario ... D3 D2 D1 D0 y el factor inicial V.R'/R determina el valor de
tensión asignado a cada unidad; las resistencias R' y R permiten ajustar dicho valor a la tensión unitaria que se desee.
Resulta un circuito sumamente sencillo para obtener una tensión analógica a partir de las tensiones de los dígitos binarios del número que se desea
convertir. Habida cuenta de que la etapa sumadora es inversora, se obtendrá una tensión negativa, que puede transformarse fácilmente en
positiva mediante una segunda etapa amplificadora inversora de ganancia unidad.
Las tensiones booleanas que presentan los diversos dígitos de un número binario (salidas de los correspondientes terminales del circuito digital,
generalmente salidas de circuitos integrados) no ofrecen adecuada precisión: ambas tensiones, VoL ≈ 0 V y VoH ≈ +V, no son valores muy precisos.
Por ello, para aumentar la precisión del conversor, no se utilizan directamente las tensiones de los dígitos a convertir sino una tensión única de
referencia de alta precisión, la cual se conecta (caso de dígito de valor 1) o no (valor 0) a las correspondientes resistencias sumadoras mediante
interruptores; además, para disminuir los efectos capacitivos propios de los conmutadores y aumentar la velocidad de conmutación, ésta se efectúa
entre dos posiciones de igual tensión.
Cada conmutador se conecta hacia la entrada del amplificador cuando el valor del correspondiente dígito es 1; en otro caso, se conecta
directamente hacia la línea de 0 V.
La precisión de este conversor depende de la precisión de las resistencias y de la tensión de referencia, así como de las características del
amplificador operacional, especialmente en lo relativo a tensión y corrientes de offset.
Ahora bien, esta red sumadora requiere resistencias de valores muy diferentes (por ejemplo, para 12 bits ha de llegarse desde R hasta R/4096),
siendo extremadamente difícil integrar tal diversidad de resistencias con la precisión necesaria.
DAC por Red de resistencias R-2R
Tomando en cuenta las limitaciones del DAC por Suma Ponderada, resulta preferible utilizar una red de resistencias R-2R en escalera o red divisora
de tensión, que posee la propiedad de que la resistencia de carga vista desde cualquier nudo de la red hacia adelante es de idéntico valor: 2R.
Esta red de resistencias tiene la propiedad de que en cada nudo se encuentran en paralelo sendas resistencias de igual valor 2R, una de las cuales
es la equivalente del resto del circuito; de forma que en cada nudo la intensidad de divide en dos partes iguales y, de esta forma, cada nudo realiza
una división de la tensión del nudo anterior por 2.
Utilizando este tipo de red como sumadora, mediante conmutadores entre dos posiciones (ambas con tensión de referencia 0 V) según el esquema
siguiente, puede obtenerse un conversor D/A que solamente utiliza dos valores de resistencias R y 2R.
La segunda etapa amplificadora sirve para que la tensión de salida sea positiva e introduce la amplificación con el factor R'/R. Habida cuenta la
sucesiva división de tensiones e intensidades que se produce en cada nudo:
Con este tipo de red sumadora se configura una amplia gama de conversores DAC integrados, de alta precisión, ya que es posible conseguir gran
precisión en la red de resistencias y en la tensión de referencia (utilizando un zener de alta precisión bien estabilizado). Ello permite asegurar una
fuerte linealidad en la conversión, con errores inferiores a la mitad del paso en tensión correspondiente a una unidad.
Los conversores D/A más comunes de este tipo son de 8 y de 12 bits; un conversor de 8 bits permite una resolución de 256, es decir, para un intervalo
de conversión 0-10 V a cada unidad le corresponden aproximadamente 40 mV; la resolución de un conversor de 12 bits es de 4096 pasos, 2.5 mV.
ADC Conversor Análogo a Digital
Un ADC toma una entrada analógica y genera una salida digital como se muestra en la siguiente Figura (a). Cuantos más bits tenga la palabra de
salida, mejor será la resolución. Para un ADC de 3 bits, el número de pasos será 8 mientras que un ADC de 10 bits dividirá la señal analógica en
1024 (= 2 10) pasos.
La relación entrada-salida de un ADC se muestra en la Figura (b) para un convertidor de 3 bits. Observe que cuando la señal de entrada analógica
(en el eje horizontal) alcanza un cierto nivel, se generará un nuevo código digital que representa la salida digital del ADC en función de la entrada
analógica. La máxima señal analógica que el ADC puede acomodar se llama Full Scale (FS), como se muestra en la Figura (b).
Como ejemplo, si la entrada analógica es igual a 4 / 8xFS (escala completa), el código de salida para el ejemplo de la figura 2b será (100). Sin
embargo, si uno aumenta la magnitud de la señal de entrada por encima de 4.5 / 8xFS, el nuevo código de salida digital será (101).
ADC Rampa tipo Contador
La utilización de los conversores DAC considerados en el apartado anterior permite realizar la conversión inversa, analógica-digital ADC, a través de
un sencillo esquema funcional basado en la comparación entre la señal a digitalizar y la proporcionada por el conversor DAC; un circuito secuencial
de aproximación deberá generar los números binarios cuya correspondiente tensión analógica es comparada con la tensión a convertir, de forma
que la conversión finaliza en el momento en que ambas tensiones se igualan.
El circuito de aproximación más sencillo lo constituye un contador bidireccional (up/down), que cuente «hacia arriba» o «hacia abajo» según que el
resultado de la comparación entre la tensión de entrada y la tensión generada por el conversor DAC sea favorable a la primera o a la segunda de
dichas tensiones.
Cuando los valores de tensión (la exterior y la resultante del conversor DAC) se igualan el contador se sitúa en una secuencia alternativa (contar-
descontar), oscilando entre dos números contiguos; para evitarlo se añade un comparador de ventana, cuya tensión central se sitúa en la tensión a
medir y la anchura de la ventana se hace algo mayor que el paso en tensión correspondiente a una unidad.
Para realizar una medida de tensión, estos conversores han de efectuar un contaje de pulsos desde la situación en que se encuentre el contador
hasta la correspondiente a la medida, empleando para ello los ciclos de reloj necesarios: en el peor de los casos tiene que llegar a realizar 2n pasos
(4096 pulsos de reloj para una conversión de 12 bits). Por ello este conversor resulta lento para efectuar conversiones aisladas, como, por ejemplo,
para efectuar las medidas sucesivas de varias señales multiplexadas.
Sin embargo, el contaje hacia arriba y hacia abajo resulta apropiado para seguir la evolución de una señal en un proceso de medida continuada;
para tales aplicaciones este esquema de conversión ADC resulta muy atractivo por su sencillez.
ADC por Aproximaciones Sucesivas
Este convertidor ADC, es bastante similar al conversor Rampa tipo Contador, desde el punto de vista de su diagrama en bloques, con la diferencia
apreciable que se sustituye el contador digital binario por un circuito denominado de “registro de aproximaciones sucesivas”.
Este registro, cuando se le da la orden de inicio, comienza colocando a 1 el bit más significativo (MSB), quedando el resto a cero; por ejemplo, para
una salida digital de 10 bits, aparece el 1000000000 2, valor que corresponde a la mitad de la máxima excursión de la tensión de entrada. Este valor
digital, mediante el DAC interno es transformado a una tensión analógica “VA/D “que es comparada con la señal analógica de entrada, a convertir.
Si la señal “VA/D “es mayor que Vo, el comparador bascula dando lugar a una señal que hace que el registro cambie su contenido, sustituyendo el 1
del bit más significativo por un cero y colocando un 1 en el bit de peso inmediatamente inferior, quedando el resto inalterado; el nuevo valor de
salida será 01000000002. Este último valor, nuevamente es convertido a señal analógica y comparada nuevamente con la señal Vo. Si en esta
comparación, resulta Vo > V A/D, el comparador cambia de estado, haciendo que el registro no modifique el 1 del bit de mayor peso, pero agrega un
1 en el bit inmediatamente inferior, dejando el resto en cero.
El proceso se repite “n” veces (“n”, es el número de bits del código digital de salida), hasta alcanzar el bit de menor peso (LSB). Terminada la
secuencia, el valor digital final corresponde al valor convertido de la señal analógica muestreada y cuantificada.
La próxima figura, muestra la modificación de los bits del registro de 5 bits, para un determinado valor de tensión analógica a convertir.
ADC Comparador en Paralelo
El conversor Comparador en Paralelo o también llamado ‘instantáneo’, es el ADC de mayor velocidad disponible, pero es también el más caro, dado
que necesita de 2N-1 comparadores para un conversor de N bits.
Este ADC consta de N-1 comparadores a los cuales se le introducen dos señales simultaneas, una es la señal analógica (ya muestreada) y la otra es
un voltaje de referencia distinto para cada comparador y que se obtiene del mismo voltaje de referencia (Vref), mediante una red de resistencias
conectadas en serie. De esta manera se producen N-1 comparaciones (7 en el diagrama) simultaneas entre el voltaje de entrada y los obtenidos
desde la referencia.
Las salidas de los comparadores se aplican a un codificador, que transforma la información a un código binario procesable.
El tiempo de conversión completo, es del orden de los nanosegundos.
El inconveniente principal de este conversor es su precio dada la gran cantidad de comparadores necesarios. Por ejemplo, si queremos codificar
palabras de 8 bits (1 byte) se necesitarán 255 comparadores.