Necesito medir el voltaje de la batería que alimenta mi electrónica.
Vbat suministra un convertidor DC/DC buck-boost y luego va a uC y otros circuitos integrados (3,3 V). Quiero usar pines dorados 3x2 junto con OpAmp para seleccionar el rango de voltaje Vbat: U1 (3,6V Li-Ion) o U2 (7,2 2x Li-Ion) o U3 (12V Pb) que generan 0V a 3,3V en Entrada uC ADC/salida OpAmp.
Eso esta limpio.
Ahora me gustaría informar uC a través de GPIO de alguna manera para saber qué tipo de puente / batería se seleccionó (necesito saber eso en el software). Me imagino algunos OpAmps adicionales conectados a R2/R2'/R2'' pero no tengo idea de cómo hacerlo.
Agradeceré tu ayuda :)
simular este circuito : esquema creado con CircuitLab
Edición 1:
El dispositivo se utiliza para medir el pH y la conductividad del agua. Necesita retroalimentación de temperatura para circuitos integrados de pH y conductividad y se comunica a través de GSM. Será alimentado por baterías, por lo que debe ahorrar energía. La mayor parte del tiempo duerme y cada 5 minutos hace las mediciones. GSM está activado (modo de suspensión GSM o modo de suspensión CC/CC) solo para el informe diario o cuando las mediciones están fuera de rango. Cuando duerme, los circuitos integrados secundarios toman: 1mA (pH) + 0,4mA (conductividad) + 1mA (modo de suspensión GSM) o 1uA (corriente de reposo apagada de CC/CC GSM) + ??mA (PT1000 - aún no determinado) + ??mA (uC - aún no determinado pero bajo).
La medición del ADC del voltaje de la batería es necesaria para calcular el porcentaje de capacidad de la batería y el tiempo de vida (basado en estadísticas anteriores), además de la visualización del voltaje sin procesar. Para arriba necesito OpAmp o divisor de voltaje. Es obligatorio seleccionar el tipo de batería (voltaje de entrada) para hacer cálculos más detallados. No quiero hacer computación de software y, si no, averiguar si la batería es de 12 V o 3,6 V, porque es posible conectar cualquier combinación de batería cuyo voltaje total sea de 3 V a 15 V. Por supuesto, es fácil determinar a partir de un divisor de voltaje el tipo de batería: 3,2-4,2 V para un paquete de iones de litio, 6,4-8,4 V para dos paquetes y 10,8-12,6 V. Solo pensando en voz alta :)
Volviendo a merritum: necesito elegir entre OpAmp y divisor de voltaje en función del ahorro de energía. El divisor de voltaje (mega ohmios) consumirá uA igual para la corriente de reposo de OpAmp en modo de apagado. Estoy desconcertado porque al principio pensé que OpAmp ahorraría más energía. ¿Qué os parece chicos y chicas? :)
Edición 2:
Precisión y resolución. El ADC es de STM32F091 y es de 12 bits, por lo que para eliminar el ruido, supongamos que es de 10 bits. El peor de los casos es la batería de iones de litio cuyo voltaje oscila entre 3,4 V y 3,7 V. Eso da 300mV delta. Para representar el porcentaje, necesito un paso de 0,5%, por lo que la resolución es de 1,5 mV por paso. Eso es cuando se usa un divisor de voltaje dedicado.
Cuando use un divisor de voltaje único para todos los tipos de baterías: el voltaje máximo de la batería puede ser de aproximadamente 13 V (para el plomo), por lo que necesito escalarlo a 3,3 V => div = 4. Cuando use un solo Li-Ion, obtendré los valores de este divisor de 925mV a 850mV por lo que el delta es de 75mV. La resolución necesaria es 75mV/200 = 0,375mV. El paso para 0V-3.3V 10bit es 3.2mV por lo que es 10 veces demasiado pequeño. Incluso si uso todos los 12 bits, el paso es demasiado pequeño: 0,8 mV.
¿Creo que necesito un divisor de voltaje dedicado para el tipo de batería o nuevamente OpAmp? ¿Cuál sería más ahorrador de energía?
Dado que los puentes deben configurarse manualmente, una solución simple podría ser usar un segundo puente que indique la ganancia seleccionada al microcontrolador. Entonces, el usuario debe configurar dos puentes en posiciones idénticas. O simplemente use un interruptor giratorio con dos polos y tres posiciones (por ejemplo: SS-10-23NPE ).
Un enfoque completamente diferente sería implementar una función de rango automático, donde el microcontrolador selecciona el factor de ganancia automáticamente. Simplemente use un pequeño interruptor analógico que será controlado por el microcontrolador. Ahora es posible obtener automáticamente la señal de entrada: comience con el factor de ganancia más bajo y avance solo un paso antes de que ocurra la saturación de la entrada ADC. Si es necesario, proteja la entrada ADC de la sobretensión: simplemente agregue un diodo Zehner o TVS (importante: baja corriente de fuga) a la salida del amplificador.
El voltaje máximo para medir puede ser de 13 V y si tiene un ADC de 10 bits, puede arreglarlo, con un divisor de resistencia adecuado, para dar ~ 13 mV por bit.
¿Cuánta precisión necesitará al medir el voltaje? ¿No son suficientes 13 mV?
De todos modos, esta es la forma más sencilla de hacerlo y no necesita preocuparse por el enlace que ha seleccionado.
Reemplace su mcu con dispositivos STM32F2 o F3 con amplificadores operacionales incorporados.
Algunos son compatibles con pines y tienen PGA interna, puede eliminar la mayoría o la totalidad de los amplificadores operacionales externos y los circuitos asociados del diseño.
ST tiene unas notas en las que el sobremuestreo y el ruido producen dos bits ADICIONALES (es decir, una precisión efectiva de 14 bits).
http://www.st.com/web/en/resource/technical/document/application_note/CD00211314.pdf
http://www.st.com/web/en/resource/technical/document/application_note/CD00004444.pdf
He probado esto y funciona, especialmente en la medición de CC de baja impedancia.
El dispositivo F373 también tiene ADC de 16 bits, pero esto realmente sería una exageración.
También puede reemplazar su opamp con un PGA MCP6S21/2/6/8 o MCP6S91/2/3.
Su precisión, calibración, prueba, PCB y fabricación serán más simples y costarán menos.
El consumo de energía es mínimo, ya que puede sincronizar todo el dispositivo a una velocidad muy baja (32 KHz). También pondría a dormir todo el dispositivo, o tal vez apagaría el análogo durante largos períodos entre mediciones, dependiendo de qué más necesite hacer.
Conservar energía de esta manera es un desafío con amplificadores operacionales externos.
Para las únicas, las placas Nucleo cuestan < $ 10, Discovery un poco más.
bimpelrekkie
Nick Alexeev
Andy alias
CrisR
matardaclick
matardaclick
matardaclick
matardaclick
Andy alias
matardaclick
CrisR
frarugi87