Sida 1 av 1

Batteribackup, RTC, PIC och ADC

Postat: 15 augusti 2009, 23:57:04
av jorgenp
Jag har kopplat upp en krets enligt http://bluto.mine.nu/~jp/koppling.jpg. Det hela ska bli en LED-matris alarmklocka när det blir klart. Jag programmerar med MikroC.

Koden finns här: http://bluto.mine.nu/~jp/matrix.c

Klockan fungerar bra och uppdateras på displayen. Men jag tänkte jag skulle mäta batterinivån på backup-batteriet för RTC'n genom att koppla den till en pinne AD0/RA0 på PIC'en och visa på displayen. Det fungerar också bra och den visar 2.9V vilket stämmer med multimetern.

Men om jag nu startar om mikroprocessorn genom att rycka Vcc och sätta tillbaka den så initieras inte displayen utan visar bara översta raden med fyrkanter. Och det borde ju betyda att displayen inte initieras som den ska.

Om jag däremot rycker batterisladden till AD0 och kopplar in Vcc så startar displayen och visar tiden som det ska. Och sen kan man stoppa dit batterisladden och då visar den spänningen på batteriet ok.

Vad kan jag ha glömt i kopplingen? Eller kan det vara nån CONFIG-bit som spökar? För så klart är det ju jag som gjort nåt tokigt (men jag kan inte hitta vad det kan vara). Det verkar som inte mikroprocessorn (eller displayen) startar som den borde när man har batteriet kopplat till AD0.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 01:37:25
av jesse
OK, nu jobbar jag inte med PIC utan med AVR, och sist jag skrev i en tråd om PIC gjorde jag bort mig, men jag tror ändå att jag vet vad som är fel. AVR och PIC är inte så hemskt olika trots allt.

På varje ingång i processorn finns en backspänd diod till Vcc (Eller?). Det betyder att du får batterispänning - 0.6 volt, dvs. 2.3 volt till Vcc. Kanske lägre om det belastas. Det betyder att processorn inte resetas ordentligt. Kolla om du har nån brown-out funktion du kan aktivera som resettar processorn när spänningen faller från. Alternativt fixa nån yttre koppling till resetpinnen som drar ner den om spänningen går under t.ex. 4 volt.

Detta fixar ju så processorn går igång riktigt. Men då återstår problemet att processorn och all annan lull som drivs på +5V drar ström från backupbatteriet via din AD-ingång. Och det är ju inte bra. Det kanske finns olika lösningar på det? Man kanske kan börja med att begränsa strömmen genom ett >100k motstånd till AD-ingången (kolla att mätvärdet inte påverkas för mycket). Vill man ha ännu mindre strömförbrukning kanske du måste sätta en OP-förstärkare mellan batteriets + pol och AD-ingången. En spänningsföljare. Ingången på OP:n borde väl inte dra nån ström om inte den också har dioder mot + på ingången?

En annan variant är att stoppa strömmen från batteriet till AD-ingången med en MOSFET som styrs av resetsignalen som du fixade ovan.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 08:25:06
av sodjan
Du får inte ha spänningar på I/O pinnar som går mer +/-
rellativt Vdd och Vss än vad databladet specificerar.
Har du det ?

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 11:51:51
av v-g
Sen tycker jag att man normalt inte ska designa så att man använder den interna skyddsdioden, men det kanske bara är jag det.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 12:08:06
av sodjan
Nej, det är inte bara du.
Om skyddsdioden leder så ligger man normalt utanför
"operating specifications", och det finns alltså inga garantier
att allt i processorn fungerar enligt spec.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 12:45:06
av jesse
jo, det var väl vad jag ville ha sagt också, även om det blev onödigt omständigt.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 19:15:31
av jorgenp
Tack för svaren. Jag tittade lite i databladet och spänningen på valfri pinne får skilja sig mellan -0.3V till (VDD + 0.3V) mot jord. Som jag fattar det då kan man koppla in spänningar mellan -0.3V till i mitt fall 5.3V (då min VDD är 5.0V) på valfri pinne (förutom VDD, MCLR och RA4).

När jag använde Brown-outfunktionen som jesse tipsade om resettas processorn ordentligt och det fungerar.
Men precis som ni säger är det ju inte så snyggt. Jag ska göra om och göra rätt och testa de olika förslagen.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 19:21:33
av sodjan
> Som jag fattar det då kan man koppla in spänningar mellan -0.3V till i mitt fall 5.3V

Kollade lite snabbt på ett datablad, och det är enligt "Abs Max Ratings", vilket
du *inte* ska köra efter. Du säger inte var du har hittat dina siffror så
det är lite svårt att veta. Se helt enkelt till att du befinner dig inom Vss - Vdd.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 21:31:35
av jorgenp
Jag hittade det under kapitel 28 ELECTRICAL CHARACTERISTICS i databladet för 18F4550. Och det är precis som du säger absolut max vad kretsen tål innan den eventuellt slutat fungera. Så det ska jag inte överstiga utan hålla mig långt ifrån.

Det jag vill mäta är ett litiumbackupbatteri på 3V så den håller sig normalt inom gränserna där min VDD kommer vara 5V.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 21:41:09
av sodjan
> Och det är precis som du säger absolut max vad kretsen tål innan den eventuellt slutat fungera.

Fel.

Innan den eventuellt permanent *skadas* ! Microchip garanterar att
den inte *tar skada* inom dessa gränser, inte att den *fungerar*, det är
en jäkla skillnad... :-) Det framgår av vad som står i fotnoten på samma sida.

För att den ska fungera enligt övriga specade värden, så ska du hålla
dig inom vad som anges för övrigt i databladet.

Inget konstigt, så är det alltid med "Absolute Maximum Ratings"
från alla tillverkare, det finns inaternationella standards kring det.

Re: Batteribackup, RTC, PIC och ADC

Postat: 16 augusti 2009, 23:13:29
av exile
jorgenp:
Så länge din Vdd är ca 5volt är det inga problem men när stänger av 5volten kommer du överskrida Vdd+0.3 då vdd = 0, 0.3V <2.9volt

troligt får du någon form av SCR latchup, EEVblog 16#