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
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
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.
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!
Ä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...
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.
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...
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.
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.
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.
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.
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.
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...
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.