Actualmente estoy diseñando una placa que está conectando un ADC de 12 bits (MCP3208) a una Raspberry Pi (además de algunas otras cosas relacionadas con E / S de baja velocidad). Se conectará principalmente a sensores analógicos (sensores de temperatura, sensores de distancia IR y cosas similares, aunque no siempre necesita una resolución de 12 bits, hay casos en los que sería realmente bueno tener esa cantidad extra de información).
No tengo mucha experiencia con circuitos analógicos y no tengo una buena comprensión de las matemáticas y la física subyacentes involucradas.
Estoy leyendo varias guías de diseño con respecto a los ADC y, a menudo, leo sobre cosas como filtros anti-aliasing, controladores ADC para señales de alta impedancia, planos de tierra analógicos, diseño de trazas en ciertos patrones para reducir el ruido, manteniendo la electrónica digital de alta velocidad separada tanto como posible desde el ADC para reducir el ruido de conmutación, referencias de voltaje de precisión y mucho más cosas que aún no entiendo completamente.
Entonces, lo que comencé a preguntarme era si incluso tiene sentido para mí usar un ADC de 12 bits, si no tengo la experiencia para implementarlo correctamente porque puedo perder 2 LSB de todos modos debido al diseño de circuito subóptimo y debería simplemente ir con un ADC de 10 bits. O el diseño óptimo del circuito no es tan crucial en el ámbito de los 12 bits como creo.
¿Cuáles son las cosas que siempre deben implementarse para reducir el ruido (por ejemplo, el obvio límite de derivación)? ¿Cuáles son las principales causas de ruido en una aplicación de señal mixta como la mía (tener un procesador de GHz hablando con el ADC)? ¿Cuáles son las cosas que en realidad solo se necesitan en aplicaciones de mayor precisión (14-16 bits +)?
Realmente me gustaría saber cuáles son las cosas sensibles y esenciales que debo tener en cuenta.
Respuestas:
Para una aplicación de señal mixta de baja frecuencia de muestreo y precisión media como la suya, los principales problemas que enfrenta son tener una referencia lo suficientemente precisa y mantener el ruido de conmutación digital fuera de su ADC. Hay varios pasos para esto, comenzando en la fase de diseño y continuando a través del diseño de la placa.
Durante el diseño del circuito
Primero, en la fase de diseño, se debe suministrar al ADC una referencia adecuada, un desacoplamiento correcto y una unidad de señal de baja impedancia para que se produzcan conversiones correctas. Además, la señal debe filtrarse (filtro de paso bajo en una aplicación de instrumentación como la suya) para evitar que el ADC convierta efectivamente las frecuencias más altas a la banda base (las aplicaciones de RF pueden usar un filtro frontend de paso de banda ADC + lento para convertir Nyquist-down una señal, ahorrando en un mezclador dedicado y LO).
Estabilizando su referencia
Las referencias van desde lo trivial y patético (un Zener discreto jellybean, bueno a oh, 4 bits) hasta lo loco (Zeners enterrados en IC al horno, utilizado en aplicaciones de instrumentación de alto rendimiento), y las especificaciones a menudo no son claras, mezclando unidades en formas que confunden a los novatos. El cuadro en LTC AN82 es un antídoto útil para esto: dada su aplicación, donde su ADC es una unidad de 12 bits capaz de 11+ ENOB dada una referencia estable y un suministro de 5V, yo especificaría que la referencia sea precisa al 0.02% o mejor en el rango de temperatura de interés, y el ruido RMS no es una preocupación, ya que se trata de un orden de magnitud menor que su especificación de precisión.
Desafortunadamente, la precisión inicial de 0.02% sin un recorte se trata de donde las cosas comienzan a ponerse bastante ... difíciles. Usar una referencia de 4.096V dado que el rendimiento deseado de ENOB significa que quiero ejecutar el ADC en un suministro silencioso de 5V con un traductor de nivel lógico al 3.3VI / O del Pi, y que 4.096V le brinda un buen y práctico Relación de 1 mV / recuento, estamos limitados al ADR4540 , el X60003 , el MAX6126AASA o quizás el LTC6655Baunque la última parte lo corta ya que tiene una precisión inicial de 0.025%. Si bien el tempco y la histéresis no son preocupaciones, ya que esta es una aplicación de banco, supongo, y la regulación de línea y carga no son problemas importantes, ya que se alimenta del mismo suministro regulado de 5V que el ADC y solo impulsa el pin Vref del ADC, deriva a largo plazo También es una preocupación aquí debido a la falta de un ajuste: para esto, el ADR4540 y MAX6126AASA son los claros ganadores a 25ppm / root-khr y 20ppm / root-khr típicos, respectivamente, aproximadamente en la proporción de 10-1 necesaria considerar la deriva a largo plazo como insignificante. (Las otras dos partes tienen una deriva a largo plazo alrededor de 50-60ppm / root-khr típica).
Desacoplando todo
La hoja de datos MCP3208 recomienda un condensador mínimo de 1 µF para el desacoplamiento, conectado desde Vdd al sistema de tierra; AGND y DGND también deben estar unidos al mismo sistema de tierra. También se debe usar un desacoplador de cerámica o polímero de tantalio mínimo de 10 µF / 10 V en el riel de 5 V de la placa.
Además de esto, la referencia se debe desacoplar según la hoja de datos: a menudo es de 100nF en la salida con 100nF en la entrada, además de cualquier capacitancia de desacoplamiento presente, pero el LTC6655 requiere un condensador de salida mucho más grande (usando el mismo P / N ya que el desacoplador a granel funciona), y el X60003 es exigente en la dirección opuesta debido a su diseño de baja potencia.
Unidad de entrada / almacenamiento en búfer / filtrado
Afortunadamente, esto no es difícil: la precisión del 0.02% se traduce en 800 µV de compensación de entrada máxima, y puedo obtener un par de órdenes de magnitud mejor que eso con GBW en el rango de MHz mientras se ejecuta en el suministro único de 5 V disponible con el cero actual -amplificador y amplificadores internos recortados. El AD8630 ofrece una opción de cero automático de bajo ruido, mientras que los amplificadores de bajo desplazamiento internos recortados rápidos incluyen el OPA4350 y el OPA4192 . De cualquier manera, se puede usar el filtro anti-aliasing de paso bajo Sallen y Key de dos polos de la hoja de datos MCP3208, con la frecuencia de esquina ajustada a aproximadamente 5 kHz o más; otros diseños de filtro también pueden funcionar.
Fuente de alimentación e interfaz digital
La especificación ENOB (número efectivo de bits) del MCP3208 depende del suministro: funciona mejor con un suministro de 5V que con uno de 2.7-3.3V; también debe estar funcionando con 5V para usar una referencia de 4.096V. Esto plantea el problema de que el Pi usa una lógica de 3.3V y no es tolerante a 5V, lo que requiere un CI de traducción de nivel lógico como el TXB0104 : el lado A va al Pi mientras que el lado B va al ADC.
Además, el suministro de 5 V debe estar razonablemente limpio: se debe usar un regulador lineal para generarlo a bordo a partir de un voltaje de suministro más alto. Si no hay disponible un voltaje de suministro más alto en la aplicación, se puede usar un riel de 5V existente siempre que se use una red de desacoplamiento LC para mantener grandes cantidades de ruido digital fuera del ADC y el riel de suministro del amplificador operacional.
Tiempo de diseño
Hay dos claves para un diseño eficaz de señal mixta: partición y diseño de suministro / retorno . Tocaré esos a su vez.
Primero, dividiría el diseño de la placa perfectamente en dos lados: uno digital y uno analógico. Todos los rastros digitales (la interfaz SPI, en el caso del MCP3208 que está utilizando) van en el lado digital de la placa; este lado de la placa también contiene el chip traductor de nivel lógico y el conector de E / S a la Pi. El lado analógico de la placa contiene todas las trazas y circuitos analógicos: la referencia de voltaje va aquí, al igual que los filtros de entrada, la protección de entrada y los conectores de entrada analógica. El ADC (y el inductor de filtro si está utilizando 5V del Pi) es el único componente que cierra esta brecha; de hecho,
Tenga en cuenta, también, que todas las partes que vinculé están disponibles en paquetes SMT de paso grueso: un diseño de una sola cara con la parte posterior como un plano GND continuo es muy recomendable si se va a usar una placa de doble cara aquí. Si el costo no es una objeción, una placa de cuatro capas proporcionará un plano Vdd analógico continuo además del plano de tierra, así como espacio para un "charco de energía" para el lado lógico de 3.3V del IC del traductor de nivel lógico. Sin embargo, no es necesario dividir el plano de tierra en esta aplicación: el enrutamiento adecuado de las trazas de señal mantendrá las corrientes de retorno donde pertenecen .
fuente