Mäta batteri spänning med Pic16f628A
-
- Inlägg: 72
- Blev medlem: 22 juni 2003, 23:00:56
- Ort: Torsås
Mäta batteri spänning med Pic16f628A
Hej!
Jag har byggt en digital klocka med en PIC16f628A och LCD.
Jag skulle vilja kunna kolla batteri spänningen på något sätt hur?
Alltså om den är under ett visst värde så ska han larma om att det är dags att byta batteri.
Hur gör man detta på ett smart sätt, jag har sett sådana lösningar på någon sida men jag inte hitta det!
MVH
Michaël
Jag har byggt en digital klocka med en PIC16f628A och LCD.
Jag skulle vilja kunna kolla batteri spänningen på något sätt hur?
Alltså om den är under ett visst värde så ska han larma om att det är dags att byta batteri.
Hur gör man detta på ett smart sätt, jag har sett sådana lösningar på någon sida men jag inte hitta det!
MVH
Michaël
Det bästa hade varit om '628 hade en ADC, men så är inte fallet.
Då kunde du bara lagt en spänningdelning över batteripolerna och läst av med ADCn.
'628 har däremot en komparator som du kan dra nytta av. Lägg en (svag) spänningsdelning över batteriet och kalibrera in så att den varnar om nivån är under ett gränsvärde. Du kan t.om. få flera olika status m.h.a. '628ans interna 16-stegs spänningsreferens.
Då kunde du bara lagt en spänningdelning över batteripolerna och läst av med ADCn.
'628 har däremot en komparator som du kan dra nytta av. Lägg en (svag) spänningsdelning över batteriet och kalibrera in så att den varnar om nivån är under ett gränsvärde. Du kan t.om. få flera olika status m.h.a. '628ans interna 16-stegs spänningsreferens.
-
- Inlägg: 72
- Blev medlem: 22 juni 2003, 23:00:56
- Ort: Torsås
-
- Inlägg: 72
- Blev medlem: 22 juni 2003, 23:00:56
- Ort: Torsås
-
- Inlägg: 72
- Blev medlem: 22 juni 2003, 23:00:56
- Ort: Torsås
Du bestämmer själv motstånden.
Det är klart att en spänningsdelare med två 20-ohmare drar slut på batteriet.
Du bör snarare komma upp i Mohm-området för att få en rimlig ström genom din spänningsdelare. Sen bör du lågpassfiltrera med en liten konding för att få bort störningar och stabilisera värdet.
Pass på kondingen, du måste räkna in dess interna resistans i spänningsdelningen. Det är inte lätt att bygga strömsnåla saker!
Det är klart att en spänningsdelare med två 20-ohmare drar slut på batteriet.
Du bör snarare komma upp i Mohm-området för att få en rimlig ström genom din spänningsdelare. Sen bör du lågpassfiltrera med en liten konding för att få bort störningar och stabilisera värdet.
Pass på kondingen, du måste räkna in dess interna resistans i spänningsdelningen. Det är inte lätt att bygga strömsnåla saker!
Du gör en spänningdelare med två motstånd, som har sagt här.
Men det finns flera "problem".
Komparatorernas interna läckström (0.5 uA) kommer att ge stora fel om man använder motstånd i "Mohm-området" till spänningsdelaren.
Man kan ansluta det "nedre" motståndet (det som skulle ha kopplats till jord) till en extra pinne på 628'an. Sedan sätter man pinnen till utgång och "låg" när man skall "mäta" och till "high-Z" annars. Problemet då är att man får 9V (förvisso genom ett motstånd) direkt till PIC pinnen, vilket inte är speciallt bra.
En annan metod är att ha en spänningdelare med motstånd i "Mohm-området" som ger en spänning som buffras i en opamp. Opampen drar en del ström, men den behöver ju inte vara påslagen hela tiden, bara när PICen skall "mäta". Den kan man slå av/på genom att mata den från en PIC pinne. Man får välja en opamp som tål inspänning även när den av avslagen.
Detta att "övervaka" batterispänningen är en vanlig fråga, leta efter "nanoWatt" på www.microchip.com så hittar du flera dokument som handlar om att bygga strömsnåla prylar.
Ytterligare en sak är ju också att skriva sin kod så att den blir så strömsnål som möjligt, t.ex att inte "köra" processorn i onödan eller onödigt fort. Det förlänger ju även batterilivslängden, vilket ju inte övervakningen i sig gör...
För övrigt är inte F628 helt optimal när det gäller att "köra snålt", någon av processorerna där man dynamsikt från koden kan "växla ner" för att spara effekt är bättre på detta.
Men det finns flera "problem".
Komparatorernas interna läckström (0.5 uA) kommer att ge stora fel om man använder motstånd i "Mohm-området" till spänningsdelaren.
Man kan ansluta det "nedre" motståndet (det som skulle ha kopplats till jord) till en extra pinne på 628'an. Sedan sätter man pinnen till utgång och "låg" när man skall "mäta" och till "high-Z" annars. Problemet då är att man får 9V (förvisso genom ett motstånd) direkt till PIC pinnen, vilket inte är speciallt bra.
En annan metod är att ha en spänningdelare med motstånd i "Mohm-området" som ger en spänning som buffras i en opamp. Opampen drar en del ström, men den behöver ju inte vara påslagen hela tiden, bara när PICen skall "mäta". Den kan man slå av/på genom att mata den från en PIC pinne. Man får välja en opamp som tål inspänning även när den av avslagen.
Detta att "övervaka" batterispänningen är en vanlig fråga, leta efter "nanoWatt" på www.microchip.com så hittar du flera dokument som handlar om att bygga strömsnåla prylar.
Ytterligare en sak är ju också att skriva sin kod så att den blir så strömsnål som möjligt, t.ex att inte "köra" processorn i onödan eller onödigt fort. Det förlänger ju även batterilivslängden, vilket ju inte övervakningen i sig gör...

För övrigt är inte F628 helt optimal när det gäller att "köra snålt", någon av processorerna där man dynamsikt från koden kan "växla ner" för att spara effekt är bättre på detta.
Bara en liten detalj: 9 V kommer inte att ligga på PICens I/O om man sätter den i tri-state med spänningsdelaren. De interna klamp-dioderna kommer hålla spänningen strax över matningspänningen på PICen (5 V?), så reseterande (4 V) kommer fortfarande att ligga över motståndet i spänningsdelningen. Men man har åtminstone halverat effektförbrukningen.
Nej, inte *den* pinnen, utan komp ingången !
(Eller förretsen, *båda* pinnarna, med olika mycket resistans mellan 9V och pinnen...)
Komp-ingången kommer att vara ansluten till 9V via ett motstånd, eller ?
Klampdioderna skall *aldrig* användas *medvetet* i en design, de finns där som ett sista skydd, ungefär som en "propp" ifall någon omogen unge får för sig att bygga en "Poff"...
Det finns data i databladet hur mycket man kan överskrida Vdd på en ingång, jag tror att det brukar vara Vdd + 0.3V eller liknande.
Med en snabb schottky med låg back-läckström, kan man i och för sig fixa detta. Man måste bara kolla eventuella nya läckströmmar som dels kan dra ur batteriet, dels kan störa "mätningen" med komparatorn.
Jo, jag vet att det finns lösningar där man lägger 220 V via ett 10 Mohms motstånd direkt in på en pinne, men men... Så ska man inte göra.
Jag tror att en extern opamp som PICen sätter på/av (genom att mata den direkt från en pinne) är den snyggaste lösningen.
Samt, så klart (och kanske viktigast !) att skriva koden så strömsnålt som möjligt !
(Eller förretsen, *båda* pinnarna, med olika mycket resistans mellan 9V och pinnen...)
Komp-ingången kommer att vara ansluten till 9V via ett motstånd, eller ?
Klampdioderna skall *aldrig* användas *medvetet* i en design, de finns där som ett sista skydd, ungefär som en "propp" ifall någon omogen unge får för sig att bygga en "Poff"...

Det finns data i databladet hur mycket man kan överskrida Vdd på en ingång, jag tror att det brukar vara Vdd + 0.3V eller liknande.
Med en snabb schottky med låg back-läckström, kan man i och för sig fixa detta. Man måste bara kolla eventuella nya läckströmmar som dels kan dra ur batteriet, dels kan störa "mätningen" med komparatorn.
Jo, jag vet att det finns lösningar där man lägger 220 V via ett 10 Mohms motstånd direkt in på en pinne, men men... Så ska man inte göra.
Jag tror att en extern opamp som PICen sätter på/av (genom att mata den direkt från en pinne) är den snyggaste lösningen.
Samt, så klart (och kanske viktigast !) att skriva koden så strömsnålt som möjligt !
"Jo, jag vet att det finns lösningar där man lägger 220 V via ett 10 Mohms motstånd direkt in på en pinne, men men... Så ska man inte göra."
Det går visst alldeles utmärkt. Microship rekommenderar själv detta i sina appnotes. Så länge man har koll på vilken ström det gäller tycker jag det är helt åkej att dra nytta av klamp-dioderna.
Det går visst alldeles utmärkt. Microship rekommenderar själv detta i sina appnotes. Så länge man har koll på vilken ström det gäller tycker jag det är helt åkej att dra nytta av klamp-dioderna.
Ja sa inte att det inte *kan* fungera under en tid, jag sa att man inte *ska* göra så. 
Felen/misstagen i MC's appnotes är oräknerliga.
Just detta "misstag" är välkänt och är en riktigt fuling.
Hur som helst, det är respektive datablad till varje PIC modell som gäller.
I t.ex det för F628A står det under "Absolute Maximum Ratings" :
"Voltage on all other pins with respect to VSS .......-0.3V to VDD + 0.3V"
Och som en note under "Absolute Maximum Ratings" står det :
"Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions above those indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability."
Och under normal drift ("Standard Operating Conditions" i databladen), gäller att Vdd inte ska överskridas alls.
Klampdioderna är skydd för extremfall och ska inte användas under normal drift.
För detektering av nollgenomångar finns det utmärkta AC-optokopplare som fungerar utmärkt till just det.

Felen/misstagen i MC's appnotes är oräknerliga.
Just detta "misstag" är välkänt och är en riktigt fuling.
Hur som helst, det är respektive datablad till varje PIC modell som gäller.
I t.ex det för F628A står det under "Absolute Maximum Ratings" :
"Voltage on all other pins with respect to VSS .......-0.3V to VDD + 0.3V"
Och som en note under "Absolute Maximum Ratings" står det :
"Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions above those indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability."
Och under normal drift ("Standard Operating Conditions" i databladen), gäller att Vdd inte ska överskridas alls.
Klampdioderna är skydd för extremfall och ska inte användas under normal drift.
För detektering av nollgenomångar finns det utmärkta AC-optokopplare som fungerar utmärkt till just det.