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

14

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

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 conectada, 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, por lo que al medir el voltaje de la batería, puedo estimar la capacidad restante (¡aproximadamente, 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.3V.

  • Además, usando uno de los pines de E / S conectados a un MOSFET de n canales, 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 describió anteriormente. (2) Me gustaría evitar que el divisor de voltaje interfiera con la lectura de la presencia de la batería en mi IC de carga (en mi configuración original, el divisor a veces causaba que el IC no leyera la presencia incluso cuando la batería estaba ausente).

bocado
fuente
1
"Usé valores de resistencia grandes". El pin de entrada puede tener una corriente de fuga, un valor típico de peor caso es 1 uA. Con corriente baja a través del divisor, esto puede distorsionar la lectura.
stevenvh
Entonces, 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.
mordida del
O use un FET para encender y apagar el divisor, como sugerí en esta respuesta a una pregunta similar.
stevenvh
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 del IC del cargador de la presencia de la batería? (Por cierto, ¡qué coincidencia que esa persona haya publicado la pregunta hoy también!)
mordisco del
1
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 al apagarlo, el pin de E / S se pone a tierra.
stevenvh

Respuestas:

12

ingrese la descripción de la imagen aquí

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

Primero, por qué no puede usar el N-FET en el lado alto: necesita un voltaje de puerta unos 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 un valor de 100 kΩ también lo hará. 10 kΩ causará una corriente adicional innecesaria de 400 µA cuando esté midiendo. No es el fin del mundo, pero es una 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 de bajo costo como, por ejemplo, Si2303 para el canal P y BSS138 para el canal N.

stevenvh
fuente
Gracias por la respuesta formal! Creo que podría pensar en varios usos para esta combinación particular. He actualizado mi esquema en la Pregunta, basado en esto. Y agradezco la explicación del N-FET.
mordida del
¿Qué recomendaría como ejemplo de un MOSFET de canal N adecuado (idealmente tipo SMD) para usar aquí? IRF530 parece ser grande y tampoco demasiado barato. (Para el canal P, veo el Si2303 viene en SMD, por lo que uno ya está cuidado.)
boardbite
1
@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 aun así no tiene que hundir ninguna corriente, y luego hay muchas opciones. El BSS138 es uno de los más baratos que pude encontrar, y lo hará muy bien.
stevenvh
7

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

Su microcontrolador (uC) está alimentado con + 3.3V. El drenaje del P-MOSFET propuesto puede ser tan alto como + 4.1V. Como se dibuja actualmente, una señal lógica de + 3.3V no podrá apagar completamente el P-MOSFET. Q6 en el siguiente esquema forma una salida de drenaje abierta, 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)

Puede encontrar 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 de entrada y salida de la batería. Hay docenas de circuitos integrados de medidores de combustible de batería ( bq27200 , por ejemplo), que ayudan con esta tarea.

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

Un interruptor del 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 se divide, el voltaje completo de la batería aparece en el pin ADC del microcontrolador. Esto puede dañar el uC. También creará un camino de fuga a través del cual la batería se descargará.
Se requiere un interruptor de lado alto cuando V bat > V cc .

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

Nick Alexeev
fuente
Gracias Nick! Eso tiene sentido, y ya se ha actualizado el esquema (El indicador de combustible es una opción, pero yo también estoy tratando de aprender algo de electrónica básica y la experimentación, por lo tanto, la idea divisor de tensión)
boardbite
¿Por qué no un solo N Mosfet en el lado bajo 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 Carlos
1
@Luis He editado la respuesta y agregué la respuesta a tu comentario.
Nick Alexeev
4

Anuncio 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 100kΩ, de acuerdo con la hoja de datos ATmega328 . Consulte "Figura 23-8. Circuitos de entrada analógica". Si su divisor tiene una impedancia comparable a la entrada de ADC, la circuitería de entrada de ADC básicamente se comportará como otro nodo en el divisor. Podría darle compensaciones en las lecturas de ADC.

Usar un divisor con hasta 10kΩ a través de los rieles sería lo suficientemente bajo como para ignorar la impedancia de entrada del ADC, mientras se usa 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á allí y está conectado a Vcc / 2.

Jonny B Good
fuente
Esa explicación tiene sentido. ¡Seguro que 0.4 mA no es tanto! Solo intentaba ser lo más idealista posible :) ¿Tienes alguna idea de por qué tener este divisor allí podría estar afectando la lectura de mi IC del cargador de si hay una batería?
mordida del
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 .
Jonny B Good
Estoy seguro de que si sigues la idea de stephenh de usar un FET para conectar / desconectar el divisor cuando sea necesario, todo será muy difícil. 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.
Jonny B Bueno
Gracias; He actualizado la pregunta en base a dos de las sugerencias, y agregué un esquema. En cuanto al monitoreo de suministro USB, el IC de carga también tiene una salida de estado para esto.
mordida del