¿Por qué la mayoría de los ADC, como los del Arduino , ofrecen una resolución de 10 bits en lugar de 8 o 16 bits?
Parece extraño que no coincidan con los tamaños de datos estándar, especialmente en los integrados.
¿Por qué la mayoría de los ADC, como los del Arduino , ofrecen una resolución de 10 bits en lugar de 8 o 16 bits?
Parece extraño que no coincidan con los tamaños de datos estándar, especialmente en los integrados.
Respuestas:
No hay ningún problema técnico importante al extender 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 que los códigos ADC saltan 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 76 µV.
Pero la fuente de alimentación en un sistema digital no es exactamente de 5.00 V, generalmente se especifica en un rango de 4.75 V a 5.25 V. Siempre que haya un evento transitorio de conmutación dentro del microcontrolador, hay un pequeño pulso de corriente que causa el suministro voltajes para contraerse. Si el LSB es de 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 de alimentación, e idealmente debería estar lejos de los circuitos digitales calientes / ruidosos.
Si desea un ADC de 16 bits para obtener buenas lecturas estables, necesita un muy muy voltaje de referencia limpio y control térmico, y preferiblemente mantenerlo alejado de cualquier señal digital de conmutación rápida ... integrando así un SAR de 16 bits en el mismo chip que un microcontrolador, en realidad frustraría el propósito de tener esos bits adicionales. Simplemente estarías midiendo ruido aleatorio en esos bits adicionales.
Hay aplicaciones de clientes que utilizan ADC de mayor resolución. La compañía en la que trabajo hace bastantes de estos. El equipo de prueba automatizado (ATE), el ultrasonido médico y algunos otros tipos especializados de clientes utilizan 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 lleva mucho tiempo (y, por lo tanto, es costoso). Los clientes que necesitan este tipo de rendimiento pagan una prima por un ADC independiente externo, no 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 velocidades de 100 MHz o más rápidas; a estas velocidades, tienes la suerte de obtener 8 bits significativos.
Compensación entre resolución y costo.
8 bits dan 2 8 = 256 combinaciones, de las cuales 0 es una, dejando 0 a 255 como posibles valores digitales. Esto no es suficiente para muchas aplicaciones. Cada bit adicional duplica la resolución y 10 bits da 1024 pasos, lo cual es lo suficientemente bueno para la mayoría de las cosas del proyecto. 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.
Ya se han hecho una serie de puntos buenos y válidos. He usado ADC de 8, 10, 12 y 16 bits ampliamente, 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 (mejor están disponibles, me atendré a lo que podría ser posible) para que la use la mayoría de las personas), en un chip independiente. Pero esto contiene una red de escalera de precisión, a menudo utilizando 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 combinada. ) ¡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 barato para microcontroladores. Y cuesta más de $ 15.72, más que la mayoría de los microcontroladores. Los utilicé 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 superé apenas el ruido de 1 LSB pp, por lo que se puede hacer, si sabes lo que estás haciendo, y tener los recursos, incluido el presupuesto. Pero nunca, nunca verá un ruido tan bajo en 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 ser capaz de hacer lo mismo con la tierra. Y, esos pines deben limitarse a unos pocos cientos de mV del suministro digital y la tierra, o la cosa explota. Además, por supuesto, el acoplamiento de ruido interno dentro del silicio, desde la lógica, los estados cambiantes de maneras complejas en la frecuencia del reloj y, lo que es peor, desde los pines de E / S, algunos de los cuales pueden conducir y cambiar 10s de mA, si usted los he cargado al límite Ruido, ruido y más ruido ...
La parte que he citado (y Google busca otras más baratas, más rápidas o diferentes, compensa la flexibilidad con el costo) tiene una interfaz SPI, por lo que se usa fácilmente EXTERNAMENTE para un microcontrolador, con su propio plano de tierra local, filtrado, etc. Luego , 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 todavía está 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 en los chips del procesador son más o menos estancado en esa resolución, y probablemente lo será 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 en un 5% o más, sin mencionar el desplazamiento 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 tenga que medir señales de CC a +/- 0.1%.
No puedes tener todo de una vez. Todo es una 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, que descarta muchos ADC sigma-delta, que de lo contrario tienen algunas 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 otros fabricantes de semiconductores. Siempre tenga cuidado con lo que las hojas de datos no le dicen, y verifique qué parámetros enfatizan sus competidores.
Pero si lo quiere todo en su chip de microcontrolador, no planee usar más de 10 bits (probablemente 9 utilizables, LSB ruidosos) en sus proyectos. Y, planifique una referencia analógica separada y tierra 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 del 0,49%, ya he visto suficiente. Arduino, que está diseñado para la electrónica de hobby, utiliza 4 veces más pasos, cerca del 0.1%, lo que está cerca de la señal alcanzable al ruido (más el zumbido) que se espera de los circuitos de sensores de transistores o amplificadores operacionales comunes. Mejor que eso se desperdiciaría en la electrónica casera de grado hobyist, y peor que eso sería demasiado escalofriante y horrible.
Si bien el ADC de 16 bits está disponible comercialmente, demoran más en establecerse, durante los cuales se ha movido el zumbido o el ruido, por lo que no obtiene una mejor medición y es más lento.
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 conversión, la diferencia puede considerarse como ruido aditivo. Cuanto mayor sea la resolución del ADC, más se acercará el valor digital al valor analógico. En otras palabras, mejoramos la relación señal / ruido de cuantificación (SQNR) al aumentar los bits del ADC. Por lo tanto, el ADC de 10 bits es mejor que los de 8 bits (en aproximadamente 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 el número de bits en su codificador 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 por debajo del nivel de ruido le brinda muy poca mejora en el rendimiento general del ruido, pero usa más silicio o bien hace que su 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 sean más ruidosas)
Usar menos bits y, por lo tanto, tener un paso de cuantificación por encima del nivel de ruido 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 agregan deliberadamente ruido a un sistema para evitar errores sistemáticos debido a la cuantización).
La diferencia entre 8 bits y 16 bits es ENORME. El primero termina con un paso de cuantización que es demasiado grande incluso en sistemas con un rendimiento de ruido bastante pobre. Este último se desperdicia en cualquier sistema que no tenga un diseño analógico muy cuidadoso. Así que, como era de esperar, los microcontroladores terminan en algún punto intermedio.
Tenga en cuenta que las personas a menudo hablan de "ruido de cuantización", pero es importante recordar que el concepto de "ruido de cuantización" es un modelo simplificado de la realidad que se rompe en algunas circunstancias.
El uso más común de ADC es posiblemente en el área de procesamiento de sonido (VoIP, música de CD, 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 companding, 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 tiene que tener más bits, generalmente 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 mayor bit tienen una gran demanda y, por lo tanto, están disponibles a bajo precio. Arduino probablemente usaría componentes que son baratos y ubicuos.