Misurare la tensione della batteria agli ioni di litio (quindi la capacità rimanente)


14

Con cosa sto lavorando: sto eseguendo la mia scheda Arduino autoprodotta (nel senso che utilizzo il bootloader Arduino e l'editor di codice) a 3,3 V, e alimentata da una batteria agli ioni di litio, che viene caricata tramite USB da un microchip corrispondente caricabatterie IC.

Cosa sto cercando di ottenere: voglio misurare la capacità della batteria una volta ogni minuto o giù di lì. Ho un LCD collegato, quindi l'idea è che l'impostazione generale mi faccia sapere come sta andando la batteria in un dato momento. Il foglio dati della batteria ha una tensione rispetto alla curva del livello di scarica, e quindi misurando la tensione della batteria, posso stimare la capacità residua (molto approssimativamente ma abbastanza per me!).

Cosa ho fatto:

  • (EDIT: valori dei resistori aggiornati e switch P-MOSFET aggiunto in base ai suggerimenti di @stevenvh e @ Jonny).

  • Ho collegato un partitore di tensione dalla batteria V_plus, con la "porzione" più grande che va a un pin di lettura analogico (cioè ADC) sul chip Arduino / Atmega.

  • Il divisore è da 33 KOhm a 10 KOhm, consentendo così la misurazione fino a un massimo di 4,1 Volt della batteria agli ioni di litio dal mio microcontrollore di livello da 3,3 V.

  • Inoltre, utilizzando uno dei pin I / O collegati a un MOSFET a canale n, posso commutare la corrente attraverso il divisore solo quando ho bisogno della misurazione.

  • Ecco uno schema approssimativo (aggiornato per la seconda volta sulla base dei suggerimenti di @stevenvh e @Nick):

inserisci qui la descrizione dell'immagine

La mia domanda:

  • Come è la mia configurazione attuale?

  • I miei unici vincoli sono: (1) Vorrei fare una misurazione approssimativa della capacità della batteria in base alla lettura della tensione, come descritto sopra. (2) Vorrei evitare che il divisore di tensione interferisca con la lettura della presenza della batteria da parte del mio IC di ricarica (nella mia configurazione originale, il divisore a volte causava una lettura errata dell'IC anche quando la batteria era assente).


1
"Ho usato grandi valori di resistenza". Il pin di ingresso può avere una corrente di dispersione, un tipico valore nel caso peggiore è 1 uA. Con una corrente bassa attraverso il divisore, ciò potrebbe distorcere la lettura.
Stevenvh,

Quindi voglio una bassa corrente attraverso il divisore ma abbastanza alta da essere almeno un ordine di grandezza al di sopra della massima corrente di dispersione.
boardbite,

Oppure usa un FET per accendere e spegnere il divisore, come ho suggerito in questa risposta a una domanda simile.
Stevenvh,

Con il FET in posizione, nello "stato" spento del divisore, pensi che ciò potrebbe anche risolvere il problema della lettura errata della presenza della batteria da parte del caricabatterie IC? (A proposito, che coincidenza che quella persona abbia pubblicato la domanda anche oggi!)
boardbite

1
Hai il FET sbagliato dalla parte sbagliata. Se lo disattivi, la tensione piena sarà sul pin di ingresso, poiché R1 non assorbirà corrente. È necessario un P-MOSFET sul lato alto, in modo che spegnerlo tenga a terra il pin I / O.
Stevenvh,

Risposte:


12

inserisci qui la descrizione dell'immagine

Questo sembra essere molto simile allo schema di Nick, probabilmente era impegnato a disegnarlo quando ha pubblicato :-).

Innanzitutto perché non è possibile utilizzare l'N-FET sul lato alto: ha bisogno di una tensione di gate di qualche volt superiore alla sorgente e il 4,2 V è tutto ciò che hai, niente di più alto, quindi non funzionerà.

Ho un valore più alto per il pull-up, anche se lo farà anche un valore di 100 kΩ. 10 kΩ causerà una corrente extra non necessaria di 400 µA durante la misurazione. Non è la fine del mondo, ma è 1 resistenza in entrambi i casi, quindi perché non usare un valore più alto.

Per i MOSFET, ci sono una varietà di parti tra cui scegliere dato che i requisiti non sono così severi; puoi considerare quelli economici come, ad esempio, Si2303 per il canale P e BSS138 per il canale N.


Grazie per la risposta formale! Penso che potrei pensare a diversi usi per questa particolare combinazione. Ho aggiornato il mio schema nella Domanda, basato su questo. E apprezzo la spiegazione dell'N-FET.
Boardbite

Cosa consiglieresti come esempio di un MOSFET N-Channel adatto (idealmente tipo SMD) da usare qui? IRF530 sembra essere grande e neanche troppo economico. (Per il P-Channel, vedo che il Si2303 arriva in SMD, quindi uno è già curato.)
boardbite

1
@Inga - Non hai bisogno di corrente, quindi la resistenza all'accensione non è così importante. Basta guardare la tensione di soglia del gate: dovrebbe essere acceso a 3,3 V, ma anche in questo caso non deve sprofondare corrente e quindi c'è molta scelta. Il BSS138 è uno dei più economici che ho trovato e funzionerà bene.
Stevenvh,

7

@Inga. Questo è più un commento che una risposta. Ma vorrei pubblicare una foto, quindi la sto pubblicando come risposta.

Il microcontrollore (uC) è alimentato con + 3,3 V. Lo scarico del P-MOSFET proposto può arrivare fino a + 4,1 V. Dato che è attualmente disegnato, un segnale logico + 3.3V non sarà in grado di spegnere completamente il P-MOSFET. Q6 nello schema seguente forma un'uscita di drain aperta, che è tollerante a + 4,1 V.

C14 abbassa l'impedenza, che vedrà il tuo A / D.

inserisci qui la descrizione dell'immagine

[...] tensione della batteria (quindi capacità residua)

È possibile che il rilevamento della tensione della batteria non sia un modo preciso di rilevare la capacità residua. Nelle apparecchiature portatili (telefoni cellulari, laptop), la capacità della batteria viene stimata misurando la corrente in entrata e in uscita dalla batteria. Esistono dozzine di circuiti integrati specializzati per la misurazione del livello di carica della batteria ( ad esempio bq27200 ), che aiutano in questo compito.

Perché non un singolo MOSFET a canale N sul lato inferiore e il divisore a due resistori sul lato superiore?
[da un commento qui sotto]

Un interruttore lato basso ha problemi quando la tensione della batteria (V bat ) è maggiore della tensione di alimentazione del microcontrollore (V cc ). Quando l'interruttore del lato inferiore è disattivato, l'estremità di terra del divisore di tensione galleggia, il divisore non si divide più, l'intera tensione della batteria appare sul pin ADC del microcontrollore. Ciò può danneggiare l'UC. Creerà anche un percorso di dispersione attraverso il quale la batteria si scarica.
È richiesto un interruttore high-side quando V bat > V cc .

1 Userò V cc in breve, ma questa discussione si applica a V dd , AV cc , AV dd pure. In caso di dubbi, cercare in una scheda tecnica, ovviamente.


Grazie Nick! Ciò ha senso e ho aggiornato lo schema (l'indicatore del carburante è un'opzione, ma sto anche cercando di imparare alcuni componenti elettronici di base e sperimentare, quindi l'idea del partitore di tensione)
boardbite

Perché non un singolo N Mosfet sul lato inferiore e il divisore a due resistori sul lato superiore? Non riesco a capire perché sia ​​necessario utilizzare un N Mosfet per guidare il P Mosfet
Luis Carlos,

1
@Luis Ho modificato la risposta e ho aggiunto la risposta al tuo commento.
Nick Alexeev

4

Ad.A: Penso che sia abbastanza giusto usare un semplice divisore di tensione per rilevare la tensione della batteria. Tuttavia, dovresti scegliere attentamente la resistenza. L'impedenza interna degli ingressi ADC è di 100 kΩ, secondo la scheda tecnica ATmega328 . Vedere "Figura 23-8. Circuito di ingresso analogico". Se il divisore ha un'impedenza comparabile all'ingresso ADC, i circuiti di ingresso ADC si comporteranno sostanzialmente come un altro nodo nel divisore. Potrebbe darti degli offset nelle letture ADC.

L'uso di un divisore con un massimo di 10kΩ tra le guide sarebbe abbastanza basso da ignorare l'impedenza di ingresso dell'ADC, mentre si utilizzavano solo 410µA. Se questo è troppo per la tua applicazione, puoi ovviamente scegliere resistenze più grandi, ma tieni presente che l'ADC è lì ed è collegato a Vcc / 2.


Questa spiegazione ha senso. Sicuramente 0.4 mA non è poi così tanto! Stavo solo cercando di essere il più idealista possibile :) Hai qualche idea sul perché avere questo divisore potrebbe influenzare la lettura del mio caricabatterie IC se c'è una batteria?
boardbite,

La mia ipotesi sarebbe che ci sia ancora una connessione tra il pin positivo della batteria in cui si trova il divisore e il + 5V dall'USB. Non conosco il tuo circuito particolare, ma sono sicuro che puoi dedurre cosa succede se dai un'occhiata allo schema di Arduino .
Jonny B Good

Sono sicuro che se segui l'idea di Stephenh di usare un FET per connettere / disconnettere il divisore quando necessario, tutto sarà enorme. I MOSFET hanno resistenze completamente trascurabili per il tuo divisore. Avresti forse bisogno di un altro ADC per monitorare se l'USB è collegata o meno.
Jonny B Good

Grazie; Ho aggiornato la domanda in base a due dei suggerimenti e ho aggiunto uno schema. Per quanto riguarda il monitoraggio dell'alimentazione USB, l'IC di ricarica ha già un output di stato anche per questo!
Boardbite
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.