www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AREF ist ein Ausgang?


Autor: Erdnuckel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

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

lass dir das mal schnell patentieren! :-)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Erdnuckel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Erdnuckel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!!!!

Autor: Henk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Erdnuckel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du versorgst den AVR mit 7,5V?

Autor: Erdnuckel (Gast)
Datum:

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

Autor: oh je (Gast)
Datum:

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

Autor: Erdnuckel (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.