Forum: Mikrocontroller und Digitale Elektronik Atmega8 AREF Hilfe


von mike (Gast)


Lesenswert?

Hi,


kann mir jemand bitte kurz auf die Sprünge helfen?

Ich habe hier einen Atmega8 und möchte den ADC einsetzen. Das Datenblatt 
verstehe ich an dieser Stelle nicht (richtig).

Register ADMUX:

AVcc ist die Versorgungsspannung? Und wie ist das mit dem 'external 
Capacitor at AREF Pin' gemeint? 100µ gegen Masse?

Und wie wäre es den 'richtiger' bzw. was ist der Unterschied?
Stabile Versorung-U (5V) einfach an AREF und REFS0/REFS1 auf 00
oder AVcc und Kondensator an AREF<->GND und REFS0/REFS1 auf 01?

Ich möchte mittels Spannungsteiler eine Spannung messen und es sollen 
nach Möglichkeit keine Fahrkarten rauskommen ;-)

Danke

von Höhlenmensch (Gast)


Lesenswert?

Aref mit VCC zu verbinden ist eine Unsitte, die kommt von irgendwelchen 
Steinzeit-AVRs aus Grauer Vorzeit, die noch keine REF-Bits zum 
Umschalten der Versorgung hatten.

Nicht machen. 100nF (nicht µF) von AREF->GND, den Rest per Software/MUX.

von Ralf G. (ralg)


Lesenswert?

Ich würde mich erstmal daran halten:
https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

von Mattias K. (mattiask)


Lesenswert?

Morgen,

also beim Mega8 kannst du 3 verschiedene Referenzspannungsquellen 
nutzen:
- AVcc / Gleichzeitig spannungsversorgung für den Analogteil des uC 
(AVcc - Kondensator gegen GND)
- ARef eine 'eigene' stabile! Referenzspannung (ARef - Kondensator gegen 
GND)
- internal 2.56V (Vcc - Kondensator - GND)

Den Kondensator brauchst du zwangsläufig, um die Spannung zu 
stabilisieren am ARef Pin - für den Fall dass du diese Nutzen möchtest.

Ebenso sollte man an den AVcc und den Vcc Pin gegen GND einen 10-100nF 
Kondensator verbauen.
Das alles hängt zudem davon ab, welche Messgenauigkeit du erreichen 
möchtest.

Hoffe das hilft ein wenig

Grüße
Mattias

von Wolfgang (Gast)


Lesenswert?

Mattias K. schrieb:
> Ebenso sollte man an den AVcc und den Vcc Pin gegen GND einen 10-100nF
> Kondensator verbauen.

Zwischen AVCC und VCC gehört für saubere AD-Wandlung auch noch eine 
HF-Drossel zur besseren Entkopplung.

Höhlenmensch schrieb:
> Aref mit VCC zu verbinden ist eine Unsitte, die kommt von irgendwelchen
> Steinzeit-AVRs aus Grauer Vorzeit, die noch keine REF-Bits zum
> Umschalten der Versorgung hatten.

Hast du schon mal in das Datenblatt des ATMega8 geguckt?

Im Kapitel "Analog-to-Digital Converter" unter "ADC Voltage Reference"
steht dort "VREF can be selected as either AVCC, internal 2.56V 
reference, or external AREF pin."

Was meinst du, wozu die ADMUX-Einstellung REFS=00 vorgesehen ist?

Siehst du irgendwo einen Hinweis, dass als externe Referenz AVCC 
ausgeschlossen ist?

Wenn man AVCC auf den REF Pin legt, hat das einzig den Nachteil, dass 
man darauf festgelegt ist und nicht ohne Hardwareänderung auf interne 
Referenz umschalten kann.

von mike (Gast)


Lesenswert?

Mh.... so richtig noch nicht!

Ich muss nun doch noch sagen das mein Atmega ein Arduino-Nano Board ist.
(Muss ich mich dafür eigentlich schämen?)

Und da gehts schon los. Da ist der AVcc-Pin gar nicht beschaltet.
D.h, es bleibt nur Vin an AREF - mit Kondensator?

Bei meinem ersten Testaufbau hatte ich VREF komplett ignoriert, REFS0 
auf 1, keinen Kondensator und einfach so gemessen - ging auch...

Mein Sensor liefer bei Maximalwert 5V. Ich würde das ungern mit einem 
Spannugsteiler o.ä. nochmal halbieren wollen.

von Georg G. (df2au)


Lesenswert?

mike schrieb:
> Da ist der AVcc-Pin gar nicht beschaltet

Bist du sicher? AVcc versorgt nicht nur den A/D sondern auch den Port C. 
Der wäre dann auch nicht nutzbar.

von Oliver S. (oliverso)


Lesenswert?

Avcc ist angeschlossen, aref ist offen.

Oliver

Beitrag #4958891 wurde vom Autor gelöscht.
von Mattias K. (mattiask)


Lesenswert?

mike schrieb:
> Ich muss nun doch noch sagen das mein Atmega ein Arduino-Nano Board ist.
> (Muss ich mich dafür eigentlich schämen?)

Auf keinen Fall.

mike schrieb:
> Da ist der AVcc-Pin gar nicht beschaltet.

Sollte das der Fall sein, dann Frage ich mich wie du den ADC zum 
'sprechen' gebracht hast.

Grüße
Mattias

von Wolfgang (Gast)


Lesenswert?

mike schrieb:
> Ich habe hier einen Atmega8 ...

mike schrieb:
> Ich muss nun doch noch sagen das mein Atmega ein Arduino-Nano Board ist.

Gab es den mal mit ATmega8?

Auf der aktuellen Version (Arduino Nano 3.x) sitzt üblicherweise ein 
ATmega328, was natürlich an der ARef-Diskussion nichts ändert.

von Michael B. (laberkopp)


Lesenswert?

mike schrieb:
> Ich möchte mittels Spannungsteiler eine Spannung messen und es sollen
> nach Möglichkeit keine Fahrkarten rauskommen ;-)

Na wenn du die Spannung in Bezug auf die +5V Versorgungsspannung misst, 
werden es Fahrkarten sein. Die Versorgungsspannung ist schliesslich 
alles andere als stabil, sondern hängt davon ab welche Last an den 
Ausgänegn hängt und wie viel Strom die gerade brauchen.

Wenn man stabil und unabhängig von der schwankenden Versorgungsspannung 
messen will, verwendet man die interne 1.1V Referenz.

Die ist allerdings nicht absolut genau, sondern liegt je nach Modell 
zwischen 1.0 und 1.2V, hat also 10% Abweichung die man kalibrieren 
müsste, also ein mal messen und dann intern im EEPROM ablegen und bei 
jeder weiteren Messung einrechnen.

Muss die Messung ohne Kalibrierung genau sein, muss man von aussen eine 
exaktere Referenzspannung zuführen, z.B. aus einem REF5050, aber das 
kann dein Nano eh nicht.


mike schrieb:
> Ich muss nun doch noch sagen das mein Atmega ein Arduino-Nano Board ist.
> (Muss ich mich dafür eigentlich schämen?)

Du musst dich dafr schämen, es nicht bereits erwähnt zu haben.
http://download.arduino.org/products/NANO/Arduino%20Nano-Rev3.2-SCH.pdf
Mein Nano hat aber den Kondensator an ARef. Keine Ahnung wovon die Leute 
hier reden. Vielleicht reden sie auch nur von keine Ahnung.

von Dieter F. (Gast)


Lesenswert?

mike schrieb:
> (Muss ich mich dafür eigentlich schämen?)

Dafür nicht - nur dafür, dass DU alle so schön veralbert hast (bist aber 
1 Tag zu spät dran :b )

von Wolfgang (Gast)


Lesenswert?

Michael B. schrieb:
> Mein Nano hat aber den Kondensator an ARef. Keine Ahnung wovon die Leute
> hier reden.

U.a. über den Faktor 1000 aus dem Anfangspost und die auf dem Nano 
fehlende Abblockung von Störungen zwischen VCC und AVCC

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

mike schrieb:
> Ich muss nun doch noch sagen dass
> mein Atmega ein Arduino-Nano Board ist.

> (Muss ich mich dafür eigentlich schämen?)
Für den Nano nicht, für die Frage vielleicht. Der µC ist dann ein 
ATmega328, nicht ATmega8?

Ein paar scharfe Blicke auf die Leiterplatte, dazu die Hilfe eines DVM 
im Ohmbreich sollten das klären.

Laut Schaltbildern ist AVcc mit der Versorgung verbunden und an ARef 
sind 100nF nach Gnd. Bei meinen Chinesen ist das auch so.

Ich schalte die interne Referenz 1,1V ein und messe einfach, hat hier in 
mehreren Aufbauten problemarm funktioniert.

von Manfred (Gast)


Lesenswert?

Michael B. schrieb:
> Muss die Messung ohne Kalibrierung genau sein, muss man von aussen eine
> exaktere Referenzspannung zuführen, z.B. aus einem REF5050, aber das
> kann dein Nano eh nicht.
Quark!

ARef ist nach außen geführt, sogar die Arduino-IDE erlaubt das 
Umschalten auf externe Referenz - warum also soll das nicht gehen?

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.
Lade...