Atmega8 - Spannung genau Messen - Schaltplan

OP #2561800
Lesenswert?

Hallo Mikrocontroller Forum,

ich möchte Spannungen im Bereich von 5/10/15V möglichst sehr genau mit 
einem Atmega8 messen. Die Software bereitet mir keine Probleme!

Nur Schaltungstechnisch würde ich mich über Hilfe freuen!
Im Anhang habe ich meinen ersten Versuch hinterlegt.

Bin ich auf dem richtigen Wege? Könnt Ihr mir vielleicht ein paar
Tipps geben? Oder einen Beispiel Schaltplan empfehlen!

Für den Ausgang (ADC0) habe ich noch keine genaue Vorstellung.
Ich habe einiges über Spannungsteiler gelesen und ausprobiert. Ist das 
der richtige Ansatz für eine sehr genaue Messung oder sollte ich in 
Richtung Operationsverstärker suchen.

Würdet Ihr für das Vorhaben die interne Referenzspannung von 2.56V 
verwenden?

Vielen Dank für die Hilfe!

Mit freundlichen Grüßen
Christian
Angehängte Dateien:
Gast #2561823
Lesenswert?

Messbereich per Software umschaltbar oder nur per Bestückungsoption?

Über die Eignung der internen Referenz bitte das Datenblatt lesen 
(reference voltage, DC Charcacteristics) und selber abschätzen. Kommt 
nämlich auf den Anspruch an.
OP #2561836
Lesenswert?

Hallo Michael, Hallo Harald,

vielen Dank für die schnelle Hilfe! Du hast recht, ein Eingang,
ich habe mich verschrieben :O)

Eine Genauigkeit von +/- 5mV das ist im Moment mein Ziel.

Ich würde gerne den Messbereich per Software umschalten, aber nur wenn 
es der Genauigkeit nicht schadet.

Mit freudichen Grüßen
Christian
Gast #2561845
Lesenswert?

Christian H. schrieb:
> Bin ich auf dem richtigen Wege?
Ja

> Ist das der richtige Ansatz für eine sehr genaue Messung oder sollte ich in
> Richtung Operationsverstärker suchen.
Idealerweise beide, hochohmig mit Spannungsteiler messen, niederohmig 
mit OPV dem ADC zuführen.

> Würdet Ihr für das Vorhaben die interne Referenzspannung von 2.56V
> verwenden?
Selbstverständlich

Viele Grüße,
Ingo
OP #2561859
Lesenswert?

Hallo Thomas, Hallo Ingo,

habe mir die Werte für die Interne Referenzspannung angesschaut!
VINT Internal Voltage Reference:  2.3V - 2.56V - 2.9V

Nach meinem Verständnis isr die Tollerenz für eine Messung +/- 5mV doch 
zu groß oder?

Ich möchte den Spannungsverauf einer Batterie messen! Und möglichst 
wenig die Batterie durch die Schaltung belasten. Ist damit dann 
"niederohmig mit OPV dem ADC zuführen" zu verstehen?

Tut mir leid! Mehr Angaben zur Genauigkeit:

Im 5V  Bereich  -> Messe ich eine Zelle     2,0 V  +/- 5mv
Im 10V Bereich  -> Messe ich eine Batterie  6,0 V  +/- 15mv
Im 15V Bereich  -> Messe ich eine Batterie 12,0 V  +/- 30mv

Mit freundlichen Grüßen
Christian
OP #2561875
Lesenswert?

Hallo Thomas,

vielen Dank für Deine Hilfe!
Meinst Du damit mehrere Messungen machen und dann den Mittelwert 
berechnen?

Im Moment mache ich 100 Messungen und berechne dann den Mittelwert.
Ist das Sinnvoll? Die Spannung ändert sich nicht so schnell. Genaue 
Angaben kann ich da aber nicht machen denke alle 10Sekunden.

Mir geht es im Moment erst einmal um die Hardware!
Ich möchte möglichst viele Messfehler mit der richtigen Beschaltung 
beseitigen.

Mit freundlichen Grüßen
Christian
Gast #2561930
Lesenswert?

> Eine Genauigkeit von +/- 5mV das ist im Moment mein Ziel.

D.h. auch das letzte bit des A/D-Wandlers soll exakt sein.
Sei so gut und guch EIN MAL ins Datenblatt des Atmega8:
Absolute accuracy 1.75 bit.
Deine Anforderung kannst du also vergessen, schon der Atmega8
alleine ist um 8.5mV ungenau.
Selbst wenn du dich mit 10mV zufrieden gibst:
Dann müssen eine 5V die du in ARef reinsteckst auf 2.5V genua
sein, also auf 0.5 Promille.
Hast du in deinem leben auch nur ein mal in eine Datnblatt
beispielsweise eines uA7805 geguckt ? Die reden da von Prozent,
nicht von Promille.

> Würdet Ihr für das Vorhaben die interne Referenzspannung
> von 2.56V verwenden?

EIn Blick ins Datenblatt sagt, daß das zwischen 2.3 und 2.9V
sein können. Wieviel genau müsste man messen. Immerhin ist
die Spannung dann, nach em messen, um das 1000-fache STABILER
als die Spannung die aus einem 7805 rauskommt. Die ein mal
gemessenen stimmen also auch morgen noch, was bei 5V nicht der
Fall ist.

> ich möchte Spannungen im Bereich von 5/10/15V möglichst
> sehr genau mit einem Atmega8 messen.

Ich sehe in deinem nicht vorhandenen Schaltplan keinerlei
Vorkehrungen für das Messen solcher Spannungen.


Messeingang ---20k---+--------| A/D Eingang des ATmega8
                     |
                     +--10k---| Low bei 15V/10V sonst Eingang
                     |
                     +--10k---| Low bei 10V sonst Eingang
                     |
                    20k
                     |
                    GND

würde zumindest eine Umschaltbarkeit des Eingang von
15V/10V/5V auf 2.5V ermöglichen.
Eine auf 0.5% präzise Quelle für 2.5A die man an ARef
anlegen kann, müsste man dann aber noch kaufen:
REF5050I-1.5 könnte gerade eben reichen.
OP #2561955
Lesenswert?

Hallo MaWin,

das hört sich aber ruppig an :O) Vielen Dank für Deine ausführliche 
Hilfe. Es hat mir die Augen geöffnet! Du hast recht ich habe noch nicht 
viele Datenblätter von elektronischen Bauteilen gelesen.

Ich komme aus der Programmierung und wage mich an mein erstes Hardware 
Projekt! Die ersten Test laufen eigendlich schon ganz gut!

Verstehe ich das jetzt richtig? Den REF5050I-1.5 als externe 
Referenzspannung?

Danke noch mal MaWin!

Mit freundlichen Grüßen
Christian
Gast #2561967
Lesenswert?

Ingo schrieb:
>> Würdet Ihr für das Vorhaben die interne Referenzspannung von 2.56V
>> verwenden?
> Selbstverständlich
Das ist natürlich Unsinn meinerseits. Die interne taugt allenfalls zum 
schätzen. Nimm ne anständige Referenz.

Christian H. schrieb:
> Im Moment mache ich 100 Messungen und berechne dann den Mittelwert.
> Ist das Sinnvoll?
Durchaus, so bekommste das Rauschen raus.

> Genaue Angaben kann ich da aber nicht machen denke alle 10Sekunden.
Wenn du sagen wir mal mir 1kHz abtastest, hast du immer nach 100ms einen 
gemittelten Wert. Dieser ist schon sehr genau denk ich mal.

> Ich möchte möglichst viele Messfehler mit der richtigen Beschaltung
> beseitigen.
Das Layout spielt hier auch ne große Rolle. Schaltregler und alles was 
stört isolieren oder ganz drauf verzichten. Zusehen dann du ne 
Massefläche um den ADC aufbaust. Ruhig die Noise-Reduction des ADC 
verwenden (hab ich noch nie gemacht).

MaWin schrieb:
> Selbst wenn du dich mit 10mV zufrieden gibst:
Der TE hat denk ich noch keinerlei praktische Erfahrungen mit solchen
Werten. Warum zur Hölle sollte man eine Batterie mit 5mV Genauigkeit 
messen können sollen, wenn als Grundlage ein AVR für ~5€ zu Grunde 
liegt.
Tippe auf Informatiker ohne echten Praxisbezug.


Ingo
Gast #2561970
Lesenswert?

> Den REF5050I-1.5 als externe Referenzspannung?

Im Prinzip ja aber ich wollte 2.5 schreiben.

> das hört sich aber ruppig an

Was soll man mit Leuten machen, die noch keinerlei Eigeninitiative 
gezeigt haben ? Man muß ihnen in den Arsch treten.

> Ich komme aus der Programmierung

Na immerhin, dann wirst du sicher alle Hinweise im Datenblatt des ATmega 
zur störungsfreien A/D-Messung berücksichtigen.
#2562020
Lesenswert?

ja ich meinte z.B. Einflüsse wie Rauschen auszublenden. Das Delta U das 
man erkennen muss liegt ja meist um die 10-20mV. Die interne Referenz 
als auch die Spannungsversorgung wird zwar nicht sehr genau sein aber 
die Schwankungen sind nicht so stark wie es hier dargestellt wird. Man 
bewegt den Lader ja nicht aus der 22°C warmen Wohnung mit dem 
Verlängerungskabel nach draußen wo es plötzlich nur noch 5°C hat.

Hast du ein Oszi um das verhalten deines Laders zu prüfen, also 
Ladekurve darstellen und sehen ob der Lader abschalten wenn der Peak 
nach unten auftritt?
OP #2562036
Lesenswert?

Hallo Thomas,

leider habe ich im Moment kein Oszi! Aber das ändert sich bald...

So erweitere ich jetzt meine Schaltung:
-----------------------------------------------
- externe Referenz MAX6325CSA+
- externen LTC 1298 CN8 12Bit A/D-Wandler

Jezt bin ich nur noch nicht ganz sicher wie ich den Eingang beschalten 
soll.
Das verstehe ich nicht nicht wirklich!

- hochohmig mit Spannungsteiler (Messwiderstände auf 0,1%) messen,
- niederohmig mit OPV dem ADC zuführen.

Mit freundlichen Grüßen
Christian
Gast #2562047
Lesenswert?

> Das verstehe ich nicht nicht wirklich!
> - hochohmig mit Spannungsteiler (Messwiderstände auf 0,1%) messen,
> - niederohmig mit OPV dem ADC zuführen.

Du musst halt einfach mal Datenblätter lesen,
da steht dann schon drin bei welcher Quellimpedanz der A/D-Wandler noch 
genau ist bzw bei welcher Belastung ein Akku 5mV in der Spannung 
einbricht.
Gast #2562053
Lesenswert?

Mit den externen ADCs kenn Ich mich leider nicht aus, daher kann ich dir 
keinen empfehlen. Grundsätzlich führst du die zu messende Grösse dem ADC 
zu, über OPV. Dann holst du den Wert vom ADC ab über die SPI(?) 
Schnittstelle. Mal doch mal n Schaltplan.


Ingo
OP #2562067
Lesenswert?

Hallo Ingo,

ich erweitere gerade meinen Schaltplan!
Ist schon einiges dazugekommen.

Wie sieht so eine Verschaltung eines OPV aus.
Versuche mich gerade eiwenig einzulesen.

- Grundsätzlich führst du die zu messende Grösse
  dem ADC zu, über OPV

Fällt mir wirklich nicht leicht die richtigen
Infos zusammenzufügen. Ich muss viele Begriffe
(z.B. Quellimpedanz) erst nachschalgen...

Habe heute Abend schon einiges dazugelernt.
Vielen Dank!

Eine stabile Spannungsversorgung benötige ich naürlich
auch noch 7805 wird es denke ich auch nicht sein oder?

Mit freundlichen Grüßen
Christian
#2562077
Lesenswert?

Schau dir mal ein Datenblatt einer Referenzdiode bei Reichelt an z.b. 
LM336-Z2,5 (0,21€). Außerdem kann man dem ADC einen kleines RC-Filter 
vorsetzen so das die "hohe" Eingangsimpedanz nicht die Batterie in die 
Knie zwingt.

Aber soetwas kannst du alles mit dem Oszi besser in der Praxis testen.
OP #2562115
Lesenswert?

Hallo Thomas,

eine Frage noch zur Referenzdiode! Für die Beschaltung
am Eingang des ADC0? Oder meinst Du zur Stabelisierung der
Betriebsspannung?

Referenzdiode
-----------------------------------------------------
In Zusammenarbeit mit einem Widerstand kann somit eine stabile Spannung 
bereitgestellt werden um z.B. eine stabile Betriebsspannung oder eine 
Vergleichsspannung für Komparatoren bereitzustellen.

Mit freundlichen Grüßen
Christian
Angehängte Dateien:
OP #2562550
Lesenswert?

Guten Morgen Thomas,
Guten Morgen Mikrocontroller Forum,

ich war ein wenig verwirrt! Ich habe die Referenzdiode in meinem 
Schaltplan eingefügt!

Ich lese mich gerade einwenig in die externe Referenz MAX6325CSA+
ein. Ich werde mal mit beiden Möglichkeiten experimentieren. Ich habe 
gelesen, das der MAX6325 gut Temeraturschwankungen ausgleichen kann. 
Preislich aber schon eine andere Nummer! ca.10EUR


Mit dem A/D vom Atmega und einem externen 12Bit A/D-Wandler LTC 1298 CN8 
werde ich auch mal experimentieren!

Was ich jetzt noch realisieren muss ist der Messeingang. Da fehlt mir 
noch ein richtiger Ansatz.

Gute Hilfe habe ich auch schon bekommen!
Ich habe jetzt zwei Ansätze die ich verfolge:


Messeingang ---20k---+--------| A/D Eingang des ATmega8
                     |
                     +--10k---| Low bei 15V/10V sonst Eingang
                     |
                     +--10k---| Low bei 10V sonst Eingang
                     |
                    20k
                     |
                    GND


- Grundsätzlich führst du die zu messende Grösse
  dem ADC zu, über OPV


Könnt Ihr mir vielleicht noch zum zweiten Ansatz mit dem OPV einwenig 
Hilfestellung geben.

Mit freundlichen Grüßen
Christian
Angehängte Dateien:
#2562570
Lesenswert?

Naja du baust dir halt einen "aktiven Spannungsteiler" mit dem lassen 
sich dann nicht nur DC-Offsets deines Signals ausgleichen, du schützt 
auch zum gewissen Teil den Rest deiner Schaltung (besser der OP stirbt 
da centartikel, als der teure ADC etc.) und passt natürlich die 
Eingangsspannungen so an, dass dein ADC die auch fressen mag. Such mal 
nach "aktivem Spannungsteiler..." oder "Eingangsstufe..." oder so.

Gruß Jonas
Gast #2562604
Lesenswert?

Externer ADC gut und schön, aber dann kannst Du gleich einen Controller 
mit 12bit-ADC-Auflösung nehmen, z.B. ADuC7026. Gibt es hier im Shop und 
anderswo als Development-Board von OLIMEX. Da sind schon mal die meisten 
Deiner Hardware-Probleme gelöst.

Blackbird
PS: IDE gibt es kostenlos und der Bootloader wird über ein 
USB-Seriell-Kabel mit 3,3V angesprochen - um den Fragen nach der 
Entwicklungsumgebung zuvorzukommen.
OP #2562671
Lesenswert?

Hallo Jonas Biensack,
Hallo Blackbird,

vielen Dank für den Hinweis zum "aktiven Spannungsteiler"!
Da werde ich mal genauer im Internet suchen.

Einen anderen Controller zu verwenden ist auch ein guter Ansatz!
Oben im Beitrag wurde schon mal der Atmel AVR XMEGA ins Gespräch 
gebracht.

Ich werde die beiden Controller mal vergleichen!
ADuC7026 v.s. Atmel AVR XMEGA

Eine möglichst kleine Baugruppe ist perfekt!
Danke für den Hinweis!

Mit freundlichen Grüßen
Christian
Gast #2562705
Lesenswert?

Die bisherigen Vorschläge werden Dir mehr Fragen aufwerfen als 
beantworten. Ich denke, Du möchtest eine pragmatische Lösung und kein 
"man könnte doch ..."

Du möchtest einen ATmega 8 verwenden, dann nimm ihn! Der interne ADC ist 
für Dich nicht optimal, weshalb ein externer ADC die Schaltung 
wesentlich erleichtern kann.
Mein Vorschlag: nimm einen ext. ADC mit höherer Auflösung (>=16 bit) und 
baue nur einen Eingangskanal auf, der von 0 - 15V messen kann. Da Du 
keine schnellen Messungen brauchst, kann auch ein langsamer ADC 
eingesetzt werden. Ein günstiger 16-Bit ADC mit guter interner Referenz 
und gutem Preis ist der MCP-3426.
http://www.reichelt.de/ICs-M-MN-/MCP-3426A0-E-SN/index.html?;ACTION=3;LA=444;GROUP=A217;GROUPID=2914;ARTICLE=109742;START=0;SORT=artnr;OFFSET=500;SID=11TZCJx38AAAIAABuinbk8eeb76173481cde8ee58021031bfd617

In jedem Fall brauchst Du noch einen hochohmigen Spannungsteiler, der 
die max. 15V herunterteilt. Der Abgleich der Messung erfolgt einzig über 
den µC, sodass keine Trimmpotis o.ä. verwendet werden müssen.
OP #2562749
Lesenswert?

Hallo Willi,

Vielen Dank für Deine Hilfe! Was Du schreibst passt genau...

MCP-3426
-------------------------------------
16-Bit ADC mit guter interner Referenz


Ich habe im Anhang einmal versucht einen aktiven hochohmigen 
Spannungsteiler aufzubauen. Könnte so mein Messeingang aufgebaut werden? 
Oben im Beitrag wird noch etwas zu einem RC-Glied am Messeingang 
geschrieben.

Mit freundlichen Grüßen
Christian


Frage zu Eagle: Gibt es eine Möglichkeit den MCP-3426 als Symbol in 
Eagel zu bekommen. Gibt es da Bauteile Libs zu?
Angehängte Dateien:
Gast #2562927
Lesenswert?

> Ich habe im Anhang einmal versucht einen aktiven hochohmigen
> Spannungsteiler aufzubauen.

Wolltest du nicht auf 5mV genau mesen ?

Was willst du da mit einem OpAmp, der schon bis 7mV ungenau ist,
und dann auch noch das Drama um das 16-fache verstärken ?

> Gibt es eine Möglichkeit den MCP-3426 als Symbol in
> Eagel zu bekommen.

Natürlich. Selber zeichnen. Die Welt besteht aus Arbeit.
OP #2562977
Lesenswert?

Hallo MaWin,

das hört sich für mich verständlich an! Also ein einfachen 
Spannungsteiler mit möglichst genauen Widerständen. Oben im Beitrag wird 
was von 0.1% geschrieben.

Messeingang ---20k---+--------| A/D Eingang des ATmega8
                     |
                     +--10k---| Low bei 15V/10V sonst Eingang
                     |
                     +--10k---| Low bei 10V sonst Eingang
                     |
                    20k
                     |
                    GND

Werden die hohen Widerstände aus dem Grund genommen das die zu messende 
Batterie nicht so belastet wird? Bekomme ich die Strom Belastung auch 
noch kleiner?

Ich dachte die Variante mit dem OP bringt irgendwelche Vorteile in 
Sachen Genauigkeit!

Mit freundlichen Grüßen
Christian
Gast #2563062
Lesenswert?

> Werden die hohen Widerstände aus dem Grund genommen

Die Widerstandswerte sind so ausgewählt, daß der AVR möglichst genau 
misst.

Er selkbst will 10k Ohm als Quellimpedanz sehen, das erfüllt die 
Schaltung.

Die Umschaltung durch offenen Eingänge belastet den Spannungsteiler mit 
1uA maximal, das wären 10mV Abweichung im schlechtesten Fall, allerdings 
aus Erfahrung sind unter 100nA zu erwarten.

Schaltet ein Ausgang auf LOW, verbindet er die 10000 Ohm Widerstand über 
ca. 16 Ohm mit Masse, also um 0.16% abweichend. Damit kann man leben. 
Die Schaltung ist jedenfalls präsziser als es mit 1% Widerständen geht, 
mit passender Referenzspannung sollten weniger als 20mV absolute 
Abweichung kein Problem sein, deine 5mV kannst du aber mit dem 8.5mV 
ungenauen AVR sowieso nicht erreichen.
Gast #2563095
Lesenswert?

Christian H. schrieb:
> Gibt es den einen Vergleichbaren ADC wie dem MCP-3426 vielleicht auch
> ohne SMD Technik?

Die Pins haben 1,27mm Abstand, was auch ein Anfänger gut löten kann. Da 
mußt Du durch!

Der obigen Diskussion mit diversen Spannungsteilern und 0,1% 
Widerständen möchte ich mich nicht anschließen. In meinen Augen ist 
dieses Vorgehen völlger Quatsch. 1% Widerstände mit 50ppm/K reichen aus.

Wie hochohmig Du Deine Messung machen möchtest ist mir noch nicht klar. 
Eine gute Lösung (mit nur einem einzigen Eingang) könnte aus einem 
Spannungsteiler 11:1 direkt am Eingang (z.B. 1M:100k) gefolgt von einem 
rail-rail Operationsverstärker bestehen. OPA340 oder ein 2-fach Typ 
wegen der Beschaffbarkeit OPA2340 
http://www.reichelt.de/ICs-NE-SA-/OPA-2340-UA/index.html?;ACTION=3;LA=444;GROUP=A218;GROUPID=2915;ARTICLE=39657;START=0;SORT=artnr;OFFSET=500;SID=11TZCJx38AAAIAABuinbk8eeb76173481cde8ee58021031bfd617
Der Ausgang vom ..340 geht dann an den ADC; ggf. über einen Tiefpass 
1k/100nF.
OP #2563260
Lesenswert?

Hallo Thomas O,
Hallo MaWin,
Hallo Willi,

vielen Dank für die gute Unterstützung! Ich bin begeistert wie Ihr mir 
bei meinem Vorhaben helft!

Der externen ADC (MCP-3426) steht auf jeden Fall schon mal fest. Meine 
Sorge mit dem Löten ist vergessen! Habe den externen ADC noch nicht in 
meinem Schaltplan eingebaut. Muss erst mal in EAGEL ein Symbol 
erstellen! Alles Neuland für mich :O)

Controller bleibt fürs erste der Atmega8!

Willi, könntest Du Dir meinen Schaltplan einmal anschauen! Hast Du das 
mit Deinem Hinweis zur Beschaltung so gemeint?

Was mich richtig freut sind die verschiedenen Ansätze!

Mit freundlichen Grüßen
Christian
Angehängte Dateien:
Gast #2563336
Lesenswert?

Christian H. schrieb:
> Willi, könntest Du Dir meinen Schaltplan einmal anschauen! Hast Du das
> mit Deinem Hinweis zur Beschaltung so gemeint?

Nein. Deine Schaltungskenntnisse sind sehr mager!
Der Spannungsteiler (Abschwächer) kommt vor den OPA. Dieser selber wird 
nur als Puffer (V = 1)verwendet.
Ein Tiefpass sieht anders aus: erst R (in Reihe) dann C (gegen AGND).

MaWin schrieb:
> der LM336 nicht auf 5mV genau zu bekommen,

Das ist doch völlig Schnuppe! Mit einem ATmega8 kann man auch Skalieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren