Mida el voltaje de la batería de iones de litio (por lo tanto, la capacidad restante)

Con lo que estoy trabajando: estoy ejecutando mi placa Arduino hecha por mí mismo (en el sentido de que uso el cargador de arranque Arduino y el editor de código) a 3.3V, y alimentado por una batería de iones de litio, que se carga por USB mediante un Microchip correspondiente. IC del cargador.

Lo que estoy tratando de lograr: quiero medir la capacidad de la batería una vez cada minuto más o menos. Tengo una pantalla LCD adjunta, por lo que la idea es que la configuración general me permita saber cómo está funcionando la batería en un momento dado. La hoja de datos de la batería tiene una curva de voltaje versus nivel de descarga y, por lo tanto, al medir el voltaje de la batería, puedo estimar la capacidad restante (muy aproximada, ¡pero suficiente para mí!).

Lo que hice:

  • (EDITAR: valores de resistencia actualizados y interruptor P-MOSFET agregado según las sugerencias de @stevenvh y @Jonny).

  • Conecté un divisor de voltaje de la batería V_plus, con la "porción" más grande yendo a un pin de lectura analógica (es decir, ADC) en el chip Arduino/Atmega.

  • El divisor es de 33 KOhm a 10 KOhm, lo que permite medir hasta un máximo de 4,1 voltios de la batería de iones de litio de mi microcontrolador de nivel de 3,3 V.

  • Además, al usar uno de los pines de E/S conectados a un MOSFET de canal n, puedo cambiar la corriente a través del divisor solo cuando necesito la medición.

  • Aquí hay un esquema aproximado (actualizado por segunda vez según las sugerencias de @stevenvh y @Nick):

ingrese la descripción de la imagen aquí

Mi pregunta:

  • ¿Cómo es mi configuración actual?

  • Mis únicas limitaciones son: (1) Me gustaría hacer una medición aproximada de la capacidad de la batería en función de la lectura de voltaje, como se describe anteriormente. (2) Me gustaría evitar que el divisor de voltaje interfiera con la lectura de la presencia de la batería del IC de carga (en mi configuración original, el divisor a veces causaba que el IC leyera mal la presencia incluso cuando la batería estaba ausente).

"Utilicé valores de resistencia grandes". El pin de entrada puede tener una corriente de fuga, un valor típico en el peor de los casos es 1 uA. Con baja corriente a través del divisor, esto puede distorsionar la lectura.
Así que quiero una corriente baja a través del divisor pero lo suficientemente alta como para que sea al menos un orden de magnitud por encima de la corriente de fuga máxima.
O use un FET para encender y apagar el divisor, como sugerí en esta respuesta a una pregunta similar.
Con el FET en su lugar, en el "estado" apagado del divisor, ¿cree que esto también podría resolver el problema de la lectura errónea de la presencia de la batería por parte del circuito integrado del cargador? (Por cierto, ¡qué coincidencia que esa persona también haya publicado la pregunta hoy!)
Supongo que sí. El FET tendrá una corriente de fuga cuando esté apagado, pero será unos pocos órdenes de magnitud menor que el 5 m A toma el divisor. (Creo que ese cargador es muy sensible).
@stevenvh: Entendido. He refinado la Pregunta con los detalles actualizados y un esquema.
Tienes el FET equivocado en el lado equivocado. Si apaga este, el voltaje completo estará en el pin de entrada, ya que R1 no consumirá corriente. Necesita un P-MOSFET en el lado alto, de modo que apagarlo lleve el pin de E/S a tierra.
El cambio de lado alto tiene sentido. Además, usé un N-MOSFET porque tenía uno; no puedo hacer que funcione con uno?
Esquema finalizado con el P-MOSFET; ¡gracias un montón! Todavía agradecería un consejo sobre la alternativa N-MOSFET, solo para conocimiento futuro.

Respuestas (3)

ingrese la descripción de la imagen aquí

Esto parece ser muy similar al esquema de Nick, probablemente estaba ocupado dibujándolo cuando lo publicó :-).

Primero, por qué no puede usar el N-FET en el lado alto: necesita un voltaje de compuerta unos pocos voltios más alto que la fuente, y los 4.2 V es todo lo que tiene, nada más alto, por lo que no funcionará.

Tengo un valor más alto para el pull-up, aunque también servirá un valor de 100 kΩ. 10 kΩ causarán una corriente adicional innecesaria de 400 µA cuando esté midiendo. No es el fin del mundo, pero es 1 resistencia en ambos casos, entonces, ¿por qué no usar un valor más alto?

Para los MOSFET, hay una variedad de piezas para elegir dado que los requisitos no son tan estrictos; puede considerar los económicos como, por ejemplo, Si2303 para el canal P y BSS138 para el canal N.

Gracias por la respuesta formal! Creo que podría pensar en varios usos para esta combinación en particular. He actualizado mi esquema en la Pregunta, basado en esto. Y agradezco la explicación del N-FET.
¿Qué recomendaría como ejemplo de un MOSFET de canal N apropiado (idealmente tipo SMD) para usar aquí? IRF530 parece ser grande y tampoco demasiado barato. (Para el canal P, veo que el Si2303 viene en SMD, por lo que uno ya está solucionado).
@Inga: no necesita corriente, por lo que la resistencia no es tan importante. Solo mire el voltaje de umbral de la puerta: debe estar encendido a 3.3 V, pero incluso entonces no tiene que absorber ninguna corriente, y luego hay muchas opciones. El BSS138 es uno de los más baratos que pude encontrar y funcionará muy bien.

@Inga. Esto es más un comentario que una respuesta. Pero me gustaría publicar una imagen, así que la publico como respuesta.

Su microcontrolador (uC) se alimenta con +3.3V. El drenaje del P-MOSFET propuesto puede ser tan alto como +4.1V. Tal como está dibujado actualmente, una señal lógica de +3,3 V no podrá apagar completamente el P-MOSFET. Q6 en el siguiente esquema forma una salida de drenaje abierto, que es tolerante a +4.1V.

C14 reduce la impedancia, que verá su A/D.

ingrese la descripción de la imagen aquí

voltaje de la batería (por lo tanto, capacidad restante)

Es posible que encuentre que detectar el voltaje de la batería no es una forma precisa de detectar la capacidad restante. En equipos portátiles (teléfonos celulares, computadoras portátiles), la capacidad de la batería se estima midiendo la corriente que entra y sale de la batería. Hay docenas de circuitos integrados de indicador de combustible de batería especializados ( bq27200 , por ejemplo), que ayudan con esta tarea.

¿Por qué no un solo MOSFET de canal N en el lado inferior y el divisor de dos resistencias en el lado superior?
[de un comentario a continuación]

Un interruptor de lado bajo tiene problemas cuando el voltaje de la batería (V bat ) es mayor que el voltaje de suministro del microcontrolador (V cc ). Cuando el interruptor del lado bajo está apagado, el extremo de tierra del divisor de voltaje flota, el divisor ya no divide, el voltaje completo de la batería aparece en el pin ADC del microcontrolador. Esto puede dañar el uC. También creará una ruta de fuga a través de la cual se descargaría la batería.
Se requiere un interruptor de lado alto cuando V bat > V cc .

1 Usaré V cc para abreviar, pero esta discusión también se aplica a V dd , AV cc , AV dd . En caso de duda, busque en una hoja de datos, por supuesto.

¡Gracias Nick! Eso tiene sentido, y actualicé el esquema (el indicador de combustible es una opción, pero también estoy tratando de aprender algo de electrónica básica y experimentar, de ahí la idea del divisor de voltaje)
¿Por qué no un solo Mosfet N en el lado inferior y el divisor de dos resistencias en el lado superior? No puedo ver por qué es necesario usar un N Mosfet para conducir el P Mosfet
@Luis Edité la respuesta y agregué la respuesta a tu comentario.

Ad.A: Creo que es justo usar un divisor de voltaje simple para detectar el voltaje de la batería. Aunque, debes elegir cuidadosamente la resistencia. La impedancia interna de sus entradas ADC es de 100 kΩ, según la hoja de datos de ATmega328 . Consulte la "Figura 23-8. Circuito de entrada analógica". Si su divisor tiene una impedancia comparable a la entrada de ADC, el circuito de entrada de ADC básicamente se comportará como otro nodo en el divisor. Podría darle compensaciones en las lecturas de ADC.

El uso de un divisor con hasta 10 kΩ en los rieles sería lo suficientemente bajo como para ignorar la impedancia de entrada del ADC, mientras que usaría solo 410 µA. Si eso es demasiado para su aplicación, por supuesto puede elegir resistencias más grandes, pero tenga en cuenta que el ADC está ahí y está conectado a Vcc/2.

Esa explicación tiene sentido. ¡Seguro que 0,4 mA no es tanto! Solo estaba tratando de ser lo más idealista posible :) ¿Tiene alguna idea de por qué tener este divisor allí podría estar afectando la lectura de mi cargador IC de si hay una batería?
Supongo que todavía hay una conexión entre el pin positivo de la batería donde está el divisor y los +5V del usb. No conozco su circuito en particular, pero estoy seguro de que puede deducir qué va a dónde si echa un vistazo al esquema de Arduino .
Estoy seguro de que si sigue la idea de stephenh de usar un FET para conectar/desconectar el divisor cuando sea necesario, todo saldrá bien. Los MOSFET tienen resistencias que son completamente insignificantes para su divisor. Quizás necesite otro ADC para monitorear si el USB está conectado o no.
Gracias; Actualicé la pregunta en función de dos de las sugerencias y agregué un esquema. En cuanto a la supervisión del suministro USB, el IC de carga ya tiene una salida de estado para esto también.