Sida 1 av 2

Mäta 40-60V med uC, hög upplösning, opamp?

Postat: 27 november 2008, 11:35:53
av gunne
Jag vill mäta 40-60V med en Attiny26 som har 10bitars AD-omvandlare. Jag har kopplat upp det med enkel spänningsdelning och det funkar ju, men precisionen blir inte den bästa.

Nu spänningsdelar jag ju ner 0-60V till 0-3,3V men jag förlorar ju mkt upplösning då jag inte är intresserad av 0-40V. Om jag istället kan skala ner 0-60V till 0-10V och därefter dra av 6,67V så har jag ju 0-3,3V som motsvarar 40-60V. Detta ger då en upplösning på 20V/1024 = 0,019V ~ 20mV.

Jag har funderat lite på följande krets med en opamp dom difförstärkare med förstärkning 0.

Bild

Kommer den fungera som jag vill? Hur är det med zenerdioden och små strömmar egentligen? Jag vill minimera strömförbrukningen då det är batteriövervakning det handlar om. Man kanske ska använda vanlig spänningsdelning istället för zener oxå?

Postat: 27 november 2008, 11:50:38
av Micke_s
Annars så finns det differentialsteg i adc:n
dela ner så spänningen så den går mellan 0-3.3v
och mata ena benet med 2.1v med en annan späningsdelare.

då får du en skillnad på 1.2v vid 60v och 0 skillnad vid <38.2v vid 1x förstärkning.

Häng på en extern referense på 1.2v eller så så kan du använda hela området. ex 73-267-18. (in på ADC:ns AREF då).


Då slipper du en op-amp och klarar dig på 2 spänningsdelare och 1 spänningsreferense.

för få 1.2v och 2.1v mer exakt så skulle du kunna dela ner spänningen från en 2.5v spänningsreferense och motstånd med lågt fel.

Postat: 27 november 2008, 11:53:10
av Icecap
Använd aldrig en zenerdiod som referens! Den är temperaturberoende, den "väsnas" och det är inget bra till detta!

Du behöver t.ex. en LM385 eller liknande, sedan är du på rätt spår.

Tänk på att du behöver en Rail-2-Rail op-amp med låg offset och/eller offsetjustering.

Och med en förstärkning på 0 kan du likaväl koppla AD-ingången till GND... eller menar du 1 gg?

Postat: 27 november 2008, 11:58:30
av gunne
Eehh.. Jo 1 menade jag nog. :lol:

Men som Micke_s säger så kan jag ju göra det i tinyn istället. av nån anledning tänkte jag inte på att det fanns differentialsteg på den. Det är ju enklare! Jag har ett par pinnar över så det är ju inga problem att "offra" en till.

Jag ska rita ett nytt kretsschema och återkommer med resultat...

Postat: 27 november 2008, 12:24:59
av gunne
Kom på en fråga till.

Nu skissar jag på att spänningsdela ner en referens på 2,2V från 3,3V. Detta ger då att jag mäter mellan 2,2-3,3V och på så sätt får 10bitar mellan 40-60V enligt ovan.

Nu till frågan: Jag bör väl ta AVCC och AGND till detta eller hur? De skall ju vara avkopplade osv. Bör jag även spänningsdela ner 60V till AGND istället för GND? Eller ska jag ha båda ner till vanliga GND?

Det är första gången jag har separat AGND och GND på ett kort så jag är inte så haj på det...

Postat: 27 november 2008, 12:40:45
av Micke_s
Om jag inte har helt fel så är AGND och GND ihopknytna i attiny:n.
Däremot så kan du ha de separata på kortet och inte blanda ihop analoga och digitalt och en spole mellan eller så.

Postat: 27 november 2008, 15:44:49
av gunne
En kompis trodde att Tinyn kanske inte gillade att ha så hög common-mode-spänning som 2V men i databladet står inget om det. Jag har inte möjlighet att testa själv just nu. Är det nån som använt så höga spänningar till diffsteget som kan verifiera om det funkar?

Sen förstår jag inte vad jag ska ha 1,2V-spänningsreferensen på AREF till?

Postat: 27 november 2008, 16:01:48
av Schnegelwerfer
Spänningsreferensen är bra att ha om du t.ex. ska mäta något oberoende av matningsspänningen in till uC:n. Ett exempel är att mäta inspänningen till uC:n själv... det går ju inte om du har VCC som AD-referens.

Med ett par OP-ampar kan du trixa till insignalen till vad du vill... du kan tex få bort offseten så du kan utnyttja AD-omvandlarens hela spann, dvs få 40-60V att representera t.ex 0,2-4,8V in till AD-omvandlaren.

Vad är det för spänning du ska mäta?

Postat: 27 november 2008, 16:32:49
av gunne
Det handlar om fyra seriekopplade blybatterier till min båtelmotor. Jag vill kunna bestämma laddningsgraden (SOC) och håller just nu på att konstruera ett system som mäter spänning, ström och temperatur så bra som möjligt (inom rimliga gränser).

Postat: 3 december 2008, 15:10:59
av gunne
Nu har jag ritat lite schema på det.

Bild

R45 och R44 tar ner spänningen till 3,3V. Sen delar R43 och R2 ner en referens på 2,2V.
Jag slängde in två kondingar över de "lägre" motstånden för att filtrera signalen lite. Det kanske inte spelar så stor roll men jag kan ju alltid skippa att löda dit kondingarna först och sen göra det vid behov.

Postat: 3 december 2008, 15:38:59
av Micke_s
Du ska väl lägga 1.2v på AREF pinnen också?? annars så kan du inte utnyttja hela områden på ad:n

Postat: 3 december 2008, 15:42:26
av eqlazer
Det kan nog vara en god ide att sätta dit ett överspänningsskydd också. Tråkigt om det kommer en spik och dödar din AVR.

Postat: 3 december 2008, 20:23:26
av gunne
Micke_s:
Jag måste säga att jag fortfarande inte förstår vad jag ska ha 1,2V på AREF till. Kan du förklara som om jag vore en bebis? :lol:

Jag ska nog använda Attiny861 istället (mer minne, annarsi princip samma) och på sid 154 i databladet hittar man: "The internal voltage reference options may not
be used if an external voltage is being applied to the AREF pin."

I mitt schema sitter en konding från AREF till GND för att avkoppla den interna spänningsreferensen på 2,56V. Då kan jag i mjukvara välja mellan VCC och 2,56 V som referens.

eqlazer:
Det låter ju bra. Hur skulle ett sånt överspänningsskydd se ut?

Postat: 3 december 2008, 21:06:17
av Micke_s
AD:n har 1024 bitar mellan 0v och AREF.
standard så används 5v som AREF.
så 1024 bitar mellan 0 och 5v ger ~0,0049v/bit
med AREF på 1.2v så får du ~0,00117
vilket ger ca 4ggr bättre upplösning på det området du mäter.

Postat: 3 december 2008, 21:59:39
av jesse
dessutom är troligtvis den interna AREF stabilare än din matningsspänning.

(Din första ritning med OP-förstärkaren funkar inte så bra. titta på din spänningsdelare - 250K/50K .... men du har ju lagt 20kΩ parallellt med 50k motståndet... inte bra.)