Monitor de derivación de corriente de interfaz con ADC de 16 bits

Se supone que debo medir la corriente del lado alto a través de la resistencia de derivación (entre la fuente y la carga) y alimentarla al microcontrolador. Para ese propósito, he decidido usar este IC MAX9922 , que es un monitor de detección de corriente de ultra alta precisión. La razón para seleccionar este IC es su alta precisión de medición. La salida de este amplificador se alimentaría a un ADC ADS8319 de 16 bits que luego proporcionaría los datos digitales al microcontrolador a través de la interfaz SPI.

Ahora, mientras diseñaba el esquema del circuito, descubrí que los ADC requieren OP-AMPS (para actuar como un búfer de baja impedancia) más filtros RC (para filtrar señales de frecuencia no deseadas) en su entrada. Y los circuitos integrados del amplificador más los valores para el filtro RC que se utilizará se proporcionan normalmente en sus hojas de datos (ADC). Por ejemplo, en la hoja de datos ADS8319 en la página no. 21 se dan el OPAMP recomendado más los valores del filtro RC.

Mi pregunta es que, como ya estoy usando MAX9922 (para la medición de sentido actual), ¿es necesario que inserte un OPAMP de búfer entre MAX9922 y ADS8319 ? Como creo que mi señal ya está llegando al ADC desde un amplificador IC, podría enviarla de inmediato (con un filtro RC) a mi entrada ADC sin insertar el búfer. ¿Tengo razón en eso?

Además, en la hoja de datos de MAX9922 (en la página 13) se muestra que el IC maxim está conectado a un ADC de 12 bits como circuito de ejemplo. Sin embargo, lo conectaría a un ADC de 16 bits. Espero que funcione como se esperaba en mi caso también. No habrá ningún problema al respecto. ¿Tengo razón?

Sus útiles sugerencias y comentarios serán apreciados.

¡Gracias!

Respuestas (3)

Como nunca antes has hecho este tipo de cosas, déjame señalarte algunas cosas. Primero, realmente debería haber mencionado que está monitoreando la carga de la batería por adelantado, en lugar de insertarlo como un comentario; es importante. Como regla general, cuando haga preguntas brinde más información que menos, especialmente de su problema en general. El contexto importa, especialmente en ingeniería.

1) Realmente necesita incorporar la descripción completa de su sistema en la selección de su dispositivo. Usar un ADC de 16 bits para monitorear la batería es, bueno, es una exageración masiva y es probable que le haga pensar que tiene problemas cuando no los tiene. Para empezar, verá niveles de ruido que pensará que deben ser un problema cuando no lo son. Piense en esto: un rango de entrada de 2 voltios en el ADC tendrá una resolución de

Δ V = 2 2 dieciséis = 30.5 m V
y si cree que no va a ver niveles de ruido de milivoltios, es decir, de 10 a 100 de lsbs, en su señal, me temo que se llevará una desagradable sorpresa.

2) De la misma manera, no creo que entiendas la precisión. Claro, su amplificador de derivación tiene una linealidad muy alta, pero su precisión real está limitada por las resistencias de ajuste de ganancia que usa. Observo que está usando 49k/1k para obtener una ganancia de 50V/V. ¿Has intentado encontrar una resistencia de 49k? El 1% más cercano es 48.7k, y ese valor, por supuesto, variará hasta +/- 1% si solo toma una parte de la caja. Compare esto con la resolución del ADC, que es .0015% de la escala completa. En otras palabras, el uso de resistencias del 1% le dará un límite de precisión de +/- 1% en su corriente medida, que es de aproximadamente 6-7 bits. Sí, puede hacer una calibración del sistema, pero tenga en cuenta que esto requerirá que proporcione una corriente que conozca .es preciso en cualquier nivel que esté buscando, y esto puede ser mucho más desafiante de lo que cree. Investigue un poco sobre los coeficientes de temperatura de las resistencias de potencia, por ejemplo, y tenga en cuenta que los DMM en la configuración "actual" pueden mostrar una resolución de cualquier número de dígitos, pero debe consultar el manual para encontrar la precisión (generalmente en la vecindad de 1% para medidores no especializados).

3) Dado que no ha especificado su frecuencia de muestreo, tengo que hablar en términos generales, pero sospecho que no necesita un búfer, ya que el muestreo a más de 100 Hz probablemente sea excesivo para lo que está haciendo. Tenga en cuenta que la hoja de datos para el ADC (p. 20) analiza la respuesta de frecuencia de un amplificador de búfer, y para el muestreo de 500 kHz aparece un límite de frecuencia de 3 MHz. Puede hacer los cálculos presentados en la hoja de datos, y para una frecuencia de muestreo de 500 Hz solo necesita una capacidad de 3 kHz, y para 100 Hz solo alrededor de 600 Hz. Esto debería estar dentro de las capacidades del amplificador de derivación. Incluso esto es una exageración salvaje para la carga de la batería (1-10 Hz es más razonable; la carga es un proceso lento), y no está intentando ningún tipo de análisis de frecuencia de los datos. Además, como digo, tú

EDITAR: en respuesta a su respuesta expansiva, intentaré ser claro.

Primero, pasar a un ADC de 16 bits no dañará nada, pero no garantiza que obtendrá la precisión que desea, y solo quería que supiera que debe tener en cuenta todo el sistema cuando hablas de precisión.

En cuanto a su discusión sobre las fuentes de error de ADC, tomándolas a su vez,

1) INL: sí, es importante, pero los ADC modernos generalmente lo mantienen por debajo de 1 lsb y, a menudo, lo hacen mejor.

2) Compensación: sí, nuevamente es importante, pero particularmente en su aplicación, el coeficiente de temperatura es mucho más importante. Después de todo, siempre puede realizar un ciclo cero, donde desconecta la carga y el cargador, luego mide el nivel de corriente cero resultante y usa esta compensación medida para compensar las lecturas reales. Siempre que la compensación no se desvíe (especialmente con la temperatura), la compensación no suele ser un gran problema. En su sistema, aparentemente ha escalado su resistencia de derivación para un voltaje de derivación de escala completa en el rango de 20 mV, por lo que una deriva de 1 uV/grado dará un error de 0,005%/grado.

3) Obtenga precisión: traté de lidiar con esto en mi respuesta original. En general, puede determinar la ganancia con cualquier precisión deseada simplemente midiendo una entrada conocida, pero particularmente para la corriente, esto se vuelve un poco más complicado de lo que podría pensar. Afortunadamente, en este caso, utilizará el mismo amplificador para medir las corrientes de carga y descarga y, presumiblemente, utilizará el mismo dispositivo de medición para el voltaje de la batería durante ambos ciclos. Esto le permitirá no preocuparse demasiado por la precisión de la ganancia, ya que mientras la ganancia sea lineal, puede comparar los dos estados tomando una relación, y cualquier inexactitud de la ganancia simplemente desaparecerá.

Y mientras estoy en el tema de las fuentes de error

4) Ganar linealidad: si bien ha pensado en INL en el ADC, debe tener en cuenta que el amplificador de derivación no es perfectamente lineal. De la página 3 de la hoja de datos, un 9922 que opera con una ganancia de 100 tiene una no linealidad de ganancia de 0.6% máx. Dado que esto está por encima de su rango objetivo de 0.1 a 0.5%, deberá tener cuidado.

Dicho todo esto, un ADC de 16 bits ciertamente no hará daño, pero no creo que sea necesario. Un ADC de 12 bits probablemente sería igual de útil, ya que su resolución es de 0,025 %, por lo que sus errores seguirán estando muy por debajo de su objetivo.

La simple medición de datos a 16 bits no garantiza que la medición sea precisa a 16 bits, incluso si el propio ADC es tan preciso. Un DMM de 4 1/2 dígitos con una precisión del 0,1 % que mide 10 voltios como 10,000 no produce una lectura precisa del 0,01 %, aunque 0,001/10,000 equivale a 0,01 %. Podría producir cualquier lectura entre 9,990 y 10,010 y seguir estando dentro de la precisión nominal del multímetro digital. Centrarse en la resolución del ADC cuando es mejor que la precisión general esperada sugiere que está ignorando el bosque por los árboles. Véase, por ejemplo, el error 4) anterior.

He tratado de señalar, por ejemplo, que el autocalentamiento en la resistencia de derivación puede causar errores. Una resistencia de 100 ppm/grado que se calienta 10 grados producirá un error de ganancia del 0,1 %. 20 grados, por supuesto, le darán 0,2%. ¿Está seguro de que sus temperaturas están todas contabilizadas? Otra cosa que quizás no haya tenido en cuenta son los errores del termopar donde se conecta a la derivación.

En una escala mayor, intentar obtener un 0,1 % en una batería es ciertamente ambicioso. Necesitará ciclos de carga y descarga de precisión, junto con el control de la temperatura de las baterías, sin mencionar alguna forma de medir y compensar los efectos del envejecimiento de la batería. Será importante mantener un tiempo uniforme: no piense que puede cargar una celda, dejarla toda la noche, luego medir la energía de descarga al día siguiente y pensar que será lo mismo que si hubiera cargado y probado inmediatamente.

Solo como una nota, le sugiero que no necesite hacer un monitoreo lateral alto, suponiendo que su configuración de prueba sea personalizada. Si lo haces

esquemático

simular este circuito : esquema creado con CircuitLab

esto funcionará bien. Obviamente, el cargador no será una simple fuente de voltaje, y la carga bien puede ser un sumidero de corriente controlado, pero se entiende la idea. Tenga en cuenta que la presencia de la resistencia de derivación distorsiona la medición del voltaje de la batería, pero está bien. Estás midiendo la resistencia de derivación y eso se puede restar. También tenga en cuenta que, con las precisiones que desee, independientemente de la topología que utilice, debe tener cuidado con las caídas de IR en los cables. Esto es especialmente importante para la resistencia de derivación: asegúrese de utilizar una conexión Kelvin.

Muchas gracias por una explicación tan detallada. En cuanto al precio de los ADC de 12 y 16 bits, no hay mucha diferencia. También tendré en cuenta todos los puntos que hizo con respecto a los errores, el calentamiento y las caídas de IR. Usaré una derivación Kelvin Connection con TC de 15 ppm/c, ya que, teniendo en cuenta el presupuesto, es lo mejor que pude encontrar. Y la elección de la medición del lado alto/lado bajo fue mía, ya que mi batería es de una sola celda, por lo que el voltaje no será demasiado alto, así que supongo que la medición del lado alto no hace ningún daño. Además, como mencionaste, no necesitaré restar el voltaje de derivación de esa manera
@yiipmann: mi punto al hacerlo de esta manera es que elimina la no linealidad de ganancia del 9922. Su elección, por supuesto, en cuanto a la forma que prefiera. Ah, sí, y puedes deshacerte del filtro de entrada en el ADC a menos que realmente estés tratando de obtener frecuencias de muestreo altas. También deje caer la tapa (actualmente "abierta") en la salida del amplificador; puede causar problemas de estabilidad.
DE ACUERDO. He colocado algunas ranuras de condensadores abiertas en mi esquema (según lo recomendado por las hojas de datos / documentos de diseño) para que, si es necesario, se pueda insertar el condensador en ellos, de lo contrario, se pueden dejar sin usar. También estaba confundiendo el Teorema de Nyquist con mi frecuencia de muestreo en este caso. Quiero decir que usaré un convertidor Buck síncrono para cargar la celda de la batería, que estaría funcionando a unos 62 kHz. Entonces, de acuerdo con eso, me vino a la mente una frecuencia de muestreo de 62x2 = 124kHz. Pero luego pensé que no se aplica en mi caso, puedo probar una o dos veces por segundo. ¿Tengo razón?
@yiipmann: absolutamente correcto en la frecuencia de muestreo. Ver punto 3) en mi primera respuesta. Pero querrá colocar un filtro de paso bajo en la entrada del ADC para que no se produzca un alias por la conmutación del convertidor. En cuanto al condensador, debe tener en cuenta que colocar una tapa directamente desde la salida de un amplificador a tierra es algo malo y puede hacer que el amplificador comience a oscilar.

Dependiendo del tipo de ancho de banda de monitoreo que desee lograr con este sistema de medición, es posible que desee considerar agregar el búfer opamp. La salida de la parte de detección de corriente parece tener una especificación de tiempo de estabilización bastante larga con solo 7pF de capacitancia de carga. Cualquier filtro que agregue y la capacitancia de entrada del A/D aumentarán el tiempo de estabilización de la parte del amplificador de detección de corriente.

La hoja de datos del MAX9322 no proporciona una descripción realmente buena de la capacidad de accionamiento de salida de la pieza que no sean las especificaciones de V OH y V OL . Estos están clasificados con la parte que conduce una carga de 10K ohmios. Por lo tanto, es posible que el fabricante tenga que hacer algunas preguntas adicionales sobre la capacidad de la unidad. Cuando observé las características de entrada de la parte A/D que vinculó, parece que no debería haber problemas para usar las dos partes conectadas directamente.

Podría comentar que el convertidor A/D puede estar sobreespecificado para esta aplicación a una frecuencia de muestreo de 500 KHz. Teniendo en cuenta el tiempo de asentamiento y las características de ancho de banda de la parte de detección actual, es posible que desee investigar si hay A/D de menor rendimiento que serían de menor costo. (Aunque nada dice que tenga que usar el ADS8319 a la frecuencia de muestreo completa).

Sí, tiene razón, no necesitaré usarlo a 500 kHz, ya que estaré monitoreando la corriente de carga de la batería, así que supongo que mis muestras serían muy bajas en comparación con eso. Pero la razón para seleccionar este ADC es su función de referencia externa, alta resolución (16 bits) más precisión y exactitud muy altas (INL, error de ganancia y error de compensación muy bajo). Sin embargo, es la primera vez que implemento hardware, por lo que estoy muy confundido con tantas preguntas en mi cabeza, una de las cuales es ¿a qué frecuencia debo tomar muestras de la corriente y el voltaje de la batería para medir la energía proporcionada a la batería durante la carga?
La carga de la batería es un proceso muy lento y constante, por lo que unos pocos kHz me parecen más que suficientes. Además, la capacidad de una batería varía mucho con la temperatura y el tiempo, por lo que usar piezas de alta precisión para esta tarea parece una exageración. Comenzaría con la precisión de medición de carga necesaria y elegiría partes a partir de ahí, no estoy seguro de que realmente se necesite más de 0.1% de precisión (10 bits útiles)...

@WhatRoughBeast Estoy publicando esto como respuesta, porque el comentario no me permite escribir tanto como quiero. Como dije que soy nuevo en esto, reuní toda mi información en Internet, lo que significa que puedo estar equivocado, pero hice lo que pensé que era correcto.

En realidad, se supone que debo cargar y descargar una batería de iones de litio, y se supone que debo medir su eficiencia energética al final. La clave en eso es que tengo que hacerlo (medir la eficiencia) con la mayor precisión posible (0,1% - 0,5%). Ahora, si miramos, tenemos que medir la corriente y el voltaje para calcular la potencia, y multiplicar eso con las instancias de tiempo para obtener la energía. Por lo tanto, la corriente y el voltaje deben medirse con cierta precisión definida, de modo que al final obtengamos una eficiencia energética que se puede afirmar que se mide con cierta precisión alta definida.

Para tener un resultado altamente preciso al final, la precisión de ADC debería ser alta fuera de curso. Mientras revisaba su literatura, descubrí que, además de la resolución, el error INL (no linealidad integral), el error de compensación y el error de ganancia son las 3 fuentes principales de error que más contribuyen a la inexactitud de ADC. Entonces, uno tiene que buscar un ADC que tenga el más bajo de estos 3 errores para garantizar una alta precisión.

Como se indica en este documento, se puede calcular el error global que tiene nuestro sistema (error de ADC + otros errores). Está escrito que si un ADC (12 bits) tiene 1LSB INL, entonces en términos de % podemos calcular que es: 1/2^12 = 0.0244%. De la misma manera, podemos calcular el error de ganancia y el error de compensación, y sumarlos para tener un error total que ofrece ADC. Y para el cálculo general del error, podemos sumar el error de referencia de voltaje (al ADC) más otros errores (si los hay) en nuestro circuito. Por ejemplo, si estoy usando una derivación para la medición de corriente que tiene una precisión del 0,5 % y mi referencia de voltaje externo tiene una precisión del 0,25 %, sumaría estos valores en el valor de error calculado previamente para obtener el error total de mi corriente medida. De la misma manera, puedo calcular el error de mi medición de voltaje, y al sumar estos 2, obtendré un error total para la "Potencia".

La razón de explicar todo esto es que quería contarles por qué opté por un ADC de 16 bits. Tener mayor no. de bits = menor error en la parte ADC. Como error = LSB/2^N , cuanto mayor es N, menor es el error. Y también revisé las hojas de datos para algunos ADC de 12 bits. El error total (INL + Compensación + Error de ganancia) que calculé para ellos, utilizando la fórmula anterior, resultó ser mayor que el que calculé para este ADC de 16 bits.

Entonces, ¿qué tienes que decir al respecto? ¿Tengo razón al seleccionar un ADC de 16 bits para reducir el error o aumentar la precisión de la medición?

yiipmann - ver editar.