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!
Die Reset Schaltung ist falsch. Der gemeinsame Kontakt von R1 und C1 muessen mit dem reset-pin des uC verbunden werden.
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...
- 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
...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.
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
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?
Sieht ganz ordentlich aus, bis auf dass die besagten Abblockkondensatoren noch fehlen...
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
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.
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!
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.
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...
<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?
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!
> *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...
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>
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.
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.
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.
"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.
"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.
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.
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.
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).
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
@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
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.