Hur mäta matningsspänningen till en PIC?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Hur mäta matningsspänningen till en PIC?

Inlägg av Earendil »

I min mp3-spelare vill jag förstås gärna kunna se (ungefär) vilken nivå batterispänningen (Vdd) ligger på. Min spontana idé var att koppla Vdd direkt in till AN0 på min PIC 18F25J10 och använda dess interna spänningsreferens för AD-omvandlaren. Sen kom jag på att PIC:en har ju inget annat än Vdd självt att jämföra med... :?

På yampp-7 ser det ut att vara gjort ungefär på det sättet, men den är baserad på en AVR som jag inte känner till.

Någon som har en enkel lösning på detta? Har inte hittat någon app note hos Microchip...
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ta en 2,5V ref och mata in på en AD-ingång, när VDD ändrar sig neråt blir det avlästa värde högre.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Spänningsdela Vdd mot en ledig I/O (utgång, låg) och mät med ledig AD-pinne. Mät i korta perioder lagom sällan, när du inte mäter, sätt I/O-pinnen som ingång (och stäng av ADn om den inte används tilll annat, allt för att spara på energin).
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Kor med den inbyggda Vref'en och en komparator istället.
Dela ner Vdd så att det hamnar på en passande nivå för vald
nivå på Vref.

> Spänningsdela Vdd mot en ledig I/O (utgång, låg) och mät med ledig AD-pinne.

Hur hjälper det ? Utan annan Vref för ADC'n än just Vdd ?
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

Icecap skrev:Ta en 2,5V ref och mata in på en AD-ingång, när VDD ändrar sig neråt blir det avlästa värde högre.
Jag var inne på något sådant, men hur bygger man enkelt en sådan referens som drar lite ström? Duger en zenerdiod? Jag är dålig på sånt här... :-)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> men hur bygger man enkelt en sådan referens

Man "bygger" dom inte, man skaffar en färdig.
Du får aldrig samma stabilitet med en enkel zener...

http://www.tradera.com/auction/auction. ... d=37280329
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

sodjan skrev:Kor med den inbyggda Vref'en och en komparator istället.
Dela ner Vdd så att det hamnar på en passande nivå för vald
nivå på Vref.
Men den inbyggda Vref'en baseras så vitt jag kan se enbart på en 16-stegs spänningsdelare mellan Vref+ och Vref- (eller Vdd och GND) så då måste jag ju ändå tillhandahålla någon extern spänning på t.ex Vref+. Eller missförstår jag databladet?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ah, shit, så är det ja !
Ja ja, då *måste* det till en extern ref.
Den kan däremot köras in till Vref-modulen för att
få andra spänningar än (t.ex) 2.5V...
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Vad jag menar är att man kan ta t.ex. en LM 385-1,2 och strömförsörja den (se datablad) via en portpinne (= tar inget ström inaktiv). Sen när man ska kolla slår man på portpinnen, låter den stabilisera sig och sedan gör en AD-mätning. Vad man EGENTLIGEN mätar är Vref mot en fast spänning, alltså är spänningen man mätar fast och Vref ändrar sig beroende på batterispänningen.

Högre mätt värde = lägre batterispänning. Sedan får man räkna lite för att veta vad som är vad men det är inte så farligt.

Om Vref är 5V, Vad är 1,2V och det är 10 bit ska svaret bli (runt) 206, är Vref 4V ska den mäta 307 på AD-ingången.
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

Ok, tack för hjälpen allihop! Sodjan och Icecap, ni har nog en bra lösning. Bra förstås att kunna stänga av kretsen, men jag tror inte jag har råd att lägga en pinne på det. Verkar inte som om spänningsreferenserna drar mer än några 10-tal µA, och det är väldigt lite jämfört med MP3-dekodern... Som för övrigt är en VS1011 från Vlsi Oy.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

sodjan skrev:> Spänningsdela Vdd mot en ledig I/O (utgång, låg) och mät med ledig AD-pinne.

Hur hjälper det ? Utan annan Vref för ADC'n än just Vdd ?
Jag förutsatte att det fanns en intern Vref man kunde mäta mot.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag förutsatte att det fanns en intern Vref man kunde mäta mot.

Gjorde jag också... :-)
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

Hehe! Min gissning är att det finns en sådan på ATMega 161 eftersom den används i yampp-7... :-) Hur som helst så blir det nog en baggis att använda en extern referens (liten SOT23-kapsel och inte alls dyr) in på AN0, så ni har löst mitt problem i alla fall! :tumupp:
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Finns det någon PIC som har inbyggd absolut Vref till ADC, eller är planerat att komma en sådan inom rimlig tid?
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Inlägg av BEEP »

Kan man inte köra 18F25J10 på 2 volt och spänningsdela Vdd som $tiff föreslog?

Edit:
Men då får man problem med att anpassa övrig elektronik till 2 volt så det där var ingen bra ide :(
Skriv svar