Detectando la corriente hasta 2A con alta resolución

4

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

Estoy usando un STM32F4 con 12bit ADC, lo que significa que con un Vref de 3.3V es un incremento cada 0.8mV. 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? (iAeslamedida)

Porcierto,estoytratandodereemplazarloconunACS711quefuncionacon3.3Vperosolomedaráunaresoluciónde110mV/A

AquíestálaconexiónVref+/-

    
pregunta nairyo

4 respuestas

7

La mayoría de los microcontroladores con ADC tienen una referencia de intervalo de banda interna con un voltaje de ~ 1V (consulte la hoja de datos para obtener valores y tolerancias más precisos; por ejemplo, STM32F415xx series tiene una referencia de banda prohibida de 1.21V). Esto aumenta efectivamente su resolución a 1253 pasos a escala completa al oprimir 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. Utilice un ADC externo de mayor resolución
  3. Use una referencia externa de voltaje más bajo (por ejemplo, algo como this ). Tenga en cuenta que un simple divisor de voltaje 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 has enumerado tiene una precisión del 1%. Eso significa que obtienes una precisión de 6.64 bits (~ 100 pasos). Es muy fácil obtener resistencias en 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 precisa de 0.1% le da 9.97 bits de precisión (~ 1000 pasos).

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

    
respondido por el helloworld922
1

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. Hacia abajo. De todos modos, tendrá suerte si obtiene 10-10.5 bits efectivos, por lo que ya tiene hasta 1000 códigos en escala completa (suponiendo que haga lo que sea necesario y amplifique su medición sensorial de modo que 2A="escala completa". ¿Es esa resolución lo suficientemente alta para usted?

Si es así, entonces deberá seguir los consejos dados en otras respuestas, sobre la elección de una referencia apropiada (espacio de banda interno o una referencia externa decente de < 0.05%, NO un riel de suministro, no importa qué tan bien filtrado) uno podría decir que lo hizo), Y use un amplificador operacional para amplificar su medición actual con una resistencia shunt de modo que 2A = su valor de referencia, y use prácticas de diseño de PCB decentes para mantener su circuito analógico relativamente limpiar. Mi intervención es muy lenta 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.

    
respondido por el Techydude
1

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

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

La ganancia de un amplificador no inversor es \ $ 1 + \ frac {R2} {R1} \ $, o en este caso \ $ 1 + \ frac {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.

    
respondido por el tcrosley
-1

Aquí sugerí usar un modulador Sigma-Delta . Parecía muy efectivo, aunque un poco caro. Era un componente de Dispositivos analógicos, ahora TI también tiene algo de eso.

    
respondido por el Gregory Kornblum

Lea otras preguntas en las etiquetas