Meça a tensão da bateria de íon de lítio (capacidade restante)

14

Com o que estou trabalhando: estou executando minha placa Arduino de fabricação própria (no sentido de usar o carregador de inicialização Arduino e o editor de código) a 3,3V e alimentada por uma bateria de íon de lítio, carregada por USB por um Microchip correspondente carregador IC.

O que estou tentando alcançar: quero medir a capacidade da bateria uma vez a cada minuto. Eu tenho um LCD conectado, então a idéia é que a configuração geral me informe como está a bateria em um determinado momento. A folha de dados da bateria possui uma curva de voltagem versus nível de descarga e, medindo a voltagem da bateria, posso estimar a capacidade restante (aproximadamente, mas o suficiente para mim!).

O que eu fiz:

  • (EDIT: valores do resistor atualizados e a chave P-MOSFET adicionada com base nas sugestões de @stevenvh e @ Jonny).

  • Conectei um divisor de tensão da bateria V_plus, com a "porção" maior indo para um pino de leitura analógica (ou seja, ADC) no chip Arduino / Atmega.

  • O divisor é de 33 KOhm a 10 KOhm, permitindo assim a medição de até 4,1 Volts no máximo da bateria de íon de lítio do meu microcontrolador de nível de 3,3V.

  • Além disso, usando um dos pinos de E / S conectados a um MOSFET de canal n, eu posso alternar a corrente através do divisor somente quando precisar da medição.

  • Aqui está um esquema aproximado (atualizado pela segunda vez com base nas sugestões de @stevenvh e @Nick):

insira a descrição da imagem aqui

Minha pergunta:

  • Como está minha configuração atual?

  • Minhas únicas restrições são: (1) gostaria de fazer uma medição aproximada da capacidade da bateria com base na leitura de tensão, conforme descrito acima. (2) Gostaria de impedir que o divisor de tensão interfira na leitura da presença de bateria do meu IC de carregamento (em minha configuração original, o divisor às vezes fazia com que o IC interpretasse mal a presença, mesmo quando a bateria estava ausente).

mordida
fonte
1
"Eu usei grandes valores de resistores". O pino de entrada pode ter uma corrente de fuga, o pior valor típico é 1 uA. Com baixa corrente através do divisor, isso pode distorcer a leitura.
Stevenvh
Então, eu quero corrente baixa através do divisor, mas alta o suficiente para que seja pelo menos uma ordem de magnitude acima da corrente máxima de vazamento.
boardbite
Ou use um FET para ligar e desligar o divisor, como sugeri nesta resposta a uma pergunta semelhante.
stevenvh
Com o FET no lugar, no "estado" desligado do divisor, você acha que isso também pode resolver o problema da leitura incorreta da presença da bateria no CI do carregador? (BTW, o que é uma coincidência que essa pessoa postou a pergunta hoje, como bem!)
boardbite
1
Você tem o FET errado do lado errado. Se você desligar este, a tensão total estará no pino de entrada, pois R1 não consumirá corrente. Você precisa de um P-MOSFET no lado alto, para que desligá-lo puxe o pino de E / S para o chão.
stevenvh

Respostas:

12

insira a descrição da imagem aqui

Isso parece ser muito parecido com o esquema de Nick, provavelmente estava ocupado desenhando quando ele postou :-).

Primeiro, por que você não pode usar o N-FET no lado alto: ele precisa de uma tensão de porta alguns volts mais alta que a fonte, e os 4,2 V são tudo o que você tem, nada mais alto, para que não funcione.

Eu tenho um valor mais alto para o pull-up, embora um valor de 100 kΩ também funcione. 10 kΩ causará uma corrente extra desnecessária de 400 µA quando você estiver medindo. Não é o fim do mundo, mas é um resistor em ambos os casos, então por que não usar um valor mais alto?

Para os MOSFETs, há uma variedade de peças para escolher, pois os requisitos não são tão rigorosos; você pode considerar os de baixo custo, como, por exemplo, Si2303 para o canal P e BSS138 para o canal N.

stevenvh
fonte
Obrigado pela resposta formal! Acho que consegui pensar em vários usos para essa combinação específica. Atualizei meu esquema na pergunta, com base nisso. E aprecie a explicação do N-FET.
boardbite
O que você recomendaria como exemplo de um MOSFET de canal N apropriado (do tipo SMD) para usar aqui? O IRF530 parece ser grande e também não muito barato. (Para o P-Channel, eu vejo o Si2303 vem em SMD, de modo que um já é cuidado.)
boardbite
1
@ Inga - Você não precisa de corrente, então a resistência não é tão importante. Basta olhar para a tensão limiar do portão: ele deve estar ligado a 3,3 V, mas mesmo assim não precisa diminuir a corrente, e há muitas opções de escolha. O BSS138 é um dos mais baratos que eu pude encontrar e fará muito bem.
stevenvh
7

@Inga. Isso é mais um comentário do que uma resposta. Mas eu gostaria de postar uma foto, então estou postando como resposta.

Seu microcontrolador (uC) é alimentado com + 3.3V. O dreno do P-MOSFET proposto pode ser tão alto quanto + 4,1V. Como está desenhado atualmente, um sinal lógico de + 3.3V não poderá desligar completamente o P-MOSFET. Q6 no esquema abaixo forma uma saída de dreno aberto, que é tolerante a + 4.1V.

C14 diminui a impedância que o seu A / D verá.

insira a descrição da imagem aqui

[...] tensão da bateria (capacidade restante)

Você pode achar que detectar a tensão da bateria não é uma maneira precisa de detectar a capacidade restante. Em equipamentos portáteis (telefones celulares, laptops), a capacidade da bateria é estimada medindo-se a corrente que entra e sai da bateria. Existem dezenas de ICs especializados para medidores de combustível de bateria ( bq27200 , por exemplo), que ajudam nessa tarefa.

Por que não um único MOSFET de canal N no lado inferior e o divisor de dois resistores no lado superior?
[de um comentário abaixo]

Um interruptor do lado inferior apresenta problemas quando a tensão da bateria (V bat ) é maior que a tensão de alimentação do microcontrolador (V cc ). Quando o interruptor lateral baixo está desligado, a extremidade do terra do divisor de tensão flutua, o divisor não se divide mais, a tensão total da bateria aparece no pino ADC do microcontrolador. Isso pode danificar o uC. Também criará um caminho de vazamento através do qual a bateria descarregaria.
É necessário um interruptor do lado alto quando V bat > V cc .

1 Vou usar V cc para abreviar, mas essa discussão se aplica a V dd , AV cc , AV dd também. Em caso de dúvida, procure em uma folha de dados, é claro.

Nick Alexeev
fonte
Obrigado Nick! Isso faz sentido, e eu tenho atualizado o esquema (O indicador de combustível é uma opção, mas eu também estou tentando aprender algumas eletrônica básica e experimentando, daí a ideia divisor de tensão)
boardbite
Por que não um único N Mosfet no lado inferior e o divisor de dois resistores no lado superior? Não posso ver porque é necessário usar um N Mosfet para conduzir o P Mosfet
Luis Carlos
1
@Luis Editei a resposta e adicionei a resposta ao seu comentário.
Nick Alexeev
4

Ad.A: Eu acho justo usar um divisor de tensão simples para detectar a tensão da bateria. Embora, você deve escolher cuidadosamente a resistência. A impedância interna de suas entradas ADC é de 100kΩ, de acordo com a folha de dados do ATmega328 . Veja "Figura 23-8. Circuito de Entrada Analógica". Se o seu divisor tiver uma impedância comparável à entrada ADC, o circuito de entrada do ADC se comportará basicamente como outro nó no divisor. Pode fornecer compensações nas leituras do ADC.

O uso de um divisor de até 10kΩ através dos trilhos seria baixo o suficiente para ignorar a impedância de entrada do ADC, enquanto o uso de apenas 410µA seria suficiente. Se isso é demais para sua aplicação, é claro que você pode escolher resistências maiores, mas lembre-se de que o ADC está lá e está conectado ao Vcc / 2.

Jonny B Good
fonte
Essa explicação faz sentido. Com certeza 0,4 mA não é tanto! Eu estava apenas tentando ser o mais idealista possível :) Você tem alguma idéia de por que esse divisor pode estar afetando a leitura do IC do meu carregador sobre a existência de uma bateria?
boardbite
Meu palpite seria que ainda existe uma conexão entre o pino positivo da bateria onde está o divisor e os + 5V do usb. Não conheço o seu circuito específico, mas tenho certeza de que você pode deduzir o que vai dar se der uma olhada no esquema do Arduino .
Jonny B Bom
Tenho certeza de que, se você seguir a ideia de stephenh de usar um FET para conectar / desconectar o divisor quando necessário, tudo será complicado. Os MOSFETs têm resistências completamente desprezíveis para o seu divisor. Talvez você precise de outro ADC para monitorar se o USB está conectado ou não.
Jonny B Bom
Obrigado; Atualizei a pergunta com base em duas sugestões e adicionei um esquema. Quanto ao monitoramento da fonte USB, o IC de carregamento também possui uma saída de status para isso!
boardbite