Hallo Ich bin neu in diesem Forum, habe mit erfolg das AVR Tutorial gemeistert, und würde mir nun gerne eine eigene Schaltung mit meinem Programmierten AVR bauen. Nun wüsst ich gerne, ob die Schaltung so wie ich sie mir überlet habe überhaupt funktioniert. Sinn der Schaltung: Meine K8055 USB Board besitzt 5 Digitale Eingänge. da ich nur einzelne Taster anhängen möchte, habe ich mir überlegt diese 5 Eingänge mittels eines AVR zu multiplizieren (da währen dann bis zu 31 Taster möglich¿) Dabei sind JP2 die ausgänge, die mit der USB karte Verbunden werden soll. JP1 sind mal 16 Pins für 8 Taster. Meine Fragen: Ist die Stromversorgung für meine Schaltung richtig angeschlossen? Habe ich das mit den 10K widerständen für die Taster richtig verstanden (aus den I/O Grundlagen des Tutorials kopiert)? Oder kann man das auch einfacher lösen? z.B alle Taster über den gleichen wiederstand? Muss ich bei den ausgängen ebenfalls ein 1K wiederstand dazwischen hängen oder gilt das nur bei benutzung von LED's? Für korrekturen vor der grossen Lötaktion währe ich sehr dankbar. mfg sascha
Der Reset-Pin muss über nen Wiederstand z.b. 5K an VCC Sonst sollte es gehen
Anbei eine überarbeitete Version: Wer hat nun recht? oder haben alle recht? kann ich die Schaltung noch etwas vereinfachen?? wieso muss am reset noch ein Pull-Up hin? UND muss AGND wirklich mit der masse verbunden werden?
Der Kondensator gehört zwischen Vcc und GND (Pin 7 und 8) und nicht an den Reset.
"Habe ich das mit den 10K widerständen für die Taster richtig verstanden (aus den I/O Grundlagen des Tutorials kopiert)? Oder kann man das auch einfacher lösen?" Man könnte dien internen Pullup des jeweiligen Portpin aktivieren und den Taster dirket gegen Masse schalten. So spart man sich die Pulldown-Widerstände.
Zwischen Pin7 und Pin8 am AVR und Pin 14 und Pin7 am QG2 noch jeweils einen 100n Cer.Kondensator einbauen. AGND noch an Masse legen.
Hallo, auch wenn es eine Dauerdiskussion ist: an Reset muß kein PullUp, der Mega8 (und die anderen aktuellen AVR haben eine interne Resetschaltung. Ein C gegen GND (47...100n) halte ich trotzdem für sinnvoll, weil es unerwartete Resets durch Störungen von außen (ISP-Kabel hängt dran, ist aber am anderen Ende nicht angeschlossen als Beispiel) wirksam unterdrückt. AVCC und AGND ist die Spannungsversorgung von PortC (beim Mega8), also nicht nur des ADC sondern des kompletten Ports. Folglich müssen die auch immer angeschlossen sein (AVCC an VCC und AGND an GND). Ob man die Dossel in die Leitung zu AVCC baut, ist eine Frage der Nutzung des ADC und der möglichen Störungen. Bei AREF empfiehlt sich generell, einen 100n gegen GND zu schalten, falls man den ADC benutzen will. Ansonsten vermisse ich einen Anschluß für den ISP-Programmer? Gruß aus Berlin Michael
Vielen Dank. Anbei nochmals eine Version. Wird allerdings immer verwirrender! Kann mir jemand All diese Korrekturen (in bezug auf meine erste Skizze) zusammenfassen, falls die jetztige Version immer noch falsch ist? mfg sascha
Übersichtlicher wird es, wenn du die Signale GND und VCC aus der EAGLE Bibliothek supply1.lbr verwendest. Überall, wo du dann zum Beispiel VCC ranklickst, werden dann im Layout Verbindungen erstellt.
"Übersichtlicher wird es, wenn du die Signale GND und VCC aus der EAGLE Bibliothek supply1.lbr verwendest. Überall, wo du dann zum Beispiel VCC ranklickst, werden dann im Layout Verbindungen erstellt." hört sich gut an. Allerdings weiss ich nicht genau von was du Redest. Da dies meine ersten gehversüche in Eagle sind. (Da muss ich wohl noch eine menge lernen) mfg sascha
Du gehst auf den Button ADD, zum Hinzufügen von Bauteilen. Dort gibt es eine Bibliothek supply1 und supply2. Dort sind diese ganzen Symbole drin, die du dann wie ein Bauteil im Schaltplan platzieren kannst.
Genau, wobei alle Symbole gleichen Namens automatisch "im Hintergrund" miteinander verbunden werden.
Also die 100nF kondensatoren hast jetzt ein wenig falsch eingezeichnet: Grundsätzlich gehören je alle GND und alle (A)VCC Pins miteinander verbunden (auch vom Osc). Zwischen GND und VCC müssen dann ein paar 100nF Kondensatoren. (also ein Anschluss an GND und ein Anschluss an +) Auf dem Schaltbild sind diese Kondensatoren alle parallel. Auf der Platine allerdings müssen sie so nah wie möglich an die Pins (Stichwort Abblock-Kondensator, müsstest eigentlich im Tut oder bei Google was dazu finden) Das mit dem Reset passt schon so (ich nehm hier meistens 100nf + 10k) Die 10k Widerstände kann man machen, muss man aber nicht. Der AVR hat eingebaute Pullups, welche genau dafür aktiviert werden können. Ansonsten, die Übersichtlichkeit, na ja... Entweder die Symbole verwenden wie oben bereits geschrieben, oder oben eine + Leitung und unten eine GND-Leitung und dann immer mit dieser Leitung verbinden. Gruß Roland
cool, vielen dank für die grossartigen tips! ich werde mir heute abend nochmals eine ausgiebige eagle lektion geben. "Ansonsten, die Übersichtlichkeit, na ja... Entweder die Symbole verwenden wie oben bereits geschrieben, oder oben eine + Leitung und unten eine GND-Leitung und dann immer mit dieser Leitung verbinden." eine sehr gute idee! diese leitungen kommen dann von J1 (stromversorgung)? sehe ich das richtig? mfg sascha
Was willst eigentlich für ein Netzteil anschließen? Der AVR braucht stabile 5V. Ich würde dir unbedingt noch raten, einen Spannungsregler mit drauf zu machen: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Stromversorgung Dann geht er nicht gleich kaputt, wenn mal keine 5V anliegen.
Die Pullups (10K-Widerstände) würde ich noch entsorgen, wurde hier schon ein paar Mal erwähnt. Gibt es einen Grund, dass Du die behalten willst?
>>Dann geht er nicht gleich kaputt, wenn mal keine 5V anliegen.
Heißt das, dass er jedesmal beim ausschalten kauputt geht, weil ja dann
keine 5V sondern 0V anliegen? :-)
Spass bei Seite.
Meinst du damit Spannungen über 5V oder weit unter 5V? Kann da
eigentlich was passieren wenn zu wenig Spannung anliegt?
Ciao
Chris
Kaputt gehen tut eigentlich nichts, allerdings kann es bei Microcontrollern vorkommen, dass diese bei zu niedriger Spannung oder zu langsam ansteigender Spannung "glitchen". D.h. es wird u.U. ein völlig falscher Befehl ausgeführt. Dieses Verfahren wurde früher oft angewandt um Kryptogafiechips (wie sie z.B. auf Smartcards vorhanden sind) zu manipulieren. Modernere Prozessoren haben aber hierzu einige Sicherheitsvorkehrungen, z.B. Brown Out detector, so dass notfalls ein sauberer Reset durchgeführt wird. Gruß Roland
Ich würde an jeden I/O einen Widerstand von 1 kOhm dranmachen, dann kannst du ihn als Ausgang nicht überlasten und wenn du zw. AVR und Widerstand noch ne 5,1V Zehnerdiode einfügst, passiert auch nichts wenn du ihn als Eingang schaltest und da mal ne höhere Spannung draufkommt. Außerdem würde ich gleich nen ATM16 nehmen dann haste gleich noch nen weiteren Port zu Verfügung. Ansonsten wäre es ziemlich einfach einige Latches wie z.B. 74HC573N zu nehmen.
Hallo Vielen Dank für die Hilfe. Ich habe nochmals einen Versuch gestartet und würde gerne an diesem Wochenende meine Erste Platine Äzen. Anbei nochmals eine neue Version Meiner Schaltung (mit aktven PullUps vim AVR). Ich hoffe, das Funktioniert so. mfg sascha
Du benötigst ZWEI Abblockkondensatoren mit 100nF, da das IC zwei Powereingänge hat. Im Schaltbild kannst den parallel zum anderen schalten. Beim Aufbau müssen diese aber möglichst nahe ans IC Gruß Roland
Hi Sacha, baus mal auf, so müsste es eigentlich funktionieren. Wie willst den Prozessor dann programmieren? Pack vielleicht noch nen ISP-Anschluss dazu, dann brauchst den Prozessor nicht immer umstecken. (Einfach nochmal ein Pfostenstecker auf SCK, MISO, MOSI, Reset, GND, +) Gruß Roland
Hallo Roland Vielen dank für deine motivierende Antwort. Den Chip habe ich bereits mit dem STK500 Programmiert und so wies ausschaut funktioniert er. Ich habe mich heute für den Bau der Platine ausgerüstet und das Layout steht auch (dank eagle). Ich werde sicher wieder berichten und fragen :-) denn schliesslich ist das nur ein kleiner Teil meinse Projekts. Ich habe mir heute ebenfalls einige 7segment Displays zugelegt. Leider habe ich bis jetzt keinen MAX7219 gefunden was schade ist, denn die 7segment anzeigen sind wichtig für mein Flugsimulator Projekt. mfg sascha
Bau dir ruhig trotzdem eine Schnittstelle zur Programmierung in die Zielplatine und bau dir zusätzlich einen billigen Programmieradapter. Erfahrungsgemäß läuft nicht alles beim ersten mal. Und jedes mal in den STK500 ein und ausstecken ... nervig, wenn man nach Stunden feststellt, dass man irgendwo ein Semikolon vergessen hat :-)
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.