ATMega8 Spannungsmessung

L

Leonhard Klein

Guest
Hallo Leute,

Vermutlich ist dies eine relativ spezielle Frage, aber ich weiß gerade keine
passendere Gruppe.
Ich möchte mit einem ATMega8 meine Versorgungsspannung messen. Diese liegt
direkt auf AVcc und ARef. Dazu, dachte ich mir, benütze ich die interne
Bandgap-Spannung von 1,23V. Dann habe ich das Verhältnis von dieser zur
Versorgungsspannung, mache einen Dreisatz und hab die Versorgungsspannung.
Leider klappt das ganze nicht. Nach dem Einschalten erhalte ich immer den
selben Wert zurückgelesen, bis zum Reset. Danach kommt evtl. ein anderer,
der aber auch stehen bleibt, bis ich reset(t)e.

Da ich im Internet keinen Bastelvorschlag für diese Methode gefunden habe,
bin ich mir jetzt nicht sicher, ob ich etwas fundamentales übersehen habe.
Kann mir hier jemand helfen?

Ich vermute der normale Weg ist, die interne Spannungsreferenz zu nehmen,
und dann auf einen Pin Vcc/2 oder so zu legen. Allerdings kostet das eben
einen Pin!

Grüße
leo
 
Leonhard Klein <leoklein@gmx.net> wrote:
: Hallo Leute,

: Vermutlich ist dies eine relativ spezielle Frage, aber ich wei? gerade keine
: passendere Gruppe.
: Ich m?chte mit einem ATMega8 meine Versorgungsspannung messen. Diese liegt
: direkt auf AVcc und ARef. Dazu, dachte ich mir, ben?tze ich die interne
: Bandgap-Spannung von 1,23V. Dann habe ich das Verh?ltnis von dieser zur
: Versorgungsspannung, mache einen Dreisatz und hab die Versorgungsspannung.
: Leider klappt das ganze nicht. Nach dem Einschalten erhalte ich immer den
: selben Wert zur?ckgelesen, bis zum Reset. Danach kommt evtl. ein anderer,
: der aber auch stehen bleibt, bis ich reset(t)e.

Vielleicht sind die Spannungen ja so konstant? Der Ansatz hoert sich richtig
an.

Ansonsten nochmals pruefen, dass man auch tatsaechlich so macht, wie man es
sich denkt.

: ...
--
Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
 
Ich möchte mit einem ATMega8 meine Versorgungsspannung messen. Diese liegt
direkt auf AVcc und ARef. Dazu, dachte ich mir, benütze ich die interne
Bandgap-Spannung von 1,23V. Dann habe ich das Verhältnis von dieser zur
Versorgungsspannung, mache einen Dreisatz und hab die Versorgungsspannung.
Leider klappt das ganze nicht. Nach dem Einschalten erhalte ich immer den
selben Wert zurückgelesen, bis zum Reset. Danach kommt evtl. ein anderer,
der aber auch stehen bleibt, bis ich reset(t)e.
Hört sich nicht verkehrt an.
Wie hast Du REFS1..0 und MUX3..0 eingestellt? Hast Du ARef hart auf AVcc
oder nen Kondensator dran?
 
Hi,

Ich hatte tatsächlich ein Problem mit dem ADCH, ADCL in Kombination mit
ADLAR. Jetzt geht's weil ich in avr-gcc ADLAR aus lasse, und ADC schreibe.

Allerdings gibt's jetzt ein anderes Problem...

Alexander Peter wrote:
Ich möchte mit einem ATMega8 meine Versorgungsspannung messen. Diese
liegt direkt auf AVcc und ARef. Dazu, dachte ich mir, benütze ich die
interne Bandgap-Spannung von 1,23V. Dann habe ich das Verhältnis von
dieser zur Versorgungsspannung, mache einen Dreisatz und hab die
Versorgungsspannung. Leider klappt das ganze nicht. Nach dem Einschalten
erhalte ich immer den selben Wert zurückgelesen, bis zum Reset. Danach
kommt evtl. ein anderer, der aber auch stehen bleibt, bis ich reset(t)e.

Hört sich nicht verkehrt an.
Wie hast Du REFS1..0 und MUX3..0 eingestellt? Hast Du ARef hart auf AVcc
oder nen Kondensator dran?
100n auf Masse. Wahlweise auch in der Luft.

ADMUX = _bV(REFS0) + 14;
ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADIE) + 3;

Allerdings ist das Signal seehr ungenau. So bekomme ich bei ca 4,5V einen
Anstieg um 3-4 Werte in die falsche Richtung. Von Linearität kann man auch
nicht so recht sprechen.
Meine berechneten Werte (und die Berechnung stimmt ziemlich sicher):
3,3V wird zu 4,00V
4,3V wird zu 6,70V
4,9V wird zu 5,80V
6,0V wird zu 8,33V
Wenn ich statt des Bandgap's eine externe Zenerdiode ranhänge, bekomme ich
einen stetigen Spannungsanstieg.

Kann es sein, dass sich das BG mit der Spannung so krass verändert? (im
Datenblatt steht, dass es um ca. 13mV über den kompletten Spannungsverlauf
schwankt.)


Naja, notfalls nehme ich halt die Diode..

Grüße
leo
 
Leonhard Klein <leoklein@gmx.net> schrieb:

Kann es sein, dass sich das BG mit der Spannung so krass verändert?
(im Datenblatt steht, dass es um ca. 13mV über den kompletten
Spannungsverlauf schwankt.)
Eher nicht, aber der tatsächliche Wert der bandgap kann ziemlich stark
streuen (auch wenn er dann über Vcc unt Tamb recht konstant ist), den
solltest Du also (z. B. via EEPROM) initial kalibrieren.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
Kristian Köhntopp, de.comp.os.unix.misc
 
Leonhard Klein <leoklein@gmx.net> wrote:

Kann es sein, dass sich das BG mit der Spannung so krass verändert? (im
Also meine Erfahrung ist das die interne BG der AVRs ziemlich nach dem
Mond geht. Ich wuerd die fuer nichts verwenden was auch nur ungefaehr
ein bisschen genau sein soll.

Ich koennte mir vorstellen das man da ganz gut eine interne
Seriennummer draus herleiten kan um verschiedene Prozessoren zu
unterscheiden. :)

Olaf
 

Welcome to EDABoard.com

Sponsor

Back
Top