Hallo! Ich habe eine Frage zum Tutorial (Atmega8): Ich verstehe das so, dass AREF ein Ausgang ist an der eine (softwareseitig veränderliche) Spannung anliegt. Und an AVcc wird die Spannungsquelle angeschlossen. Habe ich das richtig verstanden? Wenn ja: Dann kann ich dann die folgende Schaltung bauen oder spricht da etwas gegen? AREF----Vorwiderstand----Photowiderstand-----GND | | ADC0 Danke im Voraus!
Hi >Ich verstehe das so, dass AREF ein Ausgang ist an der eine >(softwareseitig veränderliche) Spannung anliegt. Nein. Bei REFS1=0, REFS0=0 ist es ein Eingang. MfG Spess
An AVCC wird die Versorgungsspannung angeschlossen, ggf. gefiltert durch ein L/C-Glied. AREF kann Eingang wie Ausgang sein, abhängig von der Einstellung der Referenzspannung. Deine Schaltung ist prinzipiell richtig, aber AREF darf nicht stark belastet werden. Siehe Doku. Nur kannst du das leichter haben, indem du AVCC als Referenz verwendest und den Teiler an AVCC hängst. Das Ergebnis des Spannungsteilers ist ja nicht abhängig vom tatsächlichen Wert von AVCC.
Aref ist immer ein Einang (hier wird die Ref. Spannung für den AD her geholt). Zusätzlich kann der PIN auch gleichzeitig ein Ausgang sein worüber einen Widerand in Größenordnung 10 K die Spannung von der Ref. (2,5 V) oder AVCC anliegt.
> Aref ist immer ein Einang ... Zusätzlich kann der PIN auch > gleichzeitig ein Ausgang sein lass dir das mal schnell patentieren! :-)
Ulrich schrieb: > Aref ist immer ein Einang (hier wird die Ref. Spannung für den AD her > geholt). Du bist noch auf dem Stand der alten AT90Sxxxx, da stimmte das. Bei den ATmegas liegt ggf. die interne Referenz (Bandgap oder AVCC) drauf.
Danke für die zahlreichen Antworten! Also ich hab jetzt die Schaltung gebaut: AREF----Vorwiderstand----Photowiderstand-----GND 22K Ohm 78 Ohm-1M Ohm | | ADC0 LED an C5, Messung an C0. Funktioniert leider nicht, egal mit was für einem Wert ich den vom ADC gemessenen vergleiche (0,128,255), immer leuchtet die LED. (Siehe mit !!!!! markierte Zeile). Das kann ja nicht sein. Sieht jemand einen Fehler? .include "m8def.inc" .def temp1 = r16 .def adlow = r17 ; Ergebnis vom ADC .def adhigh = r18 ; Ergebnis vom ADC ; C5 als Ausgang ldi temp1, 0b00100000 out DDRC, temp1 ; ADC initialisieren: ADC0, Vcc als Referenz, Single Conversion, Vorteiler 128 ldi temp1, (1<<REFS0) | (0<<MUX0) | (0<<MUX1) | (0<<MUX2) | (0<<MUX3) ; Kanal 0, interne Referenzspannung 5V out ADMUX, temp1 ldi temp1, (1<<ADLAR) ; linksbündige Ausrichtung in adhigh out ADMUX, temp1 ldi temp1, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0) ; ADC an und Prescaler auf 128 out ADCSRA, temp1 sample_adc: sbi ADCSRA, ADSC ; den ADC starten wait_adc: sbic ADCSRA, ADSC ; wenn ADC fertig, wird dieses Bit gelöscht rjmp wait_adc in adlow, ADCL ; immer zuerst LOW Byte lesen in adhigh, ADCH ; danach das mittlerweile gesperrte High Byte cpi adhigh, 0 ;!!!!!!!!!!!!!!!!!!!!!!!! brsh gr ldi temp1, 0xFF ;kleiner: LED aus out PORTC, temp1 rjmp sample_adc gr: ;größer: LED an ldi temp1, 0x00 out PORTC, temp1 rjmp sample_adc
Du schreibst zweimal ADMUX, der zweite setzt den ADC auf externe Referenz. Wie ich oben erwähnte: "Note that VREF is a high impedant source". Nimm AVCC statt AREF, ist der gleiche Pegel aber belastbar.
Joa ich dachte das wäre ein gültige Schreibweise um das aus optischen Gründen auf zwei Zeilen aufzuteilen ;) War wieder ein Volltreffer, jetzt gehts!!! Danke schön!!!!!
Avcc ist nicht der selbe Pegel wie Aref! Die Spannungen an den beiden Pins sind jeweils abhängig von äußeren Umgebungsbedingungen (angelegte Spannung) und internen Einstellungen (Referenzquelle).
@Henk: Hmm also meine Spannungsquelle gibt (angeblich) 7,5 Volt. Die interne Einstellung ist bei mir: REFS0=1 und REFS1=0, also interne 5 Volt. Ich will nur kucken obs hell oder dunkel ist. Das scheint so zu funktionieren. Zitat: Avcc ist nicht der selbe Pegel wie Aref! Hat das irgendwelche Folgen für mich? Danke für die Hilfe hier!
Henk schrieb:
> Avcc ist nicht der selbe Pegel wie Aref!
Bei Vref=AVCC, wie hier konfiguriert, ist der Unterschied sicherlich
nicht gross. Dafür stellt sich aber die Frage, ob die Last an AREF das
Ergebnis beeinflusst.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.