¿Por qué los ADC usan 10 bits en lugar de 8 o 16?

¿Por qué la mayoría de los ADC, como los del Arduino , dan una resolución de 10 bits en lugar de 8 o 16 bits?

Simplemente parece extraño que no coincidan con los tamaños de datos estándar, particularmente en los integrados.

Las preocupaciones no están en el ancho de los datos. Más probable en la resolución necesaria y el costo.
¿Por qué coincidirían con "tamaños de datos estándar"?

Respuestas (7)

No hay ningún problema técnico importante con la extensión de un ADC SAR (aproximación sucesiva) para convertir 16 bits, pero el problema es que comienza a ver el ruido de fondo del front-end analógico. Esto tiende a hacer que los clientes entren en pánico porque ven los códigos ADC saltando y no siempre se dan cuenta de que están viendo decenas de microvoltios de desviación.

Suponiendo un voltaje de referencia de 5,00 V y un ADC de 10 bits, el LSB representa un voltaje de 4,88 mV (5 V × 2 -10 ). Para un ADC de 16 bits con una referencia de 5,00 V, el voltaje LSB sería de 76 µV.

Pero la fuente de alimentación en un sistema digital no es exactamente de 5,00 V, por lo general se especifica en un rango de 4,75 V a 5,25 V. Cada vez que hay un evento transitorio de conmutación dentro del microcontrolador, hay un pequeño pulso de corriente que hace que el suministro voltajes para contraerse. Si el LSB está alrededor de 5 mV, es posible que apenas pueda verlo, pero al nivel de 76 µV es difícil no ver este ruido.

De hecho, una vez que pasa el ADC de 12 bits, realmente necesita tener una referencia de voltaje analógico en lugar de solo usar la fuente de alimentación digital. Entonces eso agrega un poco más de costo. Para obtener los mejores resultados, esta referencia de voltaje debería ser un chip separado, con sus propias líneas eléctricas, e idealmente debería estar lejos del circuito digital caliente/ruidoso.

Si desea que un ADC de 16 bits brinde buenas lecturas estables, necesita un voltaje de referencia muy limpio y un control térmico, y preferiblemente mantenerlo alejado de cualquier señal digital de conmutación rápida ... por lo que integra un SAR de 16 bits en el mismo chip que un microcontrolador, en realidad anularía el propósito de tener esos bits adicionales. Solo estaría midiendo el ruido aleatorio en esos bits adicionales.

Hay aplicaciones de clientes que utilizan ADC de mayor resolución. La empresa en la que trabajo fabrica bastantes de estos. El equipo de prueba automatizado (ATE), el ultrasonido médico y algunos otros tipos especializados de clientes usan ADC de alta resolución, en algunos casos de 18 o incluso de 24 bits.

La prueba de producción de un ADC de alta resolución requiere mucho tiempo (y, por lo tanto, es costosa). Los clientes que necesitan este tipo de rendimiento pagan una prima por un ADC independiente externo, no por los tipos de SAR baratos que están integrados en muchos microcontroladores modernos.

Luego están las aplicaciones de alta velocidad, como el radar o el osciloscopio de muestreo digital, que necesitan muestrear a 100 MHz o velocidades más altas; a estas velocidades, tiene suerte de obtener 8 bits significativos.

Mi primera experiencia con ADC fue exactamente lo contrario. Me sorprendió mucho ver que el bit más bajo no fluctúa un poco.
Contrariamente a la intuición, cuando se trata de medir señales de CC o de baja frecuencia, en realidad puede ser MEJOR tener un sistema con suficiente ruido analógico para hacer que el bit inferior fluctúe para todas las señales de entrada. El ruido se puede reducir promediando, pero si su ADC está atascado en un valor, no importa cuánto promedie, no mejorará el resultado.
Con la tecnología moderna, puede comprar 8 bits significativos a múltiples tasas de decenas de gsps. :)

Compromiso entre resolución y costo.

8 bits dan 2 8 = 256 combinaciones, de las cuales 0 es una, dejando de 0 a 255 como posibles valores digitales. Esto no es suficiente para muchas aplicaciones. Cada bit extra duplica la resolución y 10 bits da 1024 pasos, lo cual es lo suficientemente bueno para la mayoría de los proyectos. Los sistemas industriales pueden usar 12 bits para una resolución aún mejor.

Los ADC de alta resolución requieren tolerancias más estrictas y son más caros de fabricar.

¿No tengo como varios millones de ADC de 14 bits en mi cámara?
@HagenvonEitzen: No. Una cámara no tiene un ADC por píxel, pero lee sus píxeles uno por uno. (Aunque puede haber más de un ADC para todo el sensor para acelerarlo).
Por lo general, una cámara lee por líneas, por lo que tiene unos pocos miles de ADC. En una situación de alta amplificación (ISO alto en un entorno oscuro), puede ver la variación individual en los pares de amplificador/ADC en forma de líneas que atraviesan la imagen.
@Mark Y como otro efecto de ese escaneo de línea, las imágenes de objetos en movimiento de alta velocidad pueden dar el efecto de obturador rodante .

Ya se han hecho una serie de puntos buenos y válidos. He usado ADC de 8, 10, 12 y 16 bits extensamente, a lo largo de los años, y hoy en día es bastante fácil lograr 16 bits con un tiempo de conversión de 4 o 5 microsegundos (hay mejores disponibles, me ceñiré a lo que sea practicable para que lo use la mayoría de la gente), en un chip independiente. Pero esto contiene una red de escalera de precisión, que a menudo utiliza resistencias de película delgada y varias técnicas de diseño analógico altamente especializadas. (También, casi siempre, se necesitan transistores bipolares de alto rendimiento en algún lugar del circuito de un ADC de precisión, pero todos los microcontroladores modernos son CMOS, por lo que hay numerosos pasos de fabricación adicionales para hacer cualquier cosa con buena precisión analógica y lógica CMOS combinadas. ) ¡Un buen ADC también cuesta más que la mayoría de los microcontroladores! No es tan fácil de hacer,

Por ejemplo, considere el TI ADS8509, cuyo predecesor, el ADS7509, no tan rápido, lo he usado en muchos lugares en un proyecto grande e importante.

http://www.ti.com/lit/ds/symlink/ads8509.pdf

Es bastante mundano para los estándares actuales. Sin embargo, sus características de diseño interno no son compatibles con el proceso de fabricación económico de los microcontroladores. Y cuesta más de $15.72, más que la mayoría de los microcontroladores. Los usé en forma de matriz semiconductora desnuda, incorporada en híbridos herméticos de latas de metal, con circuitos de soporte cuidadosamente diseñados, y realmente obtuve apenas más de 1 LSB pp de ruido, por lo que se puede hacer, si sabe lo que está haciendo, y disponer de los recursos, incluido el presupuesto. Pero nunca verá un ruido tan bajo dentro o alrededor de un microcontrolador.

El principal problema, como ha explicado al menos una persona, es que el ruido en el riel de suministro digital afectará directamente al ADC. Ahora puede evitar eso, utilizando una buena referencia de voltaje externo, donde se proporciona un pin para eso, pero también debe poder hacer lo mismo con la tierra. Y esos pines deben estar restringidos a unos pocos cientos de mV del suministro digital y tierra, o la cosa explotará. Además, por supuesto, el acoplamiento de ruido interno dentro del silicio, de la lógica, el cambio de estado de maneras complejas a la frecuencia del reloj y, lo que es peor, de los pines de E/S, algunos de los cuales pueden estar impulsando y cambiando 10s de mA, si usted haberlos cargado hasta el límite. Ruido, ruido y más ruido...

La parte que he citado (y busque en Google otras más baratas, más rápidas o diferentes, equilibre la flexibilidad con el costo) tiene una interfaz SPI, por lo que se usa fácilmente EXTERNAMENTE a un microcontrolador, con su propio plano de tierra local, filtrado, etc. Entonces , con cuidado, realmente te dará 16 bits.

Solía ​​ser bastante difícil obtener más de 10 bits libres de ruido de un ADC de 12 bits, y aún se encuentra en un entorno sucio, como cerca de la lógica digital, que es en gran parte la razón por la cual los ADC integrados dentro de los chips del procesador son más o menos atascado en esa resolución, y probablemente lo estará para siempre. Pero TI tiene un chip externo de 32 bits. No he mirado la hoja de datos, o el costo...

Si puede sacrificar la precisión absoluta (es decir, el factor de escala puede estar fuera del 5% o más, sin mencionar la compensación de CC y su deriva con el tiempo y la temperatura, pero la linealidad será excelente), un ADC de grado de audio puede ser para usted. Son de al menos 16 bits y están diseñados para el mercado masivo, por lo que a menudo tienen un buen valor, pero no espere usar uno en un instrumento de precisión que tiene que medir señales de CC a +/- 0.1%.

No se puede tener todo a la vez. Todo es cuestión de lo que más importa. Precisión, ruido, deriva a largo plazo, velocidad, costo, potencia, tipo de interfaz (serie o paralelo), etc. También es posible que desee multiplexar varios canales, por lo que necesita un tiempo de respuesta de paso rápido, lo que descarta muchos ADC sigma-delta, que por lo demás tienen muy buenas propiedades.

Al elegir un ADC. Google es, como siempre, tu amigo. Hay muchos artículos y notas de aplicación de TI, Linear, National y varios otros fabricantes de semiconductores. Siempre tenga cuidado con lo que no le dicen las hojas de datos y verifique qué parámetros enfatizan sus competidores.

Pero si lo quiere todo en su chip microcontrolador, no planee usar más de 10 bits (probablemente 9 utilizables, LSB ruidoso) en sus proyectos. Y planifique una referencia analógica y una conexión a tierra separadas si su chip lo permite. De esa manera, no perderás tu tiempo.

Los ADC de 8 bits son horribles de usar debido a los pasos de 0.49%; he visto suficiente de eso. Arduino, al estar diseñado para la electrónica de aficionados, utiliza 4 veces más pasos, tan cerca del 0,1%, que está cerca de la señal a ruido alcanzable (más zumbido) que se espera de los circuitos de sensores de transistores o amplificadores operacionales comunes. Mejor que eso se desperdiciaría en productos electrónicos caseros de grado aficionado, y peor que eso sería demasiado escalofriante y horrible.

Si bien los ADC de 16 bits están disponibles comercialmente, tardan más en establecerse, durante el cual el zumbido o el ruido se han movido, por lo que no obtiene una mejor medición y es más lento.

El diseño de Arduinos para la electrónica de aficionados no tiene nada que ver con la cantidad de bits adc disponibles en el adc en el chip de un atmel uC. puede ser una profundidad adecuada para el uso de aficionados, pero está diseñado para tener un buen tamaño para muchas aplicaciones profesionales que no sean arduino

Cuando un ADC realiza una conversión, proporciona un valor digital (cuantificado) para la señal analógica continua. Dado que el valor digital no será exactamente el valor analógico en el momento de la conversión, la diferencia puede considerarse como ruido aditivo. Cuanto mayor sea la resolución del ADC, más cerca estará el valor digital del valor analógico. En otras palabras, mejoramos la relación señal/ruido de cuantificación (SQNR) aumentando los bits del ADC. Por lo tanto, el ADC de 10 bits es mejor que el de 8 bits (alrededor de 12dB).

Usar A/D de 16 bits será mejor en términos de SQNR. Sin embargo, son más caros. Y en muchas aplicaciones, el ADC de 10 bits proporciona suficiente SQNR requerido.

Como regla general, desea que la cantidad de bits en su coveter sea tal que su paso de cuantificación esté un poco por debajo del nivel de ruido (analógico) del sistema.

El uso de más bits y, por lo tanto, tener un paso de cuantificación más abajo del ruido de fondo le brinda muy poca mejora en el rendimiento general del ruido, pero usa más silicio, lo que hace que el tiempo de conversión sea más largo o requiere que las partes internas de su convertidor funcionen más rápido (y por lo tanto, sea más ruidoso)

Usar menos bits y, por lo tanto, tener un paso de cuantificación por encima del ruido de fondo es generalmente malo. Significa que está desperdiciando el rendimiento de los circuitos analógicos y, en algunos casos, puede crear errores sistemáticos que no se pueden eliminar mediante el promedio (de hecho, a veces los diseñadores agregarán ruido deliberadamente a un sistema para evitar errores sistemáticos debido a la cuantificación).

La diferencia entre 8 bits y 16 bits es ENORME. El primero termina con un paso de cuantificación que es demasiado grande incluso en sistemas con un rendimiento de ruido bastante bajo. Esto último se desperdicia en cualquier sistema que no tenga un diseño analógico muy cuidado. Entonces, como era de esperar, los microcontroladores terminan en algún punto intermedio.

Tenga en cuenta que la gente suele hablar de "ruido de cuantificación", pero es importante recordar que el concepto de "ruido de cuantificación" es un modelo simplificado de la realidad que falla en algunas circunstancias.

Podría decirse que el uso más común de los ADC es en el área de procesamiento de sonido (VoIP, CD de música, etc.). La música no es de interés aquí, ya que requiere 16 bits. Pero VoIP es lo que impulsa el mercado de ADC de bits más bajos. VoIP generalmente usa compansión, que produce un código PCM comprimido de 8 bits a partir de una señal de entrada de 12 bits. La entrada al paso de compresión debe tener más bits; por lo general, 12 o, a veces, 10 pueden ser suficientes (siempre puede falsificar los dos bits más bajos).

Como resultado, la demanda de ADC de 8 bits es muy baja, pero los ADC de bits más altos tienen una gran demanda y, por lo tanto, están disponibles a bajo precio. Arduino probablemente usaría componentes que son baratos y ubicuos.