Forum: Mikrocontroller und Digitale Elektronik ATMega32: ADC mit interner Referenzspannung


von Fred (Gast)


Lesenswert?

Hallo,
ich möchte mit dem ADC des ATMega32 unter anderem eine Temperatur 
messen. Dazu habe ich einen Widerstand(33k) mit dem NTC in Serie gegen 
VCC und am anderen Ende an ADC7 dran. Der Widerstand zur Masse, um den 
Spannungsteiler zu komplettieren, soll wie im GCC-Tutorial erwähnt, der 
interne Widerstand der Referenzspannung sein (32k).
Mit folgendem Code setze ich den ADC:
1
ADMUX = 7;                      // ADC-Kanal waehlen
2
ADMUX |= (0<<ADLAR) | (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen
3
ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);    // Frequenzvorteiler 
4
ADCSRA |= (1<<ADSC);              // eine ADC-Wandlung
Allerdings ist der Widerstand an ADC7 immer noch hochohmig, genauso wie 
an ARef. Was ist da noch falsch?

(AVCC = VCC)

von Otto (Gast)


Lesenswert?

Der Widerstand kommt an +5V bzw. AVCC, "die Mitte" an den A/D-Eingang 
und von hier der NTC gegen Masse.

Otto

von Fred (Gast)


Lesenswert?

ja das ist natürlich die herkömmliche Methode, aber ich wollte eben den 
32k Innenwiderstand des ARef nutzen.

von holger (Gast)


Lesenswert?

>ja das ist natürlich die herkömmliche Methode, aber ich wollte eben den
>32k Innenwiderstand des ARef nutzen.

Fein. Dann liegt dein Spannungsteiler immer oberhalb
von AREF und du misst Mist.

von Fred (Gast)


Lesenswert?

dann ist das wohl was im gcc Tutorial steht auch misst:
~~~~~~~~~~~~~~~~~ Zitat aus dem GCC Tutorial ~~~~~~~~~~~~~~~~~~
>Beim ATMEGA8 z.B. ist der Pin AREF über 32kOhm mit GND verbunden, d.h. man muss 
>diese doch extrem niedrige Eingangsimpedanz mit in die Berechnung für einen 
>Spannungsteiler einbeziehen, bzw. kann diesen Widerstand als R2 gleich mit 
>benutzen. Formel für Spannungsteiler: Udiv = U / ((R1 + R2) / R2)
~~~~~~~~~~~~~~~~~~ Ende Zitat ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bzw. wenn ich es mir richtig überlege wäre dass ja eine umgekehrte 
Messmethode. Man setzt den ADC Eingang auf z.B. 1V und baut mit dem VRef 
Innenwiderstand und dem zu messenden Widerstand einen Spannungsteiler 
auf, der VRef ändert uns so das Wandlungsrgebnis ändert.
Was mich wieder zum ersten Satz dieses Beitrags führt.

von Michael U. (amiga)


Lesenswert?

Hallo,

Du benutzt die interne Referenz und hast also einen 100n von AREF nach 
GND und sonst nichts. Ob da intern ein Widerstand hängt interessiert 
doch höchstens die Referenzspannung aber nicht den ADC-Eingang.
Der ADC-Eingang ist sehr hochohmig (100M) und will aus einer relativ 
niederohmigen Quelle (Atmel spricht von >10k) gespeist werden.
Hochohmigere Quellen haben das Problem, das der Kondensator des S&H bei 
schnellen Änderungen nicht schnell genug auf den anliegenden Wert 
umgeladen wird und es so u.U. Meßfehler gibt.

Ich verstehe also nicht ganz, wie Du zu Deiner Schaltungsweise kommst.

Gruß aus Berlin
Michael

von Karl H. (kbuchegg)


Lesenswert?

Fred schrieb:
> dann ist das wohl was im gcc Tutorial steht auch misst:

Der ganze Punkt ist meiner Meinung nach ziemlich unverständlich. Ich 
glaube zu erkennen, dass derjenige, der ihn geschrieben hat einen 
Spannungsteiler im Sinn hatte, mit dem er die Referenzspannung erzeugen 
möchte. Für diesen Spannungsteiler benutzt er einen externen Widerstand 
und den 'internenn Widerstand' der Referenzspannungsschaltung nach 
Masse.

Ich habs nicht genauer recherchiert aber ich denke das ist tatsächlich 
ein ausgemachter Blödsinn. Entweder ich benutze die interne 
Referenzspannung oder eine externe Referenzspannung. Aber da 
irgendwelche Chipinternals, die höchst wahrscheinlich bei jedem Chip ein 
wenig anders sein werden, als Spannungsteilerwiderstand bei einer 
Referenzspannung zu benutzen ...  na ich weiß nicht.

Unabhängig ob das so funktioniert oder nicht ... Dieser Punkt ist IMHO 
ziemlich unverständlich formuliert. Wenn sich niemand mit einem 
Einspruch meldet, oder das umformulieren würde, wäre ich stark dafür 
diesen Vorschlag für eine Referenzspannungsquelle ersatzlos zu 
streichen.

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.