¿Cómo amplifico una señal de 0-100 mV a un ADC con un rango de 0 a un voltaje de referencia específico?

5

Ignorando el problema del ruido, quiero amplificar una señal "estática" de 0-100 mV CC al rango de ADC de 10 bits de ATmega328P utilizando una referencia de voltaje específica. Asumamos que esta referencia es 4.096V y llamémosla AREF. Esto me da pasos de 4mV y necesito una ganancia de 40.96.

Por lo que entiendo hasta ahora, un amplificador como el AD623 podría funcionar para esto. Tiene un rango de entrada de 150mV por debajo de Vs- (GND en mi caso) a 1.5V por debajo del riel positivo (que es de 3.5V en mi caso, con 5V Vcc). Mi problema es que el rango de voltaje de salida en un La única fuente tiene un mínimo de 10mV. Eso significa que el ADC verá 0V, 4mV y 8mV como "0". ¿Cómo se puede evitar esto?

Solo puedo amplificar aproximadamente 1,22 veces más antes de golpear los rieles en la salida, por lo que no veo cómo un divisor de voltaje en la salida ayudaría ...

Por lo que sé, no hay manera de aumentar el voltaje inferior del ADC de ATmega328P sin hacer algo como el ADC diferencial, que leo requiere una calibración que suena relativamente difícil.

    
pregunta Anthony

3 respuestas

8

Cuando realmente necesitas llegar a tierra en la salida, de modo que incluso una salida "riel a riel" no sea lo suficientemente buena, dale poder negativo. Un operador para manejar una entrada A / D no necesita mucha corriente, por lo que una bomba de carga debería ser suficiente.

Todo lo que necesitas es una salida digital de conmutación constante. Esto puede conducir un par de seguidores de emisor NPN / PNP. Eso más dos diodos Schottky y dos tapas le dan un pequeño voltaje negativo. Los microcontroladores a menudo pueden accionar un pin con una "salida de reloj" o similar, que es útil para hacer una bomba de carga. Después de varias caídas de voltaje, solo terminas con -1.2 V o menos cuando comienzas con una onda cuadrada de 3.3 Vpp, pero eso es suficiente para hacer que muchos opamps superen su límite de riel inferior.

Una posible consecuencia de esto es que el opamp ahora puede conducir por debajo del voltaje de entrada A / D válido. Con el circuito correcto y asegurándose de que el voltaje de entrada al opamp se mantenga dentro de un rango específico, debe saber que la salida no será negativa. Sin embargo, debes considerar esto cuidadosamente.

    
respondido por el Olin Lathrop
7

Si observa la sección 28.6.3 de la hoja de datos de ATmega328P verá que comienza a definir el error de compensación de cero que obtendrá al usar el ADC. El resultado de esto es que es extremadamente sensato no usar (digamos) los 10 mV inferiores o superiores del rango de ADC porque no se puede garantizar que el ADC no haya alcanzado las "paradas finales": -

La imagen de arriba muestra el efecto de cero y errores de ganancia y tenga en cuenta que estos pueden ser aditivos y sustractivos.

Entonces, tiene cero errores y gana errores con los que lidiar, y reduce su rango numérico real: tiene que vivir con esto, por supuesto, o calibrar cada entrada de ADC específicamente.

Si te fijas en la página 374, obtendrás números reales: -

  • El error de desplazamiento se cita como 2 LSB en una referencia de 4V y esto significa que el cero puede ser 0V +/- 7.8 mV.
  • El error de ganancia también es de 2 LSB, pero tiene el error agregado de que la referencia de voltaje no es exactamente 4.0960000 voltios. Busque la tolerancia en eso.

En resumen, use un amplificador operacional riel a riel que sea bueno para bajar a 10 mV y resuelva el problema como todos los demás.

    
respondido por el Andy aka
4

Primero, es un desperdicio usar un amplificador de instrumentación si la entrada está referenciada a tierra, un op-amp normal en la configuración de no inversión funcionará bien (en realidad es mejor en todos los sentidos).

Si el amplificador operacional no llega a 0 V, puede poner un diodo en serie con la salida como sigue:

simular este circuito : esquema creado usando CircuitLab

También podría crear un suministro negativo para el amplificador operacional, pero en general eso causa problemas adicionales, ya que el opero puede ahora ser lo suficientemente negativo como para exceder la tensión de entrada negativa máxima absoluta del chip. Para algunas MCU, puede mantenerse dentro de los límites creando un suministro que no exceda los -300 mV, y en realidad hay un chip de bomba de carga diseñado para eso. También hay soluciones de curita, como agregar una resistencia en serie y un diodo Schottky a tierra, pero pueden tener otros problemas, y ninguna de ellas tiene la garantía de que no cause problemas (quizás sutiles) en condiciones normales funcionando incluso si no exceden el voltaje máximo absoluto o las especificaciones de corriente de entrada.

Otra posibilidad que puede o no funcionar, dependiendo de las partes internas del amplificador de entrada que utilice, sería elevar el pin de referencia a (digamos) 20 mV y desechar los pocos conteos del ADC. Si un nodo interno del amplificador de entrada se satura, es posible que no funcione y existe el problema adicional de proporcionar la fuente de 20 mV de baja impedancia para la referencia, ya que la mayoría de los amplificadores de entrada no tienen un búfer interno para la referencia.

Debe ser un poco cauteloso cuando trabaje muy cerca de la saturación del amplificador, pero en realidad no lo conduzca al riel. Las características pueden cambiar bastante y puede producirse una pequeña inestabilidad cerca del riel. Por supuesto, no encontrará esto explicado en la hoja de datos y es posible que los macromodelos no modelen con precisión el comportamiento.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas