Calculadora de resolución de ADC

Introduce los bits y la tensión de referencia de un ADC para obtener su tamaño de paso, error de cuantificación y SNR ideal, convertir entre voltios y códigos, y seguir cada sustitución.

Convertidor y rango

Número entero del 1 al 32: la resolución nominal en bits del convertidor.
Rango de entrada

Punto de medición (opcional)

Déjalo vacío para omitir la medición.

¿Cuántos bits necesitas? (opcional)

Tamaño de paso y ruido

Tamaño de paso LSB

Fórmulas y sustitución

LSB = FSR ÷ 2ᴺ · error máx. = ½ LSB · SNR = 6.02N + 1.76 dB

    Cada número que introduces se queda en este navegador; no se sube nada.

    Preguntas frecuentes

    ¿Por qué algunas fuentes dividen por 2^N y otras por 2^N − 1?

    Son dos modelos diferentes del mismo convertidor. Las hojas de datos y la teoría clásica de cuantificación definen LSB = FSR ÷ 2^N, con la primera transición de código a medio paso; este es el modelo que utiliza esta página. La fórmula Vref ÷ (2^N − 1) proviene de asignar el código superior exactamente a Vref, algo habitual en tutoriales de microcontroladores. A 12 bits, ambos difieren en torno a un 0.02%, muy por debajo de la tolerancia de cualquier referencia real; simplemente evita mezclar ambos modelos al contrastar datos de distintas fuentes.

    ¿Una resolución de 12 bits significa una precisión de 12 bits?

    No. La resolución es solo el ancho del código, es decir, la finura con la que se divide el rango. La precisión está limitada por la INL y los errores de offset/ganancia del convertidor, la tolerancia y el ruido de la referencia, y el circuito que lo rodea. Por eso las hojas de datos indican el ENOB: un SAR de 12 bits suele ofrecer entre 10–11 bits efectivos. El SNR ideal de 74 dB que se muestra aquí es el límite teórico que ningún convertidor real de 12 bits llega a alcanzar.

    ¿Cómo cambia el cálculo una entrada de ±Vref?

    El rango se duplica a 2 × Vref, por lo que el mismo convertidor resuelve pasos el doble de anchos: LSB = 2 × Vref ÷ 2^N. Los códigos van desde el raíl negativo hasta el positivo: el código 0 es −Vref, el código medio 2^(N−1) es 0 V y el código superior queda un paso por debajo de +Vref. Si seleccionas el rango bipolar de arriba, cero voltios coincidirá exactamente con el código medio.

    ¿Qué puedo hacer si el tamaño del paso es demasiado grueso?

    El sobremuestreo y el promediado permiten ganar resolución cuando la señal tiene un poco de ruido: promediar 4× más muestras aporta aproximadamente un bit efectivo, y 16× aporta dos, siempre que el ruido sea blanco y no correlacionado (una señal perfectamente limpia y estática solo repetirá el mismo código). Más allá de eso, conviene cambiar a un convertidor con más bits o añadir una etapa de ganancia programable para que la señal ocupe una mayor parte del rango.

    Análisis del tamaño de paso y el ruido en la conversión analógico-digital

    En el diseño de sistemas de adquisición de datos y cadenas de señal analógica, la resolución de un convertidor analógico-digital (ADC) determina el límite teórico de la fidelidad con la que se puede registrar una magnitud física. La Calculadora de resolución de ADC evalúa de forma instantánea los parámetros fundamentales de un cuantificador ideal a partir de su resolución en bits y su tensión de referencia.

    El cálculo del tamaño de paso del bit menos significativo (LSB), el error de cuantificación y la relación señal/ruido (SNR) teórica permite a los diseñadores de hardware dimensionar correctamente sus componentes antes de iniciar el trazado del circuito impreso o la escritura del firmware.


    Parámetros de entrada del convertidor

    Para realizar los cálculos, la herramienta requiere la configuración de los siguientes parámetros en su interfaz:

    • Resolución N (bits): Un número entero del 1 al 32 que define la resolución nominal en bits del convertidor.
    • Tensión de referencia: Un valor numérico positivo que establece el límite de escala del convertidor.
    • Unidad de referencia: La unidad de medida asociada a la tensión de referencia (como V, mV o µV).
    • Rango de entrada: Selección entre las opciones de rango unipolar o bipolar:
      • Unipolar · 0 a Vref
      • Bipolar · −Vref a +Vref
    • Decimales mostrados: Controla la precisión de redondeo en la visualización de los resultados.
    • Convertir (Punto de medición - opcional): Permite alternar el modo de conversión activa entre Tensión → código y Código → tensión.
    • Tensión de entrada (opcional): El valor de tensión que se desea mapear a su correspondiente código digital.
    • Código (cuentas) (opcional): Un número entero que representa el código digital para calcular su equivalencia en tensión.
    • Unidad de tensión: Unidad de medida para las tensiones de entrada o de código.
    • Cambio más pequeño a resolver (opcional): Un valor de tensión objetivo para determinar si la resolución de bits seleccionada es suficiente para detectar dicha variación.
    • Unidad del paso: Unidad de medida para el cambio más pequeño a resolver.

    La interfaz dispone de los botones Cargar ejemplo y Limpiar para facilitar la carga rápida de valores típicos o el restablecimiento completo de los campos de entrada.


    Resultados y métricas calculadas

    La herramienta procesa los datos de entrada y genera un desglose detallado bajo etiquetas específicas de la interfaz:

    Tamaño de paso y ruido

    • Tamaño de paso LSB: Muestra el valor absoluto del paso del bit menos significativo. Incluye un subindicador con el porcentaje de la escala completa y su equivalencia en partes por millón (ppm).
    • Niveles de cuantificación: El número total de estados discretos que el ADC puede representar (2^N).
    • Código superior: El valor digital máximo alcanzable (2^N - 1).
    • Rango de escala completa: El intervalo de tensión total que cubre el convertidor (FSR).
    • Error de cuantificación máx. (±½ LSB): La desviación máxima teórica debida a la discretización de la señal.
    • Ruido de cuantificación (rms): El valor eficaz del ruido de cuantificación bajo un modelo de distribución uniforme.
    • SNR ideal (seno a escala completa): La relación señal/ruido máxima teórica expresada en decibelios.
    • Rango dinámico: El rango dinámico teórico del convertidor en decibelios.

    En el punto de medición

    • Código de salida: El código digital resultante de la conversión de la tensión de entrada.
    • Binario: Representación en base 2 del código de salida.
    • Hexadecimal: Representación en base 16 del código de salida.
    • Tensión del código: La tensión exacta que representa el código digital obtenido.
    • Error de cuantificación: La diferencia matemática entre la tensión de entrada real y la tensión del código digitalizado.
    • Ventana de entrada para este código: El rango de tensiones analógicas que se asignan a ese mismo código digital.

    Estado del dimensionamiento (Sizing Status)

    Cuando se introduce un valor en el campo del cambio más pequeño a resolver, la herramienta evalúa la viabilidad del diseño:

    • Si la resolución actual es suficiente, muestra el mensaje: "Resolver ‹step› requiere al menos ‹bits› bits; este convertidor de ‹current› bits lo cubre."
    • Si la resolución es insuficiente, muestra el mensaje: "Resolver ‹step› requiere al menos ‹bits› bits; este convertidor de ‹current› bits solo resuelve ‹lsb›."

    Fórmulas matemáticas y sustitución de variables

    La herramienta expone de forma transparente el desarrollo matemático de cada cálculo, sustituyendo las variables por los valores definidos por el usuario:

    • Rango de escala completa (FSR):
      • Unipolar: FSR = Vref
      • Bipolar: FSR = 2 × Vref
    • Tamaño de paso LSB: LSB = FSR ÷ 2^N
    • Error de cuantificación máximo: ±LSB ÷ 2
    • Ruido de cuantificación (rms): LSB ÷ √12
    • SNR ideal (seno a escala completa): SNR = 6.02 × N + 1.76 dB
    • Rango dinámico: 6.02 × N dB
    • Conversión a código (Unipolar): código = round(Vin ÷ LSB)
    • Conversión a código (Bipolar): código = round((Vin + Vref) ÷ LSB)
    • Conversión a tensión (Unipolar): V = código × LSB
    • Conversión a tensión (Bipolar): V = código × LSB − Vref
    • Error de cuantificación en la medición: tensión del código − tensión de entrada
    • Dimensionamiento de resolución: N ≥ log₂(FSR ÷ paso) (redondeado al entero superior).

    Ejemplo de funcionamiento con los valores de prueba

    Al pulsar Cargar ejemplo, se configuran 12 bits, una referencia de 3.3 V y un rango unipolar:

    • Niveles: 2¹² = 4.096 niveles.
    • Código superior: 4.095.
    • LSB: 3.3 V ÷ 4.096 ≈ 805.6641 µV.
    • Error de cuantificación máx.: ± 402.832 µV.
    • Ruido de cuantificación: ≈ 232.5752 µV rms.
    • SNR ideal: ≈ 74.01 dB.
    • Rango dinámico: ≈ 72.25 dB.
    • Una entrada de 1.65 V (exactamente a media escala) se asigna al código 2.048 (binario 1000 0000 0000, hexadecimal 0x800) con un error de cuantificación de cero.

    Comportamiento en límites y gestión de errores

    El motor de cálculo de la herramienta sigue reglas estrictas para modelar el comportamiento de un cuantificador ideal y evitar estados indeterminados:

    • Saturación por encima del raíl (High Rail Clipping): Si la tensión de entrada supera el límite superior del rango, la salida se satura en el código máximo (2^N - 1). La interfaz muestra la advertencia: "La entrada supera el raíl alto: la salida se satura en el código superior y el error mostrado es el residuo real (el límite de ±½ LSB ya no se aplica)."
    • Saturación por debajo del raíl (Low Rail Clipping): Si la tensión de entrada cae por debajo del límite inferior, la salida se satura en el código 0. La interfaz muestra la advertencia: "La entrada queda por debajo del raíl bajo: la salida se satura en el código 0 y el error mostrado es el residuo real (el límite de ±½ LSB ya no se aplica)."
    • Entrada a media escala: Si la tensión de entrada se sitúa exactamente en el punto medio del rango, la herramienta indica: "Exactamente a media escala: la mitad del rango se asigna al código ‹code› con un error de cuantificación de cero."

    Mensajes de error de validación

    La herramienta valida en tiempo real cada campo de texto e interrumpe el cálculo si se detectan anomalías, mostrando los siguientes mensajes específicos:

    • Entrada no numérica: "‹field›: «‹token›» no es un número."
    • Resolución fuera de rango: "La resolución debe ser un número entero de bits entre 1 y 32."
    • Tensión de referencia inválida: "La tensión de referencia debe ser mayor que cero."
    • Código no entero: "Un código es un número entero de cuentas."
    • Código fuera de límites: "El código debe estar entre 0 y ‹max› para un convertidor de ‹bits› bits."
    • Paso objetivo inválido: "El cambio más pequeño a resolver debe ser mayor que cero."
    • Desbordamiento numérico: "Un valor o resultado intermedio supera el rango numérico admitido."

    Privacidad y procesamiento de datos

    El procesamiento de los datos introducidos en la calculadora se realiza de manera local. Cada número que introduces se queda en este navegador; no se sube nada a servidores externos ni se almacena información de forma remota.


    Preguntas frecuentes

    ¿Una resolución de 12 bits significa una precisión de 12 bits?
    No. La resolución es solo el ancho del código, es decir, la finura con la que se divide el rango. La precisión está limitada por la INL y los errores de offset/ganancia del convertidor, la tolerancia y el ruido de la referencia, y el circuito que lo rodea. Por eso las hojas de datos indican el ENOB: un SAR de 12 bits suele ofrecer entre 10–11 bits efectivos. El SNR ideal de 74 dB que se muestra aquí es el límite teórico que ningún convertidor real de 12 bits llega a alcanzar.

    ¿Cómo cambia el cálculo una entrada de ±Vref?
    El rango se duplica a 2 × Vref, por lo que el mismo convertidor resuelve pasos el doble de anchos: LSB = 2 × Vref ÷ 2^N. Los códigos van desde el raíl negativo hasta el positivo: el código 0 es −Vref, el código medio 2^(N−1) es 0 V y el código superior queda un paso por debajo de +Vref. Si seleccionas el rango bipolar de arriba, cero voltios coincidirá exactamente con el código medio.

    ¿Por qué algunas fuentes dividen por 2^N y otras por 2^N − 1?
    Son dos modelos diferentes del mismo convertidor. Las hojas de datos y la teoría clásica de cuantificación definen LSB = FSR ÷ 2^N, con la primera transición de código a medio paso; este es el modelo que utiliza esta página. La fórmula Vref ÷ (2^N − 1) proviene de asignar el código superior exactamente a Vref, algo habitual en tutoriales de microcontroladores. A 12 bits, ambos difieren en torno a un 0.02%, muy por debajo de la tolerancia de cualquier referencia real; simplemente evita mezclar ambos modelos al contrastar datos de distintas fuentes.

    ¿Qué puedo hacer si el tamaño del paso es demasiado grueso?
    El sobremuestreo y el promediado permiten ganar resolución cuando la señal tiene un poco de ruido: promediar 4× más muestras aporta aproximadamente un bit efectivo, y 16× aporta dos, siempre que el ruido sea blanco y no correlacionado (una señal perfectamente limpia y estática solo repetirá el mismo código). Más allá de eso, conviene cambiar a un convertidor con más bits o añadir una etapa de ganancia programable para que la señal ocupe una mayor parte del rango.