Conversores A/D

Fundamentos del procesamiento de señales: cómo el mundo analógico se convierte en información digital y viceversa.

Señales Analógicas No Periódicas

Una señal analógica no periódica es aquella cuya forma de onda no se repite a lo largo del tiempo. Su amplitud varía de manera continua y puede adoptar cualquier valor dentro de un rango determinado, sin seguir un patrón cíclico predefinido.

En la gráfica se observa cómo la tensión V(t) evoluciona de forma irregular entre los instantes t₁ y t₂. Este tipo de señales es muy habitual en la naturaleza: la voz humana, las variaciones de temperatura o una señal de presión son ejemplos típicos de señales analógicas no periódicas.

Su análisis requiere herramientas como la Transformada de Fourier continua, que permite descomponer cualquier señal aperiódica en un espectro continuo de frecuencias.

Señales Analógicas Periódicas — f = 1/T

Una señal analógica periódica es aquella que repite su forma de onda de manera exacta cada período T. La relación entre el período y la frecuencia es fundamental: f = 1/T, donde f se mide en Herzios (Hz) y T en segundos.

El ejemplo más representativo es la señal sinusoidal, caracterizada por su amplitud A, su período T y su fase inicial. En la gráfica se aprecia cómo la señal oscila simétricamente entre los valores +A y −A, cruzando el cero en T/2.

Señal Discreta en el Tiempo — Pero No Digital

Una señal discreta en el tiempo se obtiene al tomar muestras de una señal analógica en instantes concretos, separados por el período de muestreo Ts. Aunque los instantes de tiempo son discretos, los valores de amplitud siguen siendo continuos, es decir, pueden tomar cualquier valor real.

Esto la diferencia de una señal digital, donde tanto el tiempo como la amplitud están cuantizados. En la gráfica se observa cómo los puntos (muestras) siguen la envolvente de la señal analógica original entre los instantes t₁ y t₂, con un espaciado uniforme Ts entre ellos.

Este proceso de discretización temporal es el primer paso hacia la conversión analógico-digital y constituye la base del muestreo.

Muestreo: Midiendo el Mundo Analógico

El muestreo consiste en la medición periódica de una magnitud analógica variable con el objetivo de obtener una representación discreta de sus cambios. Cuanto más rápido varía la magnitud, más muestras por segundo son necesarias para poder reconstruirla fielmente.

Teorema de Nyquist del Muestreo
Enunciado fundamental

Para reproducir fielmente una señal, la frecuencia mínima de muestreo debe ser superior al doble de la frecuencia más alta presente en la señal muestreada.

Frecuencia de Nyquist

La frecuencia f_N = 2 · f_max se denomina frecuencia de Nyquist. Si se muestrea por debajo de este umbral, se produce el fenómeno de aliasing, que distorsiona irrecuperablemente la señal reconstruida.

Principio de Funcionamiento — Convertidor A/D

La conversión entre el mundo analógico (señales de tiempo continuo) y el mundo digital (señales discretas) se realiza mediante los conversores A/D y D/A. El convertidor Analógico-Digital (A/D) toma una tensión analógica en su entrada y produce una palabra digital en su salida que representa dicho valor.

El proceso involucra tres etapas esenciales: el muestreo (captura de la señal en instantes discretos), la cuantización (asignación de un valor discreto a cada muestra) y la codificación (representación del valor cuantizado en código binario).

Convertidor A/D — Diagrama Completo

El siguiente diagrama muestra la arquitectura interna completa de un convertidor analógico-digital, ilustrando el flujo de la señal desde la entrada analógica hasta la salida digital codificada. Se pueden observar los bloques de muestreo y retención (Sample & Hold), cuantizador y codificador binario.

Características del Convertidor A/D — Parte I
Resolución

Es el menor incremento de tensión en la entrada que provoca un cambio de código digital en la salida. Se expresa como porcentaje de la escala máxima o en número de bits. Un ADC de n bits tiene niveles posibles.

Error de Offset

Es la tensión que debe aplicarse a la entrada para obtener el código todo ceros (0x00) a la salida. Representa un desplazamiento sistemático de la curva de transferencia respecto al origen ideal.

Linealidad

También conocida como No Linealidad (NL), es la desviación máxima de la respuesta real respecto a la respuesta lineal ideal. Se mide en LSB (bits menos significativos) o como fracción del fondo de escala.

Características del Convertidor A/D — Parte II
Precisión

Es la desviación del código de valores obtenido de las mediciones en el peor de los casos, acumulando todos los errores posibles: offset, escala, no-linealidad, ruido térmico, etc. Define cuán próximo está el resultado real del valor teórico esperado.

La precisión engloba todos los factores de error y representa la calidad global del convertidor en condiciones reales de operación.

Velocidad de Conversión

Se expresa como el número de conversiones por segundo que el ADC es capaz de realizar. Es un parámetro crítico en aplicaciones donde la señal de entrada varía rápidamente, como audio de alta fidelidad, radar o comunicaciones.

La velocidad de conversión está íntimamente relacionada con la arquitectura interna del convertidor: los ADC de aproximaciones sucesivas son más lentos que los ADC flash, pero ofrecen mayor resolución con menor consumo.

Convertidor A/D de Rampa Simple — Principio

El convertidor de Rampa Simple es uno de los métodos más sencillos de conversión A/D. Su funcionamiento se basa en comparar la tensión analógica de entrada con una rampa de tensión que crece linealmente, mientras un temporizador interno mide el tiempo transcurrido hasta que ambas tensiones se igualan.

01
Inicialización

Se cierra el interruptor S, forzando la tensión del condensador a Vc = 0 V. El sistema queda listo para iniciar la conversión.


02
Arranque de la Rampa

Se abre S y se arranca el timer interno del microcontrolador. El condensador comienza a cargarse, generando una tensión Vc que sube de manera lineal con el tiempo.

Convertidor A/D de Rampa Simple — Comparación y Resultado

El proceso de conversión continúa hasta que la tensión de la rampa Vc alcanza el valor de la tensión de entrada analógica Vin. En ese instante, la salida del comparador cambia de estado, deteniendo el temporizador.

El tiempo Tc medido por el timer es proporcional a la tensión de entrada: cuanto mayor sea Vin, más tiempo tardará la rampa en alcanzarla y mayor será el código digital de salida. Este tiempo se convierte directamente en el valor digital representado por la muestra.

ADC del ATmega328P (Pág. 205) — Aproximaciones Sucesivas
Resolución

10 bits → 1024 niveles de cuantización.

Ajuste a Izquierda o derecha

Canales

(6+2) canales analógicos multiplexados.

ADC8 (sensor temperatura)

Velocidad

13 µs a 260 µs por conversión. 15 kSPS


Rango de voltaje

0 - VCC

Referencias

1.1V, GND, AVCC

Modos de trabajo

Conversión simple

Conversión continua

Interrupción

Conversión completa org 0×002A

ISR(ADC_vect)
{

}

ADC ATmega328P — Algoritmo de Aproximaciones Sucesivas

El método de aproximaciones sucesivas (SAR) es el más utilizado en microcontroladores de propósito general. En lugar de generar una rampa lineal, este algoritmo realiza una búsqueda binaria comparando la entrada con diferentes valores de referencia, comenzando por el bit más significativo (MSB) y avanzando hacia el menos significativo (LSB).



Para un ADC de 10 bits, el algoritmo realiza exactamente 10 comparaciones para determinar el código digital final, independientemente del valor de la entrada. Esto garantiza un tiempo de conversión fijo y predecible.

Registro ADMUX
ADMUX — ADC Multiplexer Selection Register

El registro ADMUX es el encargado de configurar tres aspectos esenciales del ADC: la fuente de tensión de referencia, el ajuste del resultado (izquierda o derecha) y la selección del canal analógico que se utilizará para la conversión.

Bits 7:6 — REFS1:0: Selección de Tensión de Referencia

Estos dos bits determinan qué fuente de tensión de referencia se utiliza para la conversión A/D. Las opciones incluyen la tensión de alimentación AVCC, una referencia interna de 1,1 V o una referencia externa conectada al pin AREF. La elección de la referencia afecta directamente al rango de tensión que el ADC puede medir y a su resolución efectiva.

ADMUX — Bit ADLAR: Ajuste del Resultado
Bit 5 — ADLAR: ADC Left Adjust Result

Este bit controla cómo se almacenan los 10 bits del resultado de la conversión en los registros de datos ADCH:ADCL (16 bits en total).

  • ADLAR = 1: El resultado se ajusta a la izquierda. Los 8 bits más significativos quedan en ADCH, útil cuando solo se necesitan 8 bits de resolución (se lee únicamente ADCH).
  • ADLAR = 0: El resultado se ajusta a la derecha (valor por defecto). Los 10 bits ocupan ADCL completo y los 2 bits menos significativos de ADCH.
ADMUX — Bits MUX4:0: Selección de Canal Analógico

Los bits MUX4:0 (bits 4 al 0 del registro ADMUX) seleccionan qué combinación de entradas analógicas está conectada al ADC en cada conversión. En el ATmega164P, estos bits permiten elegir entre los 8 canales individuales (ADC0–ADC7), entradas diferenciales con ganancia programable, o señales internas de referencia y temperatura.

ADCSRA — ADC Control and Status Register A

El registro ADCSRA es el registro de control principal del ADC. Permite habilitar el módulo ADC, iniciar conversiones, configurar el prescaler del reloj y gestionar las interrupciones asociadas a la finalización de la conversión.

Bit 7 — ADEN

ADC Enable. Escribir 1 enciende el ADC. Escribir 0 lo apaga, reduciendo el consumo de energía.

Bit 6 — ADSC

ADC Start Conversion. En modo individual, escribir 1 inicia la conversión. Se borra a 0 automáticamente cuando la conversión finaliza y el dato está disponible.

Bit 5 — ADATE

ADC Auto Trigger Enable. Con 1 se habilita el disparo automático según la fuente configurada. Con 0 el modo es manual.

Registro ADCSRA
ADCSRA — Control de Interrupciones y Prescaler
Bit 4 — ADIF: Bandera de Interrupción

Este bit se activa (1) automáticamente cuando una conversión ADC ha finalizado y los registros de datos están actualizados. Se borra por hardware al ejecutarse la rutina de servicio de interrupción (ISR) o escribiendo un 1 lógico sobre él mediante el registro SREG.

Bit 3 — ADIE: Habilitación de Interrupción

Con 1 se habilita la interrupción por conversión completada. Con 0 la interrupción queda deshabilitada y debe emplearse polling del bit ADIF para detectar el fin de la conversión.

Bits 2:0 — ADPS2:0: Prescaler del ADC

Estos bits determinan el factor de división entre el reloj del sistema y el reloj de entrada al ADC. El ADC del ATmega164P requiere una frecuencia de reloj de entrada entre 50 kHz y 200 kHz para garantizar la máxima resolución de 10 bits.

Registro DIDR0
DIDR0 — Digital Input Disable Register 0

El registro DIDR0 (Digital Input Disable Register 0) permite desconectar el buffer digital de entrada de los pines que se utilizan como entradas analógicas para el ADC. Esto es fundamental para reducir el consumo de corriente y minimizar el ruido en las mediciones analógicas.


Bit = 1

Pin configurado como entrada analógica. El circuito digital de entrada queda desconectado, eliminando el consumo asociado y reduciendo el ruido.

Bit = 0

Pin con circuito digital conectado (estado por defecto). Puede usarse como entrada digital normal o como entrada analógica con mayor riesgo de interferencias.

Se recomienda escribir 1 en los bits ADC7D..ADC0D correspondientes a todos los pines que se utilicen exclusivamente como entradas analógicas, para mejorar la integridad de la señal y reducir el consumo total del sistema.

Volver