www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega32 - minimale Bauteile


Autor: Gernot Frisch (gernotfrisch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche einen ATmega32 einzubauen. Dazu will ich ein Quarz
verwenden, keinen Oszillator (whatever that is?). Kann mal einer bitte
kucken:
<C>

                                          :ISP:
            R1    ------------------------RESET
            10kR /                   -----SCK
     +5V---+-O---+-Reset::PC5       / ----MISO
           |       PD0::::PC4       |/ ---MOSI
         C1=       PD1::::PC3       ||/   GND---GND
       47pF|       PD2::::PC2       |||   VCC---+5V
           |       PD3::::PC1       |||
     GND--/        PD4::::PC0       |||
     +5V-----------VCC:::AGND---GND |||
     GND-----------GND:::AREF---+5V |||
            -------XTAL1:AVCC-------/||
      +-+--/   ----XTAL2::PB5        ||
      | |     /    PD5::::PB4-------/ |
    C2= |     |    PD6::::PB3--------/
  27pF| |     |    PD7::::PB2
GND---+ ^     |    PB0::::PB1--
      | Quarz |        ^       \
    C2= Y 8MHz|     ATmega32   |
  27pF| |     |               / Taster
      +-+-----/                |
                               |
                               O R2
                               | 1kR
                               |
                              GND
</C>

Ich hab 5V aus einem 8505 wo ich +5V schreibe
Gibt es eine Polung am Quarz?
Stimmen die C2 wo sie sind?
Ist der Taster so gut angeschlossen?
Fehlt was? (Kondenstoren?)
Wie + wo würde ich einen Photowiderstand mit 1kOhm amschließen?

Danke!

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Reset Schaltung ist falsch. Der gemeinsame Kontakt von R1 und C1
muessen mit dem reset-pin des uC verbunden werden.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher kommt eigentlich diese Weisheit mit den 47 pF an Reset? Hab ich
jetzt schon tausend mal gesehen. Da muss sich irgend ein Dreckfuhler
seit Ewigkeiten halten... Also 47 pF kannste auch direkt weglassen, die
kriegste schon fast durch Streukapazitäten. Nimm 47 nF, macht mehr
Sinn...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Und The Daz hat natürlich auch Recht...

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Nein, der Quarz kann so oder so eingebaut werden.
- Der Taster ist ok, internen pull-up nicht vergessen zu aktivieren
- Bau noch nen 100nF Blockkondensator (Kerko) zwischen +5V und GND so
dicht wie moeglich an den uC

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Und noch einen 100nF zwischen AVCC und AGND...

> ...Oszillator (whatever that is?)...

Ein Oszillator ist ein Baustein, der neben einem Quarz die nötige
Elektronik enthält, um den Quarz zum Schwingen zu bringen (welch
schöner Reim...). Da Quarzoszillatoren im Vergleich zu Quarzen sehr
teuer sind und außerdem der µC bereits die Oszillator-Elektronik
enthält, macht ein externer Oszillator nur dann Sinn, wenn Du mehrere
Bausteine mit demselben Takt betreiben willst.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwischen Plus und Masse sollte möglichst nah am Controller nochn C hin.
100n Kerko oder so.
So wie dein Schalter angeschlossen ist musst du halt interne Pullups
aktivieren (ich geh mal davon aus dass der Mega32 auch welche hat).

Sebastian

Autor: Gernot Frisch (gernotfrisch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 47pF kommen von hier:
http://www.mikrocontroller.net/tutorial/equipment
<C>
                                          :ISP:
        R1        ------------------------RESET
        10kR     /                   -----SCK
     +5V-O-+-----+-Reset::PC5       / ----MISO
           |       PD0::::PC4       |/ ---MOSI
         C1=       PD1::::PC3       ||/   GND---GND
       47nF|       PD2::::PC2       |||   VCC---+5V
           |       PD3::::PC1       |||
     GND--/        PD4::::PC0       |||
     +5V-----------VCC:::AGND---GND |||
     GND-----------GND:::AREF---+5V |||
            -------XTAL1:AVCC-------/||
      +-+--/   ----XTAL2::PB5        ||
      | |     /    PD5::::PB4-------/ |
    C2= |     |    PD6::::PB3--------/
  27pF| |     |    PD7::::PB2
GND---+ ^     |    PB0::::PB1--
      | Quarz |        ^       \
    C2= Y 8MHz|     ATmega32   |
  27pF| |     |               / Taster
      +-+-----/                |
                               |
                               O R2
                               | 1kR
                               |
                              GND
</C>

Passt das so?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht ganz ordentlich aus, bis auf dass die besagten
Abblockkondensatoren noch fehlen...

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuer den Fotowiderstand kommt die Beschaltung auf die Kennlinie des
Widerstandes an und auf den Einsatzbereich. Ist ja eher ein analoges
Bauteil womit sich der AD-Eingang mit nem simplen Spannungsteiler
anbieten wuerde. Also :

   +5V o---Rx---+---LDR---o GND
                |
                V
               ADC

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig : AREF nicht mit +5V verbinden. Das ist ein Ausgang und sollte
mit nem 100nF Kerko nach GND entkoppelt werden. Ausserdem scheinst du
nicht einen ATMega32 zu benutzen, der hat naemlich 40 pins. Wenns also
doch der ATMega8 ist, dann schliesst du die LDR Schaltung an pin 23
(PC0) an.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, AREF ist zunächst mal kein Ausgang, sondern der Eingang für die
externe Referenzspannung! Wenn man die interne Referenz benutzt, dann
ist es ein Ausgang!

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt. Habs gerade nachgelesen. Sorry. Ist also ok mit AREF an +5V, es
sei denn, man will etwas genauer messen und braucht deshalb eine
stabilere Referenz.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, obs Eingang oder Ausgang ist, hängt eben davon ab, ob man die
interne oder externe Referenz benutzt. Wenn Gernot sich ein allgemeines
Experimentierboard bauen will, ist es vielleicht sogar am besten, beide
Möglichkeiten in Auge zu fassen (Autsch...) und einen Jumper
einzuplanen, mit dem man den AREF-Pin auch von AVCC trennen kann und
eben auch den Kondensator vorzusehen...

Autor: Gernot Frisch (gernotfrisch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<C>
                                          :ISP:
        R1        ------------------------RESET
        10kR     /                   -----SCK
     +5V-O-+-----+-Reset::PC5       / ----MISO
           |       PD0::::PC4       |/ ---MOSI
         C1=       PD1::::PC3       ||/   GND---GND
       47pF|   *2  PD2::::PC2 *1    |||   VCC---+5V
           |   |   PD3::::PC1 |     |||
     GND--/    V   PD4::::PC0 V     |||
     +5V-----------VCC:::AGND---GND |||
     GND-----------GND:::AREF---+5V |||
            -------XTAL1:AVCC-------/||
      +-+--/   ----XTAL2::PB5        ||
      | |     /    PD5::::PB4-------/ |
    C2= |     |    PD6::::PB3--------/
  27pF| |     |    PD7::::PB2
GND---+ ^     |    PB0::::PB1--
      | Quarz |        ^       \
    C2= Y 8MHz|     ATmegaXX   |
  27pF| |     |               / Taster
      +-+-----/                |
                               |
                               O R2
                               | 1kR
 :Photowiderstand:             |
       R2      LDR            GND
       1kR     1kR
+5V o---O-------O---o GND
             |
             V
            ADC


*1: 100nF zwischen AVCC & AREF, nahe am uC
*2: 100nF zwischen VCC  &  GND, nahe am uC
</C>
Nochmal die 2 Kondensatoren für VCC und AVCC dazu. OK - die Schaltun
ist allgemein für einen ATmegaXX.
Was heisst das mit "interne oder externe Referenz"?
Mach ich mit +5V was kaput?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt hier 'MegaXX'? Musst Dich schon etwas spezifizieren. Sieht
mit nach Mega8 und kompatible aus. Aber was mir jetzt noch auffällt:
Der SCK-Anschluss hat nichts an AVCC verloren! Der ist an PB5!

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> *1: 100nF zwischen AVCC & AREF, nahe am uC

macht natürlich auch nicht viel Sinn. Eher von AVCC nach AGND. Und
zusätzlich einen von AREF nach AGND, es sei denn, Du willst den ADC gar
nicht nutzen. Wenn Du nicht sicher bist, ob Du externe oder interne
Referenz nehmen willst, dann machs flexibel...

Autor: Gernot Frisch (gernotfrisch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh weia! Bin verrutscht bei hinschaun. OK. Kann ich den AREF auch ganz
weglassen? Für was ist denn der?

So besser:
<CODE>
                                          :ISP:
        R1        ------------------------RESET
        10kR     /                   -----SCK
     +5V-O-+-----+-Reset::PC5       / ----MISO
           |       PD0::::PC4       |/ ---MOSI
         C1=       PD1::::PC3       ||/   GND---GND
       47pF|   *2  PD2::::PC2 *1    |||   VCC---+5V
           |   |   PD3::::PC1 |     |||
     GND--/    V   PD4::::PC0 V     |||
     +5V-----------VCC:::AGND---GND |||
     GND-----------GND:::AREF---+5V |||
            -------XTAL1:AVCC---+5V |||
      +-+--/   ----XTAL2::PB5------/ ||
      | |     /    PD5::::PB4-------/ |
    C2= |     |    PD6::::PB3--------/
  27pF| |     |    PD7::::PB2
GND---+ ^     |    PB0::::PB1--
      | Quarz |        ^       \
    C2= Y 8MHz|     ATmegaXX   |
  27pF| |     |               / Taster
      +-+-----/                |
                               |
                               O R2
                               | 1kR
 :Photowiderstand:             |
       R2      LDR            GND
       1kR     1kR
+5V o---O-------O---o GND
             |
             V
            ADC
</CODE>

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Referenz des ADCs sagt diesem, fuer welche Spannung der maximale
ADC-Register wert ermittelt werden soll. Wenn du also Spannungen
zwischen 0 und 5V messen willst, dann setzt du AREF auf 5V. Wenn du nur
0 bis 2,5V messen willst, wuerdest du mit AREF = 5V nicht die volle
Genauigkeit nutzen sondern eben nur 9 bzw. 7 statt 10 bzw. 8 Bit. AREF
sollte so dicht wie moeglich an der maximalen zu messenden Spannung
liegen (etwas darueber) und sehr stabil sein um die maximale
Genauigkeit des ADCs zu erhalten. Die interne Referenz liegt bei 2,56V
und ist relativ stabil verglichen mit der Versorgungsspannung. Wenn du
die interne Referenz nutzt, wird diese ueber den AREF Pin ausgegeben.
In diesem Fall darf der AREF Pin nicht mit +5V verbunden werden. Wenn
du eine andere (externe) Referenz nutzen willst, ist AREF ein Eingang
an den die Referenzspannung angelegt werden muss. Ob du die eine oder
andere Variante waehlst haengt von den Anforderungen und der ADC
Kondifuration ab, die du in deinem Programm festlegst.

Autor: Gernot Frisch (gernotfrisch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK. Wie sag ich dem Programm: Ich hab am AREF +5V angelegt? Das will ich
nämlich dann machen, weil ich meinen LDR mit 5V betreibe.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenn du es richtig huebsch machen willst, baust du fuer AVcc noch ne
schoene LC-Glaettung zur Entkopplung von Vcc. Ist aber vermutlich nicht
noetig. Ich wuerde bei ner Experimentirr-Platine den ADC ohnehin nur
mit 8 Bit Genauigkeit und zur einfacheren Nutzung linksjustiert
verwenden.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Das will ich nämlich dann machen, weil ich meinen LDR mit 5V
betreibe". Tust du das ? Wenn der LDR nicht belichtet wird, hat er
doch 1K Widerstand, oder ? Dann wuerde die Spannung am ADC genau 2,5V
betragen. Deshalb meine Frage nach der Kennlinie. Wie du den ADC
konfigurierst steht im Datenblatt.

Autor: Gernot Frisch (gernotfrisch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Wenn der LDR nicht belichtet wird, hat er
doch 1K Widerstand, oder ? Dann wuerde die Spannung am ADC genau 2,5V
betragen"

Ach!? <kopfkratz> dann lass' ich das Kabel am AREF weg und hab 2.56V >
2.5V = super.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau am besten mal das Datenblatt zum LDR an. Ich kann mich auch irren.
Ich verbaue sowas nicht und bin nicht sicher, ob der Nominalwiderstand
auf den belichteten oder unbelichteten Betrieb bezogen ist. Du solltest
beide Werte kennen und die Schaltung entsprechend dimensionieren, wobei
der ADC gerne eine niedrige Quellimpedanz von unter 10k hat.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der LDR 1k im belichteten Zustand hat und einen hoeheren Widerstand
im unbelichteten Zustand, solltest du die Positionen von R2 und LDR
vertauschen. Ansonsten gilt mein erster Vorschlag. In beiden Faellen
kannst du die interne Referenz nutzen und brauchst keine externe
Beschaltung des VREF Pins.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du sagst ihm nicht, dass da 5V liegen. Das interessiert
den ADC naemlich ueberhaupt nicht.

Aber in den Konfigurationsregistern gibt es eine Einstell-
möglichkeit, bei der man auswählt:

   1   ADC Referenz von AVcc nehmen
   2   interne Referenzspannung hernehmen
   3   externe Referenzspannung hernehmen

bei 1 und 2 wird die Referenzspannung zusätzlich am AREF
Ausgang ausgegeben. Bei 3 fungiert der AREF als Eingang.
Jede Spannung (natuerlich in Grenzen) die du dort anlegst
wird als Referenzspannung hergenommen.

Den Fehler hab ich auf meinen Experimentierboard auch gemacht.
Ich hab AREF fix mit AVcc verbunden. Ist zwar so für sich
alleine genommen noch kein Beinbruch, ich kann halt mit dem
ADC nur Spannungen ausmessen bei denen AVcc (also 5V) mit einem
Wert von 1023 am ADC ausgegeben wird. Bei der nächsten Version
kommt da ein Jumper hin, sodass ich den AREF von AVcc abkoppeln
kann. (Und ich werde auch die AREF Spannung etwas besser sieben
als bisher, die untersten 2, manchmal auch 3 Bit des ADC sind nicht
wirklich stabil, wenn ich ein Poti als Spannungsteiler an den ADC
anschliesse).

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die Unart, ARef an AVcc zu hängen, ist mit schon mehrmals aufgefallen,
u.a. beim myAVR meines Kollegen.

Wenn ich AVcc will, setze ich das im Register.
An ARef einen 100nF gegen Masse. Dann knn man problemslos eine externe
Referenzspannung anlegen, wenn man will.
Ich weiß auch nicht so genau, was der interne MOSFet davon hält, wenn
er z.B. die internen rund 2,5V gegen die externe AVcc schalten muß,
wenn ich auf dem myAVR die Referenz auf intern setze.

Was mir noch aufgefallen ist (habe ich auf Anhieb im Datenblatt des
Mega8 und Mega16 nicht gefunden): der Analog-Port muß als Eingang ohne
Pullup programmiert sein, sonst misst der ADC nur Mist...

Gruß aus Berlin
Michael

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael:

> die Unart, ARef an AVcc zu hängen, ist mit schon mehrmals
> aufgefallen, u.a. beim myAVR meines Kollegen.

Die 'Unart', den AREF-Pin überhaupt mit AVCC zu verbinden ist
'historisch bedingt' und kommt von den älteren AVRs (AT90Sxxxx), die
noch nicht über die Möglichkeit verfügten, dies intern zu
konfigurieren. Ich habe da natürlich auch wieder nicht dran gedacht,
aber es ist eine 'eingefahrene Angewohnheit', die bei Leuten, die
noch mit den älteren AVRs gearbeitet haben u.U. schwer abzustellen
ist.

Aber wie schon weiter oben gesagt: Wenn man ein einigermaßen universell
einsetzbares Experimentierboard bauen will, dann sollte man den o.g.
Kondensator gegen Masse am AREF vorsehen und zusätzlich eine
Anschlussmöglichkeit für eine externe Referenzspannung.

Gruß

Johnny

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.