ATMega8 Spannungsmessung

Nov 03, 2004 4 Replies

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


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.

Allerd>> Ich möchte mit einem ATMega8 meine Versorgungsspannung messen. Diese

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 schrieb:

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

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required