Use GPIO para deshabilitar el divisor de voltaje

Estoy usando un divisor de voltaje para leer el nivel de batería de una plataforma de sensores inalámbricos usando STM32L151. Estoy tratando de usar 20k para R1 y 10k para R2, para estar por debajo del límite de 50k del periférico ADC de la MCU.

¿Cómo calculo la corriente desperdiciada por el divisor?

Originalmente, planeaba usar un MOSFET de canal P para habilitar el divisor al tomar medidas para reducir el consumo de energía, pero veo que los MOSFET tienen corriente de fuga y aumentan el número de piezas.

¿Puedo configurar el GPIO para empujar y tirar como base para el divisor y configurarlo bajo cuando quiero medir y alto cuando no?

¿Está alimentando el microcontrolador (MCU) directamente desde la batería o tiene un regulador de voltaje para el Vcc de la MCU?
Regulador. La batería es una lipo 4.2-3v, la MCU funciona a 1.8v.
Considere resistencias aún más grandes para el divisor, unos pocos MOhm y un capacitor para proporcionar la baja impedancia para el ADC

Respuestas (4)

Lo primero: si el ADC está bien con 50K, puede usar 150K y 75.0K (la impedancia de la fuente será exactamente 50K).

La corriente utilizada por el divisor será 4.3V/225K = 19.1uA.

A diferencia de la mayoría de los micros, creo que en realidad puede levantar el extremo inferior del divisor y reducir la corriente, si elige una entrada tolerante a 5V que se comparte con el ADC y usa otro pin tolerante a 5V para el control del divisor. Al menos eso es lo que me parece. Establecería el pin de control en bajo/salida para la operación del divisor y tendría la entrada ADC activa. Para deshabilitar, establezca ambos pines en entradas digitales.

¿Puedes dar más detalles sobre la tolerancia de 5v? ¿Estás diciendo que puedo usar una proporción mayor? Pero a 12 bits se leerá como 4095 hasta que el voltaje caiga por debajo de 1.8v, el VREF, ¿no?
Tolerante a 5V significa que cuando está configurado como una entrada digital, puede subir hasta 5V sin consumir apenas corriente. Entonces, en el modo de medición, el pin conectado al 75K (parte inferior del divisor) se configura como una salida digital y se establece en '0', por lo que está cerca de tierra. La unión divisoria está conectada a otro pin, configurado como una entrada analógica para el ADC; se encuentra a 1/3 del voltaje de la batería. En el modo sin medición, ambos pines se configuran como entradas digitales (sin pullups o pulldowns habilitados si esas son opciones en esta MCU). Ambos pines de 'entrada' flotan hasta 4.2V-4.3V.
Veo. Eso suena como una gran opción.
Verifique siempre la tolerancia de 5 V de los pines de entrada del ADC STM32, cambia según el puerto y la familia. Algunas familias NO tienen entradas ADC tolerantes a 5V (por ejemplo, STM32F303) e incluso el STM32L15x utilizado por el OP tiene algunas entradas ADC que no son tolerantes a 5V (por ejemplo, ADC13_IN). Por cierto, si un pin GPIO es tolerante a 5 V o no se basa en las entradas del pin (es decir, usa VDD_FT para sus diodos de entrada y no VDD) y no está configurado para digital o analógico (o al menos esto fue cierto para los 5 Manuales de referencia que consulté (L1xx, F3xx, F1xx, F4xx, L4xx).

La respuesta simple es "probablemente no te molestes". Como señaló Sphero, sus pérdidas son pequeñas y probablemente serán eclipsadas en otras partes del sistema.

Sugiero leer el excelente informe de Jack Ganssle sobre el diseño de energía ultrabaja con celdas de moneda para que pueda ver todos los lugares donde las cosas pueden salir mal que no espera.

Pero , si absolutamente debe desconectar este divisor de voltaje, tiene un par de opciones, las cuales lamentablemente requieren más partes.

  1. Interruptor MOSFET de canal P en el lado alto del divisor para encenderlo y apagarlo. Como señaló, hay una corriente de fuga, pero debería ser muy pequeña si elige el FET correcto. La desventaja es que también necesita un BJT o un FET de canal N para el alto voltaje de conmutación que exige un FET de canal P.

  2. Use un amplificador operacional de muy baja potencia para amortiguar la señal del divisor de voltaje. No termina encendiéndolo y apagándolo, pero puede hacer que los valores del divisor de voltaje sean muy altos.

El amplificador operacional crearía un gran problema si el procesador se apaga mientras VBATT está alto. Cuando el procesador está apagado, la conducción de un voltaje de baja impedancia en el ADC puede causar todo tipo de comportamiento no deseado. Además, es caro e innecesario.
Pensamiento rápido: si eleva la puerta P-fets a Vbat con una resistencia para mantenerla apagada normalmente y luego conecta la puerta a su pin gpio a través de un capacitor de 100n. Si baja, obtendrá un tiempo finito (dependiendo del pull-up) para medir el ADC, pero ¿cuánto tiempo necesita un ADC de todos modos?

Nadie te ha dado la mejor respuesta todavía. Hazlo así, con dos transistores. Coloque un PFET en la parte superior del divisor (entre batería + y divisor de voltaje). La fuente PFET está conectada a la batería. El desagüe está conectado al divisor. PFET tiene pull-up desde la puerta hasta la fuente. Pullup puede rondar los 100k o incluso más si lo desea. Conecte el drenaje NFET a la compuerta PFET. Conecte la fuente NFET a GND. Conecte la puerta NFET al procesador VCC o a un procesador GPIO. Cuando la puerta NFET está alta, el divisor estará en funcionamiento. Cuando la puerta NFET está baja, el divisor se desconectará de la batería.

Personalmente, creo que es una buena idea asegurarse de que el divisor de detección de batería no agote la batería cuando el dispositivo esté apagado, incluso si son solo 10 s o 100 uA. Además, el voltaje de la batería no debe aplicarse a la entrada del ADC cuando no hay VCC, ni siquiera a través de una resistencia grande (a menos que se trate de un pin de entrada altamente especializado). Por lo tanto, diría que DEBE desconectar la batería del ADC cada vez que VCC no esté presente.

Si no puede visualizar lo que escribí, hágamelo saber y lo dibujaré para usted.

Editar: use BSS138 para NMOS y BSS84 para PMOS. Solo una recomendación. Estas piezas tienen un costo muy bajo en volumen y están fácilmente disponibles.

Tengo algunos BSS138 a mano. Entonces, esto es posible para mí si obtengo los BSS84. Justo estaba leyendo sobre los circuitos CMOS el otro día... ¿es éste?
¿Qué me da el uso de dos FET frente a solo uno?
Si usa un PFET, ¿a qué ata la puerta? Los GPIO del procesador estarán bajos cuando VCC esté apagado. Por lo tanto, el PFET estará encendido y la batería se agotará cada vez que VCC esté apagado. Si usa un NMOS en la parte inferior, cuando VCC esté apagado, el ADC no tendrá alimentación y cargará la batería para que se agote. No puede conectar pullups a una entrada sin alimentación (a menos que la entrada haya sido especialmente diseñada para permitirlo). Si VCC está siempre activado, entonces no necesita preocuparse por eso. Pero si alguna vez hay un caso en el que VBAT está presente y VCC no, necesita dos transistores.
Última pregunta. Si uso un solo NFET en la parte inferior y nunca apago VCC, ¿estoy bien?
Bueno, esto vuelve a lo que decía Spehro. Si las entradas pueden tolerar 5V, entonces debe hacer lo que dijo (use otro GPIO en lugar de un NFET en la parte inferior de su divisor). Eso será más barato y debería funcionar. Si las entradas no son tolerantes a 5 V, entonces el NFET en la parte inferior no será seguro, porque una vez que el NFET está apagado, la entrada del ADC se eleva efectivamente a VBATT por la resistencia superior en el divisor. Las placas que diseño se fabrican en masa, a veces por millones, y las entradas no son tolerantes a 5 V, por lo que uso dos transistores. Los que sugerí cuestan menos de US$0.02 cada uno en volumen alto.

¿Cómo calculo la corriente desperdiciada por el divisor?

Dado que el voltaje de la batería es de 4,2 V, la corriente consumida es I = V / R = 4.2 V / 30 k Ω = 140 m A .

¿Puedo configurar el GPIO para empujar y tirar como base para el divisor y configurarlo bajo cuando quiero medir y alto cuando no?

Si su MCU fuera alimentado por la batería, entonces sí, esto funcionaría. Sin embargo, dado que su MCU no lo es, continuará desperdiciando I = ( 4.2 V 1.8 V ) / 30 k Ω = 80 m A .

Veo que los MOSFET tienen corriente de fuga y aumentan el recuento de piezas.

Comprenda que su MCU también está construido con MOSFET y también tiene corriente de fuga. Un MOSFET adicional (cuando está apagado) no aumentará sustancialmente el consumo de energía del circuito por encima de lo que ya es. En cuanto al recuento de piezas, bueno... ¿Cuánto vale esta función para usted?

El conteo de partes no es tan importante como la baja potencia, pero si puedo obtener ambos a la vez, lo tomaría.