Hallo miteinander! Ich hoffe nun auch bald in die Welt der Mikrocontroller einsteigen zu können. Ein paar Teile sind zwar noch unterwegs, aber ich denke, diese treffen bis zum Wochenende ein :). Trotzdem habe ich mir schon einmal Gedanken gemacht, wie ich meine erste Schaltung aufbauen möchte. Zum Programmieren habe ich einen USBprog Adapter. Hier erst mal der Plan: http://quorr.de/temp/images/erster_plan.png Das ist meine erste Eagle Zeichnung - ich hoffe ihr versteht, wie ich das meine. Ich beziehe mich auf das Handbuch unter http://atmel.com/dyn/products/product_card.asp?part_id=2014 ( ATmega32(L) (346 pages, revision M, updated 5/08) ) So, nun die Fragen: 1. Quarz Für meinen ersten Aufbau benötige ich doch nicht zwingend ein Quarz oder? Für spätere Versuche, wenn ich einen Quarz ranhängen möchte, welche Frequenz muss der haben? (Handbuch S.26) For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and 16 MHz with CKOPT programmed. Heißt das (wildes Raten), wenn ich den CKOPT-Fuse -> 0 setze, kann ich einen 16MHz Quarz benutzen? 2. Programmierung Ich möchte ja den USBprog Adapter unter Linux mit AVRDUDE verwenden. 2.1 Stromquelle Wenn ich den entsprechenden Jumper setze (1-2 -> 5V vom USB über Schottky Diode) brauche ich keine andere Spannungsquelle mehr für meine Schaltung? (http://www.embedded-projects.net/index.php?page_id=148) 2.2. dumme Frage Woher erkennt der Mikrocontroller, das er jetzt programmiert wird? Gibt das Programmiergerät Spannung auf den Resetpin und dadurch kann man den µC programmieren? 2.3 Anschlussplan USBprog Ich bin mir nicht ganz sicher, ob es so passt wie ich in dem Plan eingezeichnet habe. Ich habe mir einfach die Verbindung unter dem Link von 2.1 rausgesucht... Kann das jemand vielleicht mal kurz anschauen? 3. Schaltung 3.1 LEDs Benötigen noch einen Vorwiderstand! Den habe ich in der Zeichnung vergessen. (5V - 2.4V) / 0.02A = 130 Ohm Aber ansonsten kann ich die schon direkt anschließen oder? DC Current per I/O Pin ... 40.0 mA (S. 287) 4. Fuses Ich finde irgendwie in dem Handbuch keine Übersicht über alle Fuses. Gibt es die noch mal irgendwo extra? Ich muss sagen, der Einstieg in diese Welt ist wirklich nicht leicht - finde zumindest ich. Ich hoffe ich konnte euch mit meinen Fragen amüsieren ;) Gruß Mark
>Für meinen ersten Aufbau benötige ich doch nicht zwingend ein Quarz >oder? Nö, alle AVRs haben einen internen Oszillator (meist 1-8MHz), welcher standardmäßig aktiv ist. Beim Mega32 glaub ich auf 4 MHz. Aber steht ja im Datenblatt >Für spätere Versuche, wenn ich einen Quarz ranhängen möchte, welche >Frequenz muss der haben? Egal, hauptsache innerhalb der Spec. des µCs. Beim ATmega32 darfst du bis 16Mhz, einige können auch mehr (steht ja im Datenblatt). Für genaue Baudraten gibts extra "krumme" Quarze mit denen man besser an die Baudrate rankommt, als mit 4,8 oder 16 MHz. Ich würde auf das Board ruhig schon einen sockel an XTAL vorsehen mit 22pF Kerkos. >2.1 Stromquelle Der µC muss selber auch ne Spannungsversorgung haben. Die Schottky dient imho nur als Schutz für USBprog >2.2. dumme Frage Genau, erst kommt ein Reset und dann werden die MISO,MOSI Pins stimuliert. >2.3 Anschlussplan USBprog Sieht imho richtig aus. Ich würde die Resetschaltung nochmal angucken. Wenigstens ein Pullup sollte da noch ran. Du solltest zwischen VCC und GND noch nen 100nF packen. Und am besten auch noch einen etwas größeren Elko (z.B. 47uF). Kannst dich auch hiervon ein wenig inspirieren lassen: http://www.roboternetz.de/wissen/index.php/RN-Control Oder eben hier im Artikelbereich gibts auch einige Grundschaltungen >3.1 LEDs Ja kannst du. >4. Fuses http://www.mikrocontroller.net/articles/AVR_Fuses
(Nur die Fragen, die ich schnell beantworten konnte) >Hier erst mal der Plan: Es fehlen Vorwiderstände für die LEDs sowie ein Pullup-Widerstand für den Reset-Pin. Sonst soweit überflogen OK. >Für meinen ersten Aufbau benötige ich doch nicht zwingend ein Quarz >oder? Nein, Du kannst den AVR auch vom internen Oszillator (kein Quarz --> nicht so furchtbar frequenzgenau) takten lassen. Das ist auch die Fuse-Konfiguration im Auslieferungszustand. Einen Quarz brauchst Du z. B. für den UART (zeitkritisch) oder wenn Du eine Uhr programmieren willst (soll ja nicht 10 min pro Tag falsch gehn) oder wenn Du einen besonders schnellen Takt willst (intern nur 1 MHz). >Für spätere Versuche, wenn ich einen Quarz ranhängen möchte, welche >Frequenz muss der haben? Alles bis max. 20 MHz geht ("V"-Controllerversionen nur 10 MHz). Richtet sich nach der Anwendung. >Heißt das (wildes Raten), wenn ich den CKOPT-Fuse -> 0 setze, kann ich >einen 16MHz Quarz benutzen? Seh ich auch so. >Woher erkennt der Mikrocontroller, das er jetzt programmiert wird? Gibt >das Programmiergerät Spannung auf den Resetpin und dadurch kann man den >µC programmieren? Nein, gerade anders herum. Er zieht den Resetpin für die Dauer der Programmierung auf GND. Es gibt auch einen zweiten Programmiermodus mit in einigen speziellen Punkten erweiterten Möglichkeiten (dieser Modus wird nicht von allen Programern unterstützt). Dort wird eine Spannung von 12 V auf den Resetpin (nur auf diesen!) gegeben. Heißt deshalb "High-Voltage-Programming". >Benötigen noch einen Vorwiderstand! Den habe ich in der Zeichnung >vergessen. Jaha. >Aber ansonsten kann ich die schon direkt anschließen oder? Na klar. Nicht direkt (sondern via Treibertransistoren) anschließen sollte man u. a. Lautsprecher, Motoren und Relais. >DC Current per I/O Pin ... 40.0 mA (S. 287) Ja. Außerdem gibts noch Beschränkungen für den Port-Summenstrom und den Controller-Summenstrom. Stehen im Data Sheet, hinten bei den "Electrical Characteristics". >Ich finde irgendwie in dem Handbuch keine Übersicht über alle Fuses. >Gibt es die noch mal irgendwo extra? Hm, also im Atmega48/88/168 Data Sheet sind die Fuses und ihre Bedeutungen schön in Tabellenform beschrieben ("27.2 Fuses"). Davor daselbe für die Lock Bits, danach für die Signature Bytes und das Calibration Byte. >Ich muss sagen, der Einstieg in diese Welt ist wirklich nicht leicht - Halb so wild. Guten Start!
reset-beschaltung fehlt, vorwiderstände für leds fehlen, taster haben keinen pulldown, oder sollen nach masse schalten, da der atmel interne pullups hat. junctions fehlen.
Als Ergänzung: Die Taster sollten nach GND schalten. So kann man mit Hilfe der internen Pullups die Schaltzustände eindeutig erkennen. Es ist zwar nicht nötig aber vielleicht nützlich die Taster auch über Vorwiderstände anzuschließen. Dann kann bei einem falsch konfigurierten Ports nichts kaputt gehen.
Mark S. wrote: > Wenn ich den entsprechenden Jumper setze (1-2 -> 5V vom USB über > Schottky Diode) brauche ich keine andere Spannungsquelle mehr für meine > Schaltung? (http://www.embedded-projects.net/index.php?page_id=148) Auch wenn es viele Bastler cool finden, der USB-Anschluß ist kein Experimentiernetzteil. Man macht schnell mal nen Kurzschluß oder schließt was falsch an und das nicht nur als Anfänger. Ein toter USB-Anschluß oder sogar ein schadhaftes Motherboard ist dann vielleicht nicht mehr so cool. Besser ein Netzteil mit einstellbarer Strombegenzung (Wandwarze mit 2 * LM317 als billige Selbstbaulösung geht auch). Peter
Es fehlen alle Abblock Kondensatoren! Überall gehören noch Widerstände dazwischen, auch bei den Tastern. Je nach Qualität der Spannung eine Begrenzung.
Guten Mittag! Ich möchte mich erst mal bei allen für ihre Hilfe bedanken! Ich habe jetzt noch ein paar Verbesserungen (aufgrund eurer Vorschläge) in meinen Plan einfließen lassen. Die neue Version könnt ihr hier bestaunen: http://quorr.de/temp/images/v2.png Ein paar Sachen sind mir noch nicht so ganz klar. Mike J. wrote: > Es fehlen alle Abblock Kondensatoren! Wo müssten solche Kondensatoren verbaut werden? Michael H* wrote: > junctions fehlen. Was versteht man unter junctions? Punkte wo sich die Leitungen kreuzen? - Resetpin - Stimmt diese Konstruktion so? Ich meine, nach dem was AVRFan geschrieben hat, müsste der Pin immer auf VCC liegen und nur zum Programmieren auf GND? - Widerstände vor den Tastern - Natürlich würde ich gerne meinen neuen µC schützen. Wie dimensioniere ich die Widerstände? - USBprog - Vielleicht eine blöde Frage, aber die VCC Spannung wird ja nun durch mein Netzteil geliefert - also brauche ich am USBprog keinen Jumper mehr? Ich möchte da nichts kaputt machen (vor allem am USBprog)! Bin echt begeistert von der Freundlichkeit hier im Forum. Ich kenne Foren (damals von meinem Umstieg auf Linux), da werden Anfänger nicht so geduldig behandelt (um es mal vorsichtig auszudrücken)! Also nochmals vielen Dank an euch alle und ich hoffe ihr bleibt so nett ;). Gruß Mark
Mark S. wrote: > Guten Mittag! > > Ich möchte mich erst mal bei allen für ihre Hilfe bedanken! Ich habe > jetzt noch ein paar Verbesserungen (aufgrund eurer Vorschläge) in meinen > Plan einfließen lassen. Die neue Version könnt ihr hier bestaunen: > > http://quorr.de/temp/images/v2.png Das sieht schonmal besser aus. > Ein paar Sachen sind mir noch nicht so ganz klar. > > Mike J. wrote: >> Es fehlen alle Abblock Kondensatoren! > > Wo müssten solche Kondensatoren verbaut werden? Wenigstens erstmal zwischen VCC und GND, möglichst nah an der CPU. Generell aber überall wo du irgendeine Form von Versorgungs oder Referenz-spannung hast die u.U. belastet wird. Kleine 100n KeKos sind da voll ausreichend. > - Widerstände vor den Tastern - > > Natürlich würde ich gerne meinen neuen µC schützen. Wie dimensioniere > ich die Widerstände? Die externen PullUps brauchst du nicht, einfach die internen pullups aktivieren, indem du die bits auf PORTD setzt. Falls du Vorwiderstände an die Taster machen willst, dann sollten die nicht zu gross sein, da du dir zusammen mit dem internen PullUp einen Spannungsteiler baust und ansonsten das Potential nicht sauber erkannt werden kann. Die internen pullups liegen bei 20-50kOhm. Die Vorwiderstände braucht man im Normalfall aber nicht, problematisch wird es halt nur wenn man den Port als Ausgang definiert und eine 1 ausgibt, da du somit einen Kurzschluss nach GND erzeugst. Die AVRs schalten in dem Moment aber normal ab. Bei den LED Vorwiderständen kommt es natürlich darauf an was du für LEDs hast, die 150 sind aber im Normalfall ok. Einen netten kleinen Rechner gibts beim ELKO: http://www.elektronik-kompendium.de/sites/bau/1109111.htm
Mark S. wrote: > Guten Mittag! Halloechen Mark ;) > Ich möchte mich erst mal bei allen für ihre Hilfe bedanken! Ich habe > jetzt noch ein paar Verbesserungen (aufgrund eurer Vorschläge) in meinen > Plan einfließen lassen. Die neue Version könnt ihr hier bestaunen: > > http://quorr.de/temp/images/v2.png Was ich da sehe: D2 ist ueberfluessig, die Jumper am Quarz machen keinen Sinn. Die externen Pullups fuer die Taster sind auch nicht notwendig. LEDs werden ueblicherweise gegen GND geschalten, Deine Loesung ist aber auch moeglich. Den reset am ISP-Stecker solltest Du noch mit einem 45n abpuffern. Selbiges gilt fuer die Taster: der aktive (gedrueckte) Zustand sollte GND entsprechen. AREF und AGND solltest Du (abgepuffert) ebenfalls immer anschliessen. Ebenfalls solltest Du den AVR selber nochmal mit 100n abblocken. Die 10u bzw. 100n am 7805 sind reichlich klein bemessen. In richtung 100u bzw. 470u solltest Du da gehen. > Was versteht man unter junctions? Punkte wo sich die Leitungen kreuzen? Ein Verbindungspunkt, der eine elektrische Verbindung darstellt. Richtig und da sehe ich dass die bei Dir fast alle fehlen. Wie hast Du das geschafft? Kann natuerlichd dann gut sein dass das alles nicht verbunden ist auf Deinem Board nachher. > Natürlich würde ich gerne meinen neuen µC schützen. Wie dimensioniere > ich die Widerstände? ? > Vielleicht eine blöde Frage, aber die VCC Spannung wird ja nun durch > mein Netzteil geliefert - also brauche ich am USBprog keinen Jumper > mehr? Ich möchte da nichts kaputt machen (vor allem am USBprog)! ? > Bin echt begeistert von der Freundlichkeit hier im Forum. Ich kenne > Foren (damals von meinem Umstieg auf Linux), da werden Anfänger nicht so > geduldig behandelt (um es mal vorsichtig auszudrücken)! Also nochmals > vielen Dank an euch alle und ich hoffe ihr bleibt so nett ;). > > Gruß Mark Weil Du's bist ;) lg, Michael
Mark S. wrote: > http://quorr.de/temp/images/v2.png Wo kommt der Strom für den 5V-Regler her? Die Bezeichnungen +5V/-5V klingen ein bischen komisch. Spannungen bezieht man ja i.A. auf Masse (GND) und mit einer Diode zwischen -5V und GND gibt's einen prima Kurzschluss. AVCC/AGND muss beschaltet werden. Egal ob der ADC benutzt wird oder nicht. Häng die LEDs nicht ausgerechnet an Port C. Könnten dir sonst ein paar fehlen, denn von Haus aus sitzt da der JTAG-Port dran (die Txx Pins 2-5), der für's Debugging vorgesehen ist und im Betrieb die Pins belegt. Kann man zwar per ISP abschalten, aber wenn du nicht grad an Pinmangel leidest, leg die LEDs nicht ausgerechnet an Pins C2-5. Die Pullups an den Schaltern sind nett, aber nicht zwingend, weil man dafür auch die internen Pullups des AVR nutzen kann. > Wo müssten solche Kondensatoren verbaut werden? Zwischen VCC und dem dazu gehörenden GND-Pin. Jeweils einer pro Pin-Paar. So dicht wie möglich dran. Keramik-Typ, kein Elko, kein Foilentyp. > Was versteht man unter junctions? Punkte wo sich die Leitungen kreuzen? Jo. > Stimmt diese Konstruktion so? Ich meine, nach dem was AVRFan geschrieben > hat, müsste der Pin immer auf VCC liegen und nur zum Programmieren auf > GND? Stimmt so. In störempfindlicher Umgebung hängt man gern noch einen Kondensator 10-100nF an Masse, aber in normaler Umgebung ist das nicht nötig.
Michael G. wrote: > AREF und AGND solltest Du (abgepuffert) ebenfalls immer anschliessen. > Ebenfalls solltest Du den AVR selber nochmal mit 100n abblocken. AVCC ja, aber grad AREF ist so ziemlich der einzige Pin, den man üblicherweise offen lässt. Allenfalls 1-100nF gegen GND, wenn der ADC verwendet wird. Andernfalls schliesst man die interne Referenzspannung allzu leicht kurz. > Die 10u bzw. 100n am 7805 sind reichlich klein bemessen. In richtung > 100u bzw. 470u solltest Du da gehen. Wenn gleichgerichtete Wechselspannung am Eingang, die erst geglättet werden muss, ja. Wenn das Gleichspannung ist, dann passt das hingegen genau so wie gezeigt. Ein 470µF Monster hinter dem Regler ist schlicht Unfug. Sinnvoller sind 10µF über die Platine verteilt. Da hier nicht viel ist, tut es einer davon in der Nähe des Controllers, muss aber nicht sein.
Andreas Kaiser wrote: > Michael G. wrote: > >> AREF und AGND solltest Du (abgepuffert) ebenfalls immer anschliessen. >> Ebenfalls solltest Du den AVR selber nochmal mit 100n abblocken. > > AVCC ja, aber grad AREF ist so ziemlich der einzige Pin, den man > üblicherweise offen lässt. Allenfalls 1-100nF gegen GND, wenn der ADC > verwendet wird. Andernfalls schliesst man die interne Referenzspannung > allzu leicht kurz. Hmm... das ist mir neu. AFAIR hab ich meinen Grundaufbau mal aus irgendeiner Referenz uebernommen, evt. hier aus dem Tutorial. Konnte aber nichts finden. Das Problem ist doch dass die interne Referenzspannung recht ungenau ist. Und sofern ich mich erinnere kann man das doch auf extern konfigurieren, ohne jetzt nachgeschaut zu haben...?
Michael G. wrote: > Hmm... das ist mir neu. AFAIR hab ich meinen Grundaufbau mal aus > irgendeiner Referenz uebernommen, evt. hier aus dem Tutorial. Ja, das Tutorial hatte früher irgendeinen AT90-Typ drin, keinen ATMega. Da galten etwas andere Regeln, weil die keine interne Referenz hatten. > Das Problem ist doch dass die interne > Referenzspannung recht ungenau ist. Ist sie, aber die ADC-Referenz lässt sich auch intern auf AVCC umprogrammieren ohne was am Pin drehen zu müssen. Erst wenn's drauf ankommt hängt man eine externe Präzisionsreferenz an den Pin. Aber da hier von präziser Analogmessung nicht die Rede ist, bleibt der schlicht offen.
Zu den Tastern: > Die Vorwiderstände braucht man im > Normalfall aber nicht, problematisch wird es halt nur wenn man den Port > als Ausgang definiert und eine 1 ausgibt, da du somit einen Kurzschluss > nach GND erzeugst. Die AVRs schalten in dem Moment aber normal ab. Beim AVR habe ich das noch nicht ausprobiert, PICs und LPCs (zumindest die 21xx) können Kurzschlüsse nicht ab. Der entsprechende Ausgang geht kaputt. Manchmal läßt sich der Pin dann noch als Eingang verwenden. Welcher Wert? Er muß den Strom halt auf einen zulässigen Wert begrenzen - wobei ich hier nicht das Maximum von 40mA ansetzen würde - und darf nicht so groß sein das der Pin nicht weit genug runtergezogen werden kann. Ich denke das man da mit 1k nichts falsch macht. In der Serienfertigung kann man die Widerstände weglassen. Aber bei einer Experimentierschaltung mit ebenso experimenteller Software würde die schon einbauen.
Andreas Kaiser wrote: > Michael G. wrote: > Ist sie, aber die ADC-Referenz lässt sich auch intern auf AVCC > umprogrammieren ohne was am Pin drehen zu müssen. Erst wenn's drauf > ankommt hängt man eine externe Präzisionsreferenz an den Pin. Aber da > hier von präziser Analogmessung nicht die Rede ist, bleibt der schlicht > offen. OK, bei meiner naechsten Schaltung mache ich es so. Danke fuer den Hinweis.
let wrote: > Beim AVR habe ich das noch nicht ausprobiert, PICs und LPCs > (zumindest die 21xx) können Kurzschlüsse nicht ab. Weshalb man mit einer 300mA Wandwarze als Stromversorgung auch besser dran ist als mit eine PC-Netzteil. Hierauf bezogen: Ein 78L05 an Stelle des 7805 als Spannungsregler kann einem manche Fehler ausbügeln, weil nicht so viel Strom fliesst, dass es gleich knallt. AVRs sind recht robuste Kerlchen, bei den 100mA eines 78L05 fliegen die nicht sofort weg.
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.