Forum: Mikrocontroller und Digitale Elektronik externe Referenzspannung und Verstorungsspannung als Referenz


von Johann (Gast)


Lesenswert?

Hallo,

ich habe eine ATMega8 und möchte damit 2 unterschiedliche Spannungen 
messen. Allerdings sollte einmal eine externe Referenzspannung mit 
relativ genau 5V verwendet werden und einmal die Versorgungsspannung 
(i.d.R. leicht über 5V). Hintergrund ist die Messgenauigkeit. Einmal 
will ich wirklich eine externe Spannung messen und damit sollte die 
Referenzspannung nicht schwanken, und einmal "nur" einen 
Temperaturwiderstand über einen Spannungsteiler, bei dem die 
Versorgungsspannung als Referenz die besseren Werte liefert.

Programmtechnisch sind es ja nur ein paar Register. Aber funktioniert 
das mit der Versorgungsspannung noch, wenn an ARef bei Atmel immer die 
exakten 5V Referenzspannung anliegen?

Danke und viele Grüße
Johann

Beitrag #5420276 wurde vom Autor gelöscht.
von Einer K. (Gast)


Lesenswert?

Johann schrieb:
> wenn an ARef bei Atmel immer die
> exakten 5V Referenzspannung anliegen?
Du solltest mit einer geringeren Referenzspannung arbeiten, weil ARef 
nie höher als Vcc sein sollte.

Warum nimmst du nicht die interne Referenz?
Nach einer (ein Punkt) Kalibrierung ist diese meist ausreichend.

Wenn nichts fatales dagegen spricht, befolge ich immer diese Regeln:
1. Bei ratiometrischen Messungen, Vcc als Referenz.
2. Bei absoluten Messungen die interne Referenz

von Theor (Gast)


Lesenswert?

Siehe Netiquette.

1. Die in der Frage enthaltenen Voraussetzungen sollten vollständig 
erklärt sein.
2. Zu 1.: Die Frage sollte dazu motivieren, sie zu beantworten. In dem 
Fall, sollte sie genug Information enthalten, damit ich als potentieller 
Antworter auch für mich daraus etwas gewinnen kann.

von Äxl Real (Gast)


Lesenswert?

eine, von aussen anglegte, Referenzspannung wird gnadenlos von der VCC 
"überfahren". Solange diese sich nicht schwer damit tut, ist alles in 
Butter.
Ich hatte eine 4.096V externe Referenz und wollte auf die interne 2.56V 
umschalten. Die externe hat dort trotzdem "hineingepustet". Der Vref-Pin 
wird nicht abgeschaltet, wenn man statt der extern angelegten Spannung 
die interne verwenden will. Gegenseitige Beeinflussungen sind 
vorprogrammiert!

von c-hater (Gast)


Lesenswert?

Äxl Real schrieb:

> eine, von aussen anglegte, Referenzspannung wird gnadenlos von der VCC
> "überfahren".

 Qatsch mit Soße.

Wäre es tatsächlich so, würde es die Wahlmöglichkeit für Vref ja wohl 
garnicht geben. Es gibt sie aber...

D.h.: All die Leute, die das DB lesen und ihre Hardware entsprechend 
designen können, können durchaus auch die Referenzsspannung nach ihren 
Wünschen auswählen.

Und der Rest... Naja, das sind dann Leute wie du...

von Wolfgang (Gast)


Lesenswert?

Johann schrieb:
> ... und einmal "nur" einen Temperaturwiderstand über einen
> Spannungsteiler, bei dem die Versorgungsspannung als Referenz
> die besseren Werte liefert.

Warum soll die Versorgungsspannung dafür die bessere Referenz liefern?
Solange der Spannungsteiler an der selben Spannung hängt, die auch als 
Referenz für den ADC verwendet wird, ist die externe Referenz dafür 
genauso gut.

von c-hater (Gast)


Lesenswert?

Wolfgang schrieb:

> Warum soll die Versorgungsspannung dafür die bessere Referenz liefern?
> Solange der Spannungsteiler an der selben Spannung hängt, die auch als
> Referenz für den ADC verwendet wird, ist die externe Referenz dafür
> genauso gut.

Es kann durchaus gute Gründe dafür geben, je nach Meßaufgabe zwischen 
der lokalen Vcc-Versorgung und der Vcc-Versorgung eines entfernten 
Messpunktes als Referenz zu wechseln, selbst wenn Vcc letzlich aus 
derselben Quelle stammt und sogar auf dem Schaltplan wie ein Signal 
erscheint.

Das gilt u.U. selbst für einfache Meßaufgaben im Quasi-DC-Bereich, noch 
sehr viel stärker aber für alles, was deutlich weg von DC ist...

Du mußt offensichtlich noch SEHR viel lernen...

Beitrag #5420402 wurde von einem Moderator gelöscht.
von Johann (Gast)


Lesenswert?

Danke für die vielen Antworten. Vielleicht fehlten auch noch ein paar 
Infos, warum ich die Frage überhaupt gestellt habe.

Der Atmel wurde am Motorrad verbaut und hat (neben manch anderen Dingen) 
auch die Aufgabe, die Bordspannung und die Öltemperatur zu ermitteln. 
Öltemperaturgeber ist ein temperaturabhängiger Widerstand.

Aktuell ist die Versorgungsspannung meine Referenz, d.h. AREF ist über 
einen 100n-Kondensator mit Masse verbunden.

Das führt bei der Öltemperatur zu sehr guten Ergebnissen, da eine 
Schwankung in der Versorgungsspannung keinen Einfluss auf das Ergebnis 
nehmen kann (VCC - Vorwiderstand - ADC1 - Temperatursensor - Masse).

Bei der Bordspannung ist mir aber aufgefallen, dass die Messungen nicht 
so gut sind. Das liegt natürlich daran, dass man bei einem KfZ im 
Bordnetz mit unterschiedlichen Spannungen zwischen 11,5 und 14,4 V leben 
muss. Das lässt meine Versorgungsspannung auch etwas mitschwanken und 
nicht exakt bei 5 V verharren.

Wenn ich nun über einen Spannungsteiler die Bordspannung auf ein Drittel 
reduzierte und an ADC2 anschließe, erhalte ich durch die Veränderung der 
Versorgungsspannung und der Benutzung dieser als Referenz zu geringe 
Ausschläge. Deshalb wäre hier eine interne Referenz oder externe 
Referenz besser.

Ich werde nun folgendes Ausprobieren (Arduino Fanboy: Danke für den 
Denkanstoss!):
Ich belasse die Schaltung genau so (AREF gepuffert über 100n an Masse) 
und schalte nur vor der Messung zwischen interner Referenz und 
Versorgungsspannung um, d.h. beim Messen der Temperatur die 
Versorgungsspannung und beim Messen der Bordspannung die interne 
Referenz. Natürlich muss ich den Spannungsteiler von 2:1 auf 5:1 
verändern, da ich ansonsten Werte > Referenz am ADC habe.

Allerdings habe ich mal gelesen, dass die Regel VCC > Referenzspannung > 
ADC-Spannung sein muss, da sonst der Atmel kaputt gehen könnte. Gilt das 
nur beim Messen oder immer? Sonst müsste ich die Temperaturermittlung 
auch umbauen, damit ich nicht über 2,5V komme und verliere damit 
Genauigkeit.

von Einer K. (Gast)


Lesenswert?

Nein, der ADC Pin kann bis Vcc ab.
Die Messwerte enden allerdings bei dem jeweils eingestellten Aref.
Oberhalb gibts nur 1023

von Manfred (Gast)


Lesenswert?

Johann schrieb:
> ... die Bordspannung und die Öltemperatur zu ermitteln

Drehe die Logik um: Verwende als Referenz nur die Versorgungsspannung 
des ATMega und klemme die externe Referenz an einen Analogeingang. Aus 
der bekannten Spannung am Analogeingang kannst' auf die Abweichung 
zurückrechnen.

von Einer K. (Gast)


Lesenswert?

Eine externe Referenz ist hier nicht nötig.

von Manfred (Gast)


Lesenswert?

Arduino F. schrieb:
> Eine externe Referenz ist hier nicht nötig.

Du meinst, er soll die interne Referenz des ATMega verwenden? O.K., 
keine Einwände.

von Äxl Real (Gast)


Lesenswert?

c-hater schrieb:
> Qatsch mit Soße.

ich wollte mich auf die interne referenz beziehen, die von der höheren, 
externen, "überfahren" wird.
Hast natürlich Recht. Danke für den Hinweis, hab ich kurz nicht 
nachgedacht. Die VCC greift da natürlich nicht ein, sry.

von Johann (Gast)


Lesenswert?

Jetzt glaube ich, habe ich alles verstanden (wie es gemeint war oder 
vielleicht gemeint sein hätte können) und es gibt wohl verschiedene 
Lösungen (wie fast immer).

1. Man schaltet die Referenzspannung um zwischen interner Referenz und 
VCC als Referenz. Hat nur den Nachteil, dass es wohl bis 500 ms dauern 
kann, bis der Kondensator an AREF entladen ist. Natürlich muss der 
Spannungsteiler angepasst werden, da ich nicht mehr 0-5V, sondern nur 
0-2,56V messen kann.

2. Man arbeitet immer mit VCC als Referenz

2.1. Man lötet eine externe Referenzspannung dazu und schaltet diese auf 
einen ADC-Kanal (nicht auf AREF). Damit kann man die Versorgungsspannung 
ermitteln und somit die echte Referenzspannung und damit den Messwert 
besser errechnen.

2.2. Man arbeitet mit der bandgap reference. Es wird wohl hieraus auch 
die interne Referenz abgeleitet. Diese liegt beim ATMega8 auf ADC-Kanal 
15 an (salopp gesagt) mit 1,3 V und damit kann man ebenfalls die 
Versorgungsspannung ermitteln ohne etwas löten zu müssen. Die Spannung 
ist wohl von Chip zu Chip etwas unterschiedlich, aber dann wohl recht 
stabil. Ich habe die Ermittlung etwas angepasst, da AVR auch eine 
Bandbreite von 1,15 bis 1,4 angibt.

Leider hatte ich den Spannungsteiler schon geändert, bevor ich die 
Lösung 2.2. umgesetzt habe.

Natürlich blieb die Ermittlung der Temperatur gleich.

Bin zwar immer noch nicht ganz zufrieden mit den Werten, aber das liegt 
eher nicht mehr am Chip und der Ermittlung. Basteln geht weiter.

Nochmal DANKE an alle! Habe wieder einiges gelernt.

von Sebastian S. (amateur)


Lesenswert?

Schau' in die Datenblätter der Mikrocontroller, nicht nur die von Atmel 
bzw. seinem Käufer, sondern in die der meisten anderen.
Da wirst Du feststellen, dass, egal welchen Anschluss Du im Auge hast, 
bei Vcc + 0,7V Schluss ist. Zumindest bei den allermeisten. Meist steht 
da auch irgend etwas von absoluten Maxima.
Dabei ist es egal, ob Du digitalisierst oder die Anna log. Die meisten 
Unterschiede gibt es rund um eine eventuelle Referenzspannung. Letztere 
ist aber nie größer als Vcc, da sie ja aus dem "Innern" kommt.

von c-hater (Gast)


Lesenswert?

Johann schrieb:

> 1. Man schaltet die Referenzspannung um zwischen interner Referenz und
> VCC als Referenz. Hat nur den Nachteil, dass es wohl bis 500 ms dauern
> kann, bis der Kondensator an AREF entladen ist.

Nein, sicher nicht. Es sei denn, man hat einen völlig idiotisch 
überdimensionierten Kondensator an Aref...

von Johann (Gast)


Lesenswert?

Nun wurde es auch über 100km getestet und ich bin ganz zufrieden mit den 
Ergebnissen und der Lösung 2.2.

Nochmals vielen Dank für die guten Denkansätze!!

@c-hater: Habe das aus Beitrag "ATmgea48: Referenzspannungen wechseln". Der 
hatte das so gemessen. Da ich es natürlich nicht nachprüfen konnte, 
steckt bewusst ein relativierendes "wohl" im Satz.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.