Forum: Mikrocontroller und Digitale Elektronik AREF ist ein Ausgang?


von Erdnuckel (Gast)


Lesenswert?

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!

von spess53 (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Ulrich (Gast)


Lesenswert?

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.

von Klaus W. (mfgkw)


Lesenswert?

> Aref ist immer ein Einang ... Zusätzlich kann der PIN auch
> gleichzeitig ein Ausgang sein

lass dir das mal schnell patentieren! :-)

von (prx) A. K. (prx)


Lesenswert?

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.

von Erdnuckel (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Erdnuckel (Gast)


Lesenswert?

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!!!!!

von Henk (Gast)


Lesenswert?

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

von Erdnuckel (Gast)


Lesenswert?

@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!

von (prx) A. K. (prx)


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

Du versorgst den AVR mit 7,5V?

von Erdnuckel (Gast)


Lesenswert?

Ja. Ich meine im Tutorial gelesen zu haben 6-9 V. Ist das falsch?

von oh je (Gast)


Lesenswert?

Lies nochmal nach. Das ist falsch und normalerweise der Tod für einen 
AVR.

von Erdnuckel (Gast)


Lesenswert?

Ähh sorry das war Quatsch. Nicht den AVR sondern das Board (Starter Kit 
aus dem Shop hier).

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.