Detección de corriente hasta 2A con alta resolución

Estoy tratando de detectar una corriente que fluirá en un motor (la corriente no debe exceder los 2 amperios) y me gustaría tener una alta resolución en esta medida. Esperaba usar el ACS712 , pero dice que la precisión es de 185 mV/A. Dado que la corriente en mi aplicación no excederá los 2A, significa 185*2 = 370mV (¿verdad?)

Estoy usando un STM32F4 con ADC de 12 bits, lo que significa que con un Vref de 3,3 V es un incremento cada 0,8 mV. Así que al final obtendré una resolución de 463 pasos.

¿Hay alguna manera de obtener una resolución más alta? Realmente no me gusta la idea de una resistencia de derivación, tal vez un amplificador podría hacer el truco, pero ¿podré obtener una medición precisa? ingrese la descripción de la imagen aquí(iA es la medida)

Por cierto, estoy tratando de reemplazarlo con un ACS711 que funciona con 3,3 V, pero solo me dará una resolución de 110 mV/A.

Aquí está la conexión Vref+/-ingrese la descripción de la imagen aquí

Si desea mediciones de buena calidad, use la referencia de voltaje de banda prohibida interna de la MCU en lugar de 3.3v como referencia; el riel de 3.3v puede tener un error del 5-10%, así como ruido, lo que anula cualquier ganancia de un monitor de derivación de alta calidad.
Entonces, ¿está diciendo que tener un amplificador operacional + resistencia de derivación es el camino a seguir?
No estaba diciendo nada sobre su solución de detección, solo que no debería usar el riel de 3.3v como su voltaje de referencia en el ADC.
Lo siento, entendí mal tu comentario. ¿Qué riel debo usar? El 3.3 sale de un TL1963 1.5A
Está diciendo que no debe usar ningún riel directamente para el voltaje de referencia. Si desea usar una referencia de 3,3 V, puede usar el riel de 3,3 V, pero debe filtrarlo con un filtro de paso bajo (un capacitor desde el pin de referencia a tierra y una resistencia desde la tapa a 3,3 V). En su caso, no desea 3,3V sino algo más cercano a 400mV como referencia para el ADC. Puede usar un divisor resistivo para obtener un voltaje más bajo de 3,3, o usar la referencia de banda prohibida más precisa integrada en el microcontrolador.
Agregué el diagrama de conexión de mi Vref+/-. Entonces, debería hacer un divisor de voltaje con un filtro lp para hacer que el Vref sea de aproximadamente 500 mV (¿para obtener una buena resolución para mi sensor actual?)
Todavía puede usar esos 3.3 V para alimentar la MCU, pero debe usar un voltaje de referencia para definir el límite superior para el ADC. Su ADC ya tiene una referencia integrada que puede usar. Su voltaje es mucho más preciso, dando mediciones más precisas. Y debido a los 2.5V, la resolución es mejor en tu caso. Puede ser que su MCU permita una referencia de voltaje externo para su ADC, entonces podría usar algo como un AD680 con un divisor de voltaje de 5: 1 para establecer el voltaje superior para el ADC en 500 mV.
Sí, eso eliminará la necesidad de un amplificador. Editar: no veo una entrada para un voltaje de referencia externo en su respuesta. No, ejecutar el microcontrolador a un voltaje más bajo no es la mejor manera de aumentar la sensibilidad del ADC.
El STM32F401CEU6 UFQFPN48 no me permite cambiar el Vref porque está conectado a Vdda. Supongo que es un amplificador operacional
La MCU que está utilizando tiene un voltaje de referencia de banda prohibida incorporado que puede usar, sin necesidad de un opamp.

Respuestas (3)

La mayoría de los microcontroladores con ADC tienen una referencia de banda prohibida interna con un voltaje de ~1 V (consulte la hoja de datos para obtener valores y tolerancias más precisos; por ejemplo: la serie STM32F415xx tiene una referencia de banda prohibida de 1,21 V). Esto aumenta efectivamente su resolución a 1253 pasos a escala completa al activar un interruptor de software.

Si quieres hacerlo aún mejor, tienes algunas opciones:

  1. Use un amplificador operacional para amplificar la salida de su sensor actual
  2. Use un ADC externo de mayor resolución
  3. Use una referencia externa de voltaje más bajo (por ejemplo, algo como esto ). Tenga en cuenta que un divisor de voltaje simple directamente en el pin vref casi nunca es una buena idea.

En ninguno de estos casos necesita cambiar el suministro de voltaje a su microcontrolador.

Como nota al margen, no entiendo su aversión a usar una resistencia de derivación. Para corrientes moderadamente bajas (pocos amperios) es la forma más precisa de medir corrientes. Por ejemplo, el chip ACS712 que ha enumerado tiene una precisión del 1 %. Eso significa que obtiene una precisión de 6,64 bits (~100 pasos). Es muy fácil obtener resistencias de derivación con una precisión del 0,5 %, lo que da una precisión de 7,64 bits (~200 pasos). El uso de una derivación con una precisión del 0,1% le brinda una precisión de 9,97 bits (~1000 pasos).

Si usa una resistencia de derivación muy pequeña con un amplificador de instrumentación, el voltaje de carga será insignificante. Por ejemplo, supongamos que tiene un amplificador de entrada con una ganancia de 100x (muy factible). Una resistencia de derivación adecuada para obtener 0-1.21Vla escala completa necesita una resistencia de derivación de 6.05mOhms, y tendrá un voltaje de carga de 12.1mV. Para todos los propósitos intensivos esto es insignificante. Puede reducir esto aún más usando un circuito de amplificador interno de 1000x (también muy factible).

No quiero usar una derivación porque parecía más fácil usar el ACS71X. Por cierto, el voltaje de referencia se fija internamente al voltaje de suministro en este chip. ¿Cómo se llama el amplificador en una hoja de datos? no pude encontrarlo
Un "amplificador operacional", abreviatura de "amplificador operacional", "amplificador de entrada" fue un error tipográfico.
in-amp es la abreviatura de "amplificador de instrumentación". Es como un amplificador operacional, pero hay diferencias de diseño clave. En particular, está diseñado para proporcionar una ganancia muy alta para amplificar las ligeras diferencias de voltaje entre las dos entradas mientras tiene entradas de alta impedancia. Los amplificadores internos se pueden construir usando amplificadores operacionales, aunque en la práctica necesita una muy buena coincidencia si desea una buena precisión con alta ganancia, así que obtenga un chip preconstruido. Nunca he visto un sensor de pasillo descrito como "más fácil de usar" que una derivación. Menos componentes, tal vez, pero la geometría de la placa es extremadamente importante para los sensores de pasillo.

Usted dice que quiere hacer una medición de corriente de "alta resolución". Cuando dice "alta resolución" y luego dice que está usando un ADC de 12 bits en un microcontrolador, en la misma oración, está redefiniendo "alta resolución. A la baja". De todos modos, tendrá suerte si obtiene 10-10.5 bits efectivos, por lo que ya tiene ~ 1000 códigos en escala completa (suponiendo que haga lo necesario y amplifique su medición sensorial para que 2A = "escala completa". ¿Es esa resolución lo suficientemente alta para usted?

Si es así, deberá seguir los consejos brindados en otras respuestas, sobre cómo elegir una referencia adecuada (banda prohibida interna, o una referencia externa decente <0.05%, NO un riel de suministro, sin importar cuán bien filtrado se pueda afirmar que hacerlo), Y use un amplificador operacional para amplificar su medición actual con una resistencia de derivación para que 2A = su voltaje de referencia, y use prácticas de diseño de PCB decentes para mantener su circuito analógico relativamente limpio. Mi interés es muy lento esta noche, por lo que no puedo descargar una hoja de datos STM32F4xxx en este momento, pero el 99,9% admitirá la opción de tener una referencia de voltaje externo.

Agregaría un amplificador operacional con una ganancia de 8 a la salida del ACS712, para aprovechar el rango completo del ADC en su microcontrolador. Entonces 2A estaría representado por 8*463 pasos = 3704, casi el rango completo (4096) del ADC de 12 bits con un voltaje de escala completa de 3.3v.

ingrese la descripción de la imagen aquí

El LMV321 es una versión de riel a riel del LM321.

La ganancia de un amplificador no inversor es 1 + R 2 R 1 , o en este caso 1 + 93.1 13.3 = 8 .

O use un amplificador operacional con una ganancia de 12 para el ACS711. En ese caso, 2A estaría representado por 12*275 pasos = 3300.

gracias, eso es exactamente lo que hice, aunque usé una resistencia de 1K y una de 167 (preferí quedarme con una ganancia de 7). ¿Hay alguna razón por la que deba multiplicar los valores de esas resistencias por 10 o 100? Quiero decir, sé que la ganancia es 1 + R2 / R1, pero ¿los valores bajos de resistencia afectan algo?
Me gusta usar resistencias en el rango de 10K a 100K si es posible. Al igual que Ricitos de oro, no quieres que sea demasiado pequeño o demasiado alto. Algo en el medio está bien. En este hilo se trata el tema con más detalle. En su caso, ahora elegiría R1 = 19.1K y 115K.