Pagina 1 di 1

Rilevazione tensione batteria

MessaggioInviato: 14 ago 2013, 13:45
da matteoDL
Devo rilevare la tensione di una batteria usando l'ADC di un PIC micro. Il PIC in questione è un 18f26j50 e sto effettuando la misurazione sul pin RA5. Lo stesso pin è anche collegato internamente al modulo HLVD (High Low Voltage Detection) che mi fa scattare un interrupt quando la tensione scende sotto gli 1,2V e mi è utile per mandare rapidamente il dispositivo in Deep Sleep allo scopo di ridurre i consumi.
Per risparmiare pin mi è comodo quindi usare lo stesso per entrambi i moduli.
La soluzione adotta ora è questa:

cioè un semplice partitore e tutto funziona bene, infatti non ho postato la domanda nella sezione microcontrollori poiché è un problema strettamente elettronico.
Il rapporto delle resistenze è stato così scelte poiché la tensione sul pin non deve superare i 3,3V e non deve scendere sotto gli 1.2V quando la batteria è attaccata. La batteria può avere una tensione compresa tra 13V e 7V risultando quindi sul pin in una tensione tra poco più di 1.20 a 2.24 circa.
Il fatto è che questa soluzione mi porta ad avere un consumo statico piuttosto fastidioso (fino a 4,3mA). La scelta delle resistenze è dovuta alla richiesta del datasheet di non avere possibilmente un'impedenza del generatore equivalente al circuito esterno maggiore di 2,5k\Omega.
Quale altra soluzione potrei adottare? È giusto calcolare la resistenza equivalente come il rapporto tra la tensione della batteria e la corrente di cortocircuito (portando il pin a massa)?
Pensavo di mettere un condensatore esterno sul pin, anche se in teoria non abbassa l'impedenza equivalente aiuta comunque a caricare il condensatore interno.

Forse il limite di 2,5k\Omega può essere aggirato conoscendo il circuito interno?
ADC.jpg
ADC.jpg (53.13 KiB) Osservato 7865 volte

Re: Rilevazione tensione batteria

MessaggioInviato: 14 ago 2013, 14:49
da boiler
Sarei pronto a scommettere mezza birra (sì, sono tirchio) che il limite è scelto in modo che il condensatore C_hold si carichi/scarichi in modo sufficientemente rapido (dipende dal sampling rate dell'ADC). Dato che la tensione che vuoi misurare tu è DC, un condensatorino, come dici, risolverebbe il problema.

Ciao Boiler

Re: Rilevazione tensione batteria

MessaggioInviato: 14 ago 2013, 15:11
da carloc
matteoDL ha scritto:È giusto calcolare la resistenza equivalente come il rapporto tra la tensione della batteria e la corrente di cortocircuito (portando il pin a massa)?
Pensavo di mettere un condensatore esterno sul pin, anche se in teoria non abbassa l'impedenza equivalente aiuta comunque a caricare il condensatore interno.


No non giusto :( però la buona notizia è che farlo nella maniera giusta ti porta numeri più favorevoli :D

La resistenza equivalente vista è il parallelo tra le due R del partitore, quindi in pratica puoi aumentare le resistenze di circa 5 volte con conseguente miglioramento su tutti i fronti.

Il condensatore in parallelo è poi un'ottima idea :ok: che in effetti come dice Foto Utenteboiler una parte del problema è caricare il condensatore del S/H interno velocemente.
Però c'è anche l'aspetto della corrente di leackage rappresentata nello schema equivalente dell'ADC. Quei +/-100nA producono una caduta nella resistenza equivalente vista.

Con i 2,5kΩ consigliati si avrebbero al più Vos=2,5kΩ x 100nA= 250μV cioè se l'ADC avesse 12bit avresti un LSB di errore con fondo scala (cioè Vref) pari circa Vref=250μV x 4096= 1V (circa)

Ora vedi un po' tu ma direi che se:

i) ti accontenti un po'
ii) usi un riferimento più elevato
iii) magari il range di temperatura di utilizzo è un po' "rilassato"

se tutti i se qui sopra potresti anche aumentare un po' la specifica sulla resistenza vista e diminuire ulteriormente il consumo statico del partitore.

Altrimenti ci va un buffer ad opamp :D Ma occhio alle sue derive ed offset che rischi di far peggio :shock:

Re: Rilevazione tensione batteria

MessaggioInviato: 14 ago 2013, 16:50
da matteoDL
carloc ha scritto:La resistenza equivalente vista è il parallelo tra le due R del partitore, quindi in pratica puoi aumentare le resistenze di circa 5 volte con conseguente miglioramento su tutti i fronti.


Perfetto grazie, non so perché mi sia venuto in mente quel modo che in effetti è sbagliato.
Portando il generatore a zero e misurando l'impedenza ai capi capisco anche perché il condensatore aiuti, visto che ora rientra nell'equazione.
Con il nuovo calcolo (quello giusto) e volendo mantenere circa lo stesso rapporto posso scegliere una resistenza da 12k e l'altra da 2,7k. In questo ora scatta sotto ai 6,5V e diventa dannoso sopra i 18V ma mi va bene comunque. La resistenza equivalente è ora circa 2,2k e rispetta quindi le specifiche. Il consumo scende a meno di un 1mA alimentando a 13V che è già più accettabile.
Il condensatore posso lasciarlo stare avendo così una velocità di risposta maggiore.
Sapendo che il tempo di acquisizione è di 26,6us e l'errore massimo tollerato è +/-5mV, considerando di poter regolare via software l'errore fisso dovuto ai 100nA, si potrebbe osare oltre, ma non avendo informazioni sul comparatore usato dal HLVD preferisco fermarmi qui e accontentarmi. Grazie delle dritte!

Re: Rilevazione tensione batteria

MessaggioInviato: 15 ago 2013, 16:36
da marioursino
Ciao matteo, io avevo lo stesso problema con il temporizzatore della reflex, ho usato un partitore da qualche mega-ohm (sono da cell e non ho i simboli) con una buona capacità da punto centrale e massa. Il sistema è però sempre meno reattivo e forse a te non va bene perché lo usi per non scaricare la batteria bottone e avresti un ritardo troppo grande.

Re: Rilevazione tensione batteria

MessaggioInviato: 15 ago 2013, 23:38
da matteoDL
Si esatto mi va meglio evitare il condensatore se possibile. Consumare poco meno di 1mA quando la batteria principale è attaccata è anche accettabile ma qualche ms in più con solo la batteria tampone che alimenta tutto a pieno regime è disastroso.

Re: Rilevazione tensione batteria

MessaggioInviato: 16 ago 2013, 1:29
da marioursino
In realtà per evitare del tutto il problema campionavo usando un mosfet in low side, ma avevo un pic12 e potevo anche sprecare un pin tanto non mi serviva.


Re: Rilevazione tensione batteria

MessaggioInviato: 16 ago 2013, 7:47
da IsidoroKZ
Direi che non vada bene perche' quando apri il MOS per non consumare corrente, la tensione di ingresso al micro prova ad andare al valore della batteria, e il micro potrebbe non essere contento.