ADC de alta resolución para sensores ruidosos en condiciones variables

9

Intro

En respuesta a esta pregunta sobre amplificadores adaptativos , Se recomendó que para lidiar con condiciones variables, podría ser más económico simplemente usar un ADC con mayor resolución para que no tenga que preocuparme por la amplificación y pueda hacer escala en el software.

Overview

Estoy tratando de diseñar un circuito de adquisición de datos para sensores de estiramiento basados en textiles montados en el cuerpo. El tejido varía la resistencia según se estira (alrededor de 1 orden de magnitud, 10k \ $ \ Omega \ $ - 100k \ $ \ Omega \ $ con un 30% de estiramiento). Los rangos exactos cambiarán dependiendo de cómo se corta el tejido, si está empapado de sudor, la temperatura, la antigüedad del material, cómo se monta, etc. Todo debe ser lo más pequeño posible porque está montado en la mano. , así que minimizar el número de componentes es una gran ventaja.

Además, me gustaría que el circuito fuera reutilizable para otras aplicaciones que puedan tener un peor rendimiento. Por ejemplo, si uso una versión más barata del textil, mi rango de resistencia puede ser tan malo como 100 \ $ \ Omega \ $ a 300 \ $ \ Omega \ $.

Ruta de la señal

[textil] - > [Puente de Wheatstone] - > [paso bajo] - > [amplificador de instrumentación] - > [ADC] - > [AVR]

Requisitos

Por lo tanto, estoy buscando un ADC que cumpla con mis requisitos. El ADC debería ser:

  1. 16 bits +
  2. Tan fácil de usar como sea posible: mucho mejor si ya hay un código de interfaz escrito para AVR / Arduino ...
  3. ... pero al mismo tiempo, lo más completo posible: he visto algunos ADC con filtros de paso bajo y PGA incorporados, tanto mejor mientras que la configuración no sea un problema
  4. 8+ canales, o si es fácil de implementar, 2x 4+ canales. EDITAR: Si estoy usando un puente de Wheatstone, quizás quiera 8 canales de entrada diferenciales (por lo tanto, 16 canales) ...
  5. No creo que el voltaje de operación sea importante ... (mejor si no es superior a 5V)
  6. Montaje en superficie
  7. No es necesario que sea barato (es una opción única)
  8. SPI vs. I2C no importa, creo ...
  9. 100+ Hz

Research

Hasta ahora, a través de Google, he encontrado los siguientes chips:

  • Los dispositivos lineales ofrecen varios ADC delta sigma de 16-24 bits, algunos de los cuales he recomendado: enlace
  • Microchip tiene una gama de opciones, algunas de las cuales he recomendado: enlace
  • Los dispositivos analógicos tienen una cantidad de chips de adquisición de datos integrales con amplificadores y filtros (sin necesidad de procesamiento externo de señales):
  • Todavía no he mirado los chips de TI ...

y los siguientes tutoriales:

¿Referencia de voltaje?

Finalmente, algunas personas han recomendado una referencia de voltaje de precisión, como Analog Devices REF19x serie. ¿Crees que esto es necesario? La resolución es definitivamente importante para mí.

Conclusión

Hazme saber si tienes alguna recomendación! Tampoco estoy seguro de qué es lo que estoy buscando exactamente, por lo que también se aprecian los consejos sobre cómo decidir.

    
pregunta terrace

5 respuestas

7

ADS1256 de TI tiene ocho canales de 24 bits de extremo único con entrada de alta impedancia buffer y PGA. El proyecto OpenEXG tiene código PIC para interactuar (usan la versión de dos canales ADS1255, pero debería ser el mismo).

Si desea entradas diferenciales, entonces hay ADS1298 , con 8 canales, PGA y A / D, referencia interna, más circuitos de ECG / EEG que puede ignorar. Sin embargo, no estoy seguro de que puedas encontrar ningún código de ejemplo para este.

Si está buscando una resolución, entonces es imprescindible una referencia precisa y con poco ruido.

    
respondido por el Jaroslav Cmunt
5

Una idea quizás poco convencional, tengo curiosidad por lo que piensan ustedes al respecto:

Un orden de magnitud parece un cambio lo suficientemente grande como para medirlo directamente en un circuito divisor de voltaje.

Luego podría usar un ADC más pequeño y variar la corriente a través del sensor. Una fuente de voltaje PWM filtrada + un seguidor de voltaje (puede ser un transistor NPN si está en el espacio del muslo) puede mejorar drásticamente su rango dinámico.

Puede usar uno o dos de estos y cambiar el voltaje al medir diferentes sensores.

    
respondido por el jpc
3

Si su principal preocupación es tener un amplio rango dinámico para cualquier "sensor" dado, podría considerar el uso de DAC (o incluso solo fuentes de voltaje controladas por el pin MPU) para ajustar la compensación / ganancia del amplificador para alterar el rendimiento del sistema. diferentes materiales.

También puede seguir esta etapa de ganancia variable con un circuito de integración de carga para que pueda ganar sensibilidad de señal ajustando el período de "exposición".

    
respondido por el Toybuilder
0

Si tiene suficiente poder de cómputo para la frecuencia de muestreo que necesita, considere el filtrado digital. Un filtro de Savitzky-Golay , f / ex.

  • Puede cambiar los algoritmos más fácilmente que las partes;
  • Al insertar parte del filtrado en el software, es probable que pueda usar una parte de especificaciones más baja que si la parte en sí tuviera que ser más tolerante al ruido o realizar todo el filtrado;
  • Aprenderá mucho más acerca de sus aportes y lo que necesita de ellos y puede elegir mejor las partes informadas; si lo hace, de hecho, necesita una parte de especificaciones más alta.
  • ¡El software y las habilidades se transfieren fácilmente a tus otras aplicaciones!
respondido por el JRobert
0

¿Por qué no subirlo a 11, y solo usa la TI ADS1262 ? ¡Es un ADC de 32 bits, con 11 entradas y un PGA!

Con32bits,puedesmuestrearcasicualquiercosa.Ynisiquieraestancaro.Además,sisoloestáshaciendounodeestos,soloobténuna muestra gratuita .

Otra opción es usar un PSoC. Estos son microcontroladores que contienen bloques analógicos y digitales reconfigurables, que puede utilizar para crear todo tipo de funciones. Puede elegir uno con un ADC de 16 bits, un PGA, un DAC y un filtro digital, para hacer su propio rango automático, recorte automático, sobremuestreo, filtrado digital, ADC!

Programe estas cosas en forma sencilla, ya que simplemente dibuja el esquema que desea, seleccionando funciones predefinidas de una lista. Luego escribe un código C, y ya estás fuera.

    
respondido por el Rocketmagnet

Lea otras preguntas en las etiquetas