Forum: Mikrocontroller und Digitale Elektronik ADC, Attiny84 interne Referenzspannung


von iGast (Gast)


Lesenswert?

Hallo,

möchte am PA3 des Attiny84 einen analogen Wert einlesen. Die anderen 
Pins des Ports A werden als Ausgänge verwendet.

Nun kann man im ADMUX die Bits REFS1 und REFS0 einstellen. Habe es schon 
im Öfteren versucht, und es hat leider nicht geklappt.

Da die anderen PINs genutzt werden, möchte ich die interne 
Referenzspannung nutzen. (REFS1=1, REFS0=0)

Was macht die Referenzspannung denn genau?

Kann ich auch REFS1=0 und REFS0=0 verwenden?

Habe den Code aus der AVR GCC Anleitung zum Testen genutzt, natürlich 
abgewandelt und mit dem richtigen Kanal PA3.

Kann es den überhaupt funktionieren, wenn die anderen PINS alle Outputs 
sind?

Das Datenrichtungsregister ist im Programm vor den ADC Einstellungen

von Karl H. (kbuchegg)


Lesenswert?

iGast schrieb:

> Da die anderen PINs genutzt werden, möchte ich die interne
> Referenzspannung nutzen. (REFS1=1, REFS0=0)
>
> Was macht die Referenzspannung denn genau?

Sie ist die Referenz, bei der grob gesagt, der ADC sagt "100%".
Der ADC liefert dir keinen direkten Spannungswert. Sondern er teilt dir 
mit, wie gross die gemessene Spannung ist, in Relation zu dieser 
Referenzspannung. Quasi ein Prozentwert (nur mit Zahlenwerten von 0 bis 
1023 anstelle von 0 bis 100)

>
> Kann ich auch REFS1=0 und REFS0=0 verwenden?

Natürlich. Warum solltest du nicht können?

Welche Referenzspannung du wählst, hängt davon ab, wie gross die zu 
messenden Spannungen sind. Denn der Wert den du vom ADC kriegst, kann 
nicht größer als 1023 werden (also quasi: nicht mehr als 100%). Die 
zweite Restriktion bei einer externen Referenzspannung wäre: du kannst 
mit dieser Spannung nicht größer als ein Grenzwert werden. Da du aber 
ohnehin die Referenspannung intern verschalten willst, hast du im Grunde 
nur 2 Optionen. Entweder du nimmst die Versorgungsspannung als Referenz 
(also wohl die 5V) oder du nimmst intern generierte 1.1V (wobei die 1.1V 
auch nicht so genau sind. Sie sind stabil, aber nicht genau 1.100000V)

> Habe den Code aus der AVR GCC Anleitung zum Testen genutzt, natürlich
> abgewandelt und mit dem richtigen Kanal PA3.
>
> Kann es den überhaupt funktionieren, wenn die anderen PINS alle Outputs
> sind?

Ja klar funktioniert das.


Code zeigen, dann kann man dir sagen, was du falsch übernommen hast.

von iGast (Gast)


Lesenswert?

Kurze Frage noch zum Anschluss. Habe einen Poti an 3V, wie auch der 
attiny84 an 3v betreibe. Der Schleifer ist am PA3 angeschlossen und der 
dritte Fuß am GND also Spannungsteiler über Poti. Müsste doch auch 
stimmen oder?

von Thomas E. (thomase)


Lesenswert?

iGast schrieb:
> Müsste doch auch
> stimmen oder?

Ja. Und als Referenz nimmst du Vcc.

mfg.

von Karl H. (kbuchegg)


Lesenswert?

iGast schrieb:
> Kurze Frage noch zum Anschluss. Habe einen Poti an 3V, wie auch der
> attiny84 an 3v betreibe. Der Schleifer ist am PA3 angeschlossen und der
> dritte Fuß am GND also Spannungsteiler über Poti. Müsste doch auch
> stimmen oder?

Ja. passt.

In dem Fall nimmst du dann Vcc als Referenz.

von Joachim B. (jar)


Lesenswert?

Karl Heinz schrieb:
> iGast schrieb:
>> Kurze Frage noch zum Anschluss. Habe einen Poti an 3V, wie auch der
>> attiny84 an 3v betreibe. Der Schleifer ist am PA3 angeschlossen und der
>> dritte Fuß am GND also Spannungsteiler über Poti. Müsste doch auch
>> stimmen oder?
>
> Ja. passt.
>
> In dem Fall nimmst du dann Vcc als Referenz.

aber dein Messwert ist pro Digitalwert 0-1023 nur 0,0977% vom Messwert

Du glaubst das die Referenz, dein VCC 3,3V ist, ist sie 3V hast du schon 
mal 10% Fehler. ist immer doof wenn die Referenzspannung schwankt, 
abnimmt bei Betteriebetrieb, oder man sie nicht kennt.

Deswegen interne 1,1V nehmen und wenigstens 1x messen, die Teiler 
natürlich an diese anpassen, also Poti an Vcc gilt dann nicht ;-)

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Joachim B. schrieb:

> Du glaubst das die Referenz, dein VCC 3,3V ist, ist sie 3V hast du schon
> mal 10% Fehler. ist immer doof wenn die Referenzspannung schwankt,
> abnimmt bei Betteriebetrieb, oder man sie nicht kennt.

Was in diesem Fall aber keine Rolle spielt, da sein Messwertaufnehmer 
von der selben Spannungsquelle gespeist wird. In dem Masse, in dem die 
Referenzspannung schwankt, schwankt auch die Spannung am Poti, so dass 
sich im Endeffekt alles wieder ausgleicht.

>
> Deswegen interne 1,1V nehmen

Dann allerdings hätte er wirklich ein Problem mit seinem als 
Spannungsteiler an Vcc angeschlossenem Poti.

von Thomas E. (thomase)


Lesenswert?

Joachim B. schrieb:
> Du glaubst das die Referenz, dein VCC 3,3V ist, ist sie 3V hast du schon
> mal 10% Fehler. ist immer doof wenn die Referenzspannung schwankt,
> abnimmt bei Betteriebetrieb, oder man sie nicht kennt.
>
> Deswegen interne 1,1V nehmen und wenigstens 1x messen, die Teiler
> natürlich an diese anpassen, also Poti an Vcc gilt dann nicht ;-)

Und deswegen kommt alles an Vcc und es interessiert nicht die Bohne, ob 
das 1,8V oder 5,5V oder irgendwas dazwischen sind.

mfg.

von Joachim B. (jar)


Lesenswert?

iGast schrieb:
> möchte am PA3 des Attiny84 einen analogen Wert einlesen. Die anderen
> Pins des Ports A werden als Ausgänge verwendet.

Karl Heinz schrieb:
> Was in diesem Fall aber keine Rolle spielt, da sein Messwertaufnehmer
> von der selben Spannungsquelle gespeist wird.

im Beispiel das Poti, wenn das Ergebins nur die Stellung des Potis sein 
soll hast du Recht, wenn später das Ziel ist externe Spannungen zu 
messen dann hast du evtl. Unrecht. ;-)

von Karl H. (kbuchegg)


Lesenswert?

Lass uns erst mal mit dem arbeiten, was er beschreibt.
Wenn er das dann hat, dann kann man immer noch auf Sonderfälle eingehen, 
sofern das dann noch nötig sein sollte.

: Bearbeitet durch User
von iGast (Gast)


Lesenswert?

Vielen Dank für Eure Beiträge. Jetzt wird es mir langsam klar wie die 
ADC genau funktioniert und wie der Zusammenhang mit der Referenzspannung 
ist.

Kann das Tutorial evtl. angepasst werden? Eure Antworten waren einfach 
zu verstehen.

Aber für heute mache ich Pause und lasse das Wissen setzen. Ein erster 
Test funktionierte schon mal.

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.