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
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.
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?
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.
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 ;-)
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.
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.
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. ;-)
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.
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.