Acc de 24 bits para leer una señal de entrada analógica de +/-10 V

Necesito leer los datos de un sensor que proporciona una salida analógica (el rango es de +10 V a -10 V) y convertirlos a formato digital usando ADC de 24 bits y luego almacenarlos en una tarjeta de memoria. Tengo algo de experiencia con el microcontrolador PIC y Arduino. ¿Es lo suficientemente bueno elegir uno de estos o ir a otras plataformas para minimizar el ruido? Por favor, guíeme, ¿cuáles son los factores a tener en cuenta al elegir ADC, controlador en el diseño de mi aplicación? Solo dudo si es posible o no leer una resolución de al menos 18 bits con ADC externo y combo arduino.


Especificaciones del sensor:

  • Rango de frecuencia CC ..... 3 kHz CC – 30 s
  • Ruido del sensor < 0,006 nT √Hz a 1 Hz
  • Sensibilidad de salida 0,143 mV/nT
  • Error de ortogonalidad < 0,5°
  • Rango de voltaje de salida ± 10V
  • Rango de medición ± 70.000 nT
  • Coeficiente de compensación de temperatura ± 0,1 nT / °C
  • Error de compensación ± 5 nT
  • Tensión de alimentación ± 12V a ± 15V estabilizada y filtrada
  • Corriente de alimentación +26mA, -6mA (+1,4mA por 100μT)
¿Por qué necesitas 24 bits?
@ThePhoton: para registrar los datos atmosféricos para una mejor investigación.
Pero, ¿puede explicar por qué necesita esa resolución, 1 en 16,000,000? ¿Y cuál será su resolución cuando haya tenido en cuenta el ruido?
@Transistor: si puedo registrar un cambio de 143 microvoltios en la señal de mi sensor que requiere un adc mínimo de 18 bits, podría interpretar mis datos de mejor manera para mi aplicación
Hay ADC de 18 y 24 bits disponibles, pero debe tener cuidado con cualquier cosa (eléctrica) ruidosa, porque a una resolución de 76 µV (o peor, 1 µV), no solo escuchará electrones tosiendo, los escuchará en el otro lado del mundo. En un búnker. Cuando eres sordo. Dudo que haya una solución estándar a un precio razonable.
¿Cuántas muestras por segundo necesita? Eso es bastante limitante para elegir y ADC. ¿Podría compartir la hoja de datos del sensor? Eso puede ayudar a ver la imagen completa, no solo el ADC.
Los ADC de 24 bits de alto rendimiento están fácilmente disponibles, pero no son exactamente económicos. Para obtener los mejores resultados, usaría una unidad de demostración fácilmente disponible a la que podría conectarse.
El diseño eléctrico necesario para acercarse a la supuesta capacidad de un ADC de 24 bits no será un proyecto para principiantes. Incluso entonces, los bits de orden inferior serán ruidosos. Afortunadamente, parece que tiene un requisito de ancho de banda bastante bajo, por lo que puede aplicar algunos filtros. Puede ser que el filtrado pueda brindarle resultados decentes de un ADC menos capaz. El uso de partes de "audio" con entradas acopladas de CC no es raro en la radio de software de IF cero de ancho de banda estrecho, por lo que puede haber algunas cosas que puede ver allí. Si tiene energía confiable, ¿podría usar un instrumento de banco ejecutado por una Raspberry Pi?
Usamos el MCP3553 (22 bits) con PIC con buen éxito, pero no a su frecuencia de muestreo. Para ir a alta velocidad, seleccionarás un dispositivo con oscilador interno; el Arduino o PIC solo tiene que comunicarse con él mediante SPI o similar, por lo que puede suspender la actividad del bus durante la muestra si le preocupa el ruido del procesador. El Arduino solo tiene que poder recuperar cada muestra en el período entre los tiempos de muestra.
Es mejor que compre una unidad DAQ comercial adecuada.
El análisis debe incluir SNR sin procesar, SNR prefiltrado, reducción de BW, resolución y precisión necesarias para el rango de escala completa. Determine si la compensación de CC mejora esto y luego calcule la cantidad de bits por muestra y la tasa de sobremuestreo necesarios para lograr este resultado con los presupuestos de error del peor de los casos de todas las fuentes.

Respuestas (2)

Aquí hay un análisis, usando interferencias HFI, EFI, PSI y GPI. Estos son el campo magnético , que induce basura determinista en el bucle de señal de seguimiento sobre el plano; Campo eléctrico que induce corrientes de desplazamiento en la impedancia de los nodos del circuito; Ondulación de la fuente de alimentación /ruido de conmutación/timbre LC donde el circuito/ADC PSRR es inadecuado; Ruido de tierra , donde se calculan ground_impedance * ground_currents. El total de estas 4 interferencias es de 14 milivoltios.

Configuré la herramienta --- Signal Chain Explorer --- para 20 voltios PP en el ADC; editó las especificaciones maestras de muestreo para 18 bits y frecuencia de muestreo de 10 KHz; la retención de muestra interna del ADC es de 50 ohmios y valores predeterminados de 48 pF. Muchas de estas especificaciones se pueden editar.

La SNR resultante sin interferencias es de 109 dB.

La SNR resultante con interferencias (agregué interferencias adicionales de las tablas Gargoyle, para ser realista en un sistema Arduino), es de solo 54 dB.

Conclusión: la construcción ciega de un sistema de este tipo producirá una medición de 9 bits con 9 bits adicionales de ruido determinista.

ingrese la descripción de la imagen aquí

Aquí, a continuación, se encuentran los resultados de la inyección de los 4 tipos de interferencias, con la respuesta de frecuencia del sistema utilizada para modelar la basura determinista trastornada al Code Spread (el piso de ruido o SNR). Tenga en cuenta que el campo magnético del reloj MCU demasiado cercano es el mayor problema.

ingrese la descripción de la imagen aquí

Aquí está la tabla HFI (campo magnético); el Switch Reg de 10 MHz está activo por defecto; Puedes apagarlo. Puede editar cualquiera de los parámetros, incluida la distancia, para explorar qué tan cerca o qué tan lejos se pueden colocar algunos generadores de campo y aun así lograr sus objetivos de SNR.

ingrese la descripción de la imagen aquí

Aquí está la tabla EFI (campo eléctrico);

ingrese la descripción de la imagen aquí

¿Qué puede hacer para reducir en gran medida el ruido de fondo determinista de los 4 tipos de interferencias? (Tenga en cuenta el piso de ruido térmico, con fuentes KT que solo son el sensor de 50 ohmios y el ADC de 50 ohmios ---- ambos editables ---- solo contribuyen con 9 microVoltios RMS en el ancho de banda del sistema; si desea 20 bits, tendrá necesitamos reducir estos 9uV, pero primero mejoremos los 14 milivoltios existentes de basura determinista.

El problema principal es la ubicación demasiado cercana de las fuentes de alimentación conmutadas y de las líneas MicroController CLock/IO.

La potencia de conmutación está a solo 10 milímetros de distancia, con una frecuencia de conmutación y dI/dT supuestas. Mueva eso lejos, y protéjalo.

¿Qué tan preciso es el número HFI? Usamos un área de bucle, definida por la longitud del trazo y la altura del trazo por encima de gnd (ambos editables); indicamos la Distancia de cable a bucle; expresamos el dI/dT en el cable; asumimos el peor de los casos (voltaje inducido máximo).

La línea de E/S/reloj de la MCU está a 1 milímetro de la traza de entrada del ADC; ¿Quién estaría tan limitado por el área de PCB que enrutaría un reloj de alta velocidad/traza de datos a solo 1 mm de una traza analógica de 18 bits (o 24 bits)?

¿Qué tan preciso es el número EFI? Suponemos un acoplamiento de placas paralelas en ausencia de cualquier otra geometría mecánica. Conocemos la velocidad de respuesta y el simulador integrado de Signal Chain Explore calcula la impedancia del nodo.

Usted preguntó si se pueden lograr 24 bits con un ancho de banda de 3 KHz. Examine el ruido del sensor y la sensibilidad de salida como una sola especificación, simplemente multiplicando esos números:

0,006 nT RtHz * 0,145 mV/nT == 0,00087 milivoltios de ruido por RtHz

o 0,87 microvoltios RMS por ancho de banda de RtHz

•Rango de frecuencia CC ..... 3 kHz CC – 30 s

• Ruido del sensor < 0,006 nT √Hz a 1 Hz

•Sensibilidad de salida 0,143 mV/nT

¿Qué sucede en un ancho de banda de 3000 Hertz? Suponiendo que no haya comportamientos de ruido 1/Freq (rosa), lo que significa que la energía del ruido es constante en la frecuencia, la potencia del ruido aumenta linealmente con el ancho de banda y el VOLTAJE del ruido aumenta con la raíz cuadrada del ancho de banda, por lo tanto

Vruido = 0.87uV/RTHz * sqrt(3,000) = 0.87 * 55 == 48 microVoltios RMS

Comparando 48 microVoltios RMS con el rango de 20 voltios PP, tendrá alrededor de 18 o 19 bits, EN ANCHO DE BANDA COMPLETO.

Reducir severamente el ancho de banda, por ejemplo a DC -- 30 Hertz, causa 10:1 menos voltaje de ruido y 100:1 menos potencia de ruido.

Por lo tanto, en CC: 30 Hz, espere 4,8 microvoltios RMS, o alrededor de 22 bits.

Volveré más tarde y configuraré Signal Chain Explorer para ADC de 22 bits y ancho de banda de 30 Hz. Insertaré un filtro de paso bajo RC (1 polo) para reducir el ancho de banda.

Use los 'comentarios' para sugerir cualquier interferencia preferida (la parte superior derecha de la pantalla principal de SCE tiene botones para habilitar/deshabilitar una/todas las gárgolas).