Hallo, ich beschäftige mich seit einiger Zeit mit der AVR Familie und bin über den Weg Arduino dazu gekommen mich mehr mit der Materie zu befassen. Im Moment sauge ich alles an Infos auf die ich finden kann, da ich allerdings Quereinsteiger bin, fehlt mir hier und da noch Wissen. Generell versuche ich nicht nur nachzubauen, sondern auch zu verstehen, was und warum ich etwas mache. Nun bin ich an einem Punkt, an dem ich weg von Arduino eine eigene Schaltung mit einem ATMEGA32U4 aufbauen möchte. Ich weiß nicht, ob dies hier das richtige Forum ist, aber ich würde mich freuen, wenn jemand mal meinen Schaltplan überfliegen könnte und mir vielleicht Tipps geben kann, wo es noch zu Problemen kommen kann (gerne auch mit Verweis auf Quellen mit mehr Infos, um meinen unbändigen Wissensdurst zu stillen. ;-). Bei dem ganzen handelt es sich nicht um Raketentechnik, sondern eine Schaltung bei der es darum geht eingaben entgegen zu nehmen und später an den Rechner weiterzugeben (via Gamepad bzw. Joystick HID). Das ganze besteht aus einem ATMEGA32U4 und zwei Input Erweiterungen (MCP28017). Zusätzlich noch einen Connector für WS2812b LEDs sowie ein Nextion Display. Diese beiden werden im Normalfall über eine externe Stromquelle betrieben. Ich habe aber zusätzlich noch eine Lötbrücke eingebaut, um diese auch mit der USB Power zu betreiben (sofern z.B. nur 1-2 WS2812b benötigt werden). Ich hoffe, dass keine großen Klöppse in dem Plan zu finden sind, aber gibt halt Stellen an denen ich mir unsicher bin (z.B. bei den Werten für die Caps für den Crystal, welcher eine Load Capacitance von 12pF hat die als Grundlage für meine Berechnung dienten). Ach ja, da ich viele englische Tutorials, Anleitungen etc. lese, muss ich zugeben, dass mir etwas die Deutschsprachigen Begrifflichkeiten fehlen. Ich bitte um Nachsicht. :-) Herzlichen Dank, Benjamin
Wofür sollen zwei parallel geschaltete USB-Buchsen sein? Da steht was von power supply (OK), aber es gehen auch die Datenleitungen mit ran. Das passt eher nicht. Wenn dein Quarz nur 12 pF Lastkapazität braucht, bist du mit deinen je 20 pF schon weit drüber: die ergeben in Reihe geschaltet bereits 10 pF, aber der ATmega32U4 bringt ja auch noch was ein. Pi * Daumen würde ich da eher mit 2 x 12 pF ins Rennen gehen. /RESET könnte noch einen kleinen Kondensator und eine Schutzdiode vertragen zur Verbesserung der Störsicherheit. Siehe Appnote AVR040. (Falls du aber jemals mit debugWIRE debuggen möchtest, darf der Kondensator nicht installiert sein. In diesem Falle erst im fertigen Gerät installieren.) An jedes Vcc/GND-Paar gehört ein 100-nF-Kondensator dran (und zwar nahe dran). Da fehlen also mindestens 3 Stück. Für USB wäre es noch sinnvoll, ein Schutzdioden-Array vorzusehen. Gibt's von verschiedenen Herstellern. Wir haben mittlerweile schon auf zwei oder drei Xplained-Mini-Boards kaputte ATmega32U4, die „einfach so mal“ in der täglichen Arbeit gestorben sind, jeweils mit kaputten USB-Pins (der Rest dieser Controller funktioniert noch). Da hat Atmel-Microchip leider auch zu viel gespart.
:
Bearbeitet durch Moderator
Zwischen Vcc und AVcc gehört eine Drossel. Jeder Versorgungsspannungspin benötigt einen eigenen Kondensator so nah wie möglich am Pin gegen Masse. Benjamin K. schrieb: > dass mir etwas die Deutschsprachigen Begrifflichkeiten > fehlen. Kein Problem, die versteht sowieso niemand. Dokumenationen am besten immer in der Ursprungssprache lesen und auch so beschreiben.
:
Bearbeitet durch Moderator
Beitrag #5769738 wurde von einem Moderator gelöscht.
Hallo, Jörg W. schrieb: > Wofür sollen zwei parallel geschaltete USB-Buchsen sein? Da steht > was von power supply (OK), aber es gehen auch die Datenleitungen mit ran. > Das passt eher nicht. Es werden nie beide gleichzeitig benutzt, sondern entweder ein USB Port Typ B benutzt, oder, falls die LEDs und das Display mit externer Stromversorgung betrieben werden sollen, der 6 PIN connector (wovon 4 Pins für den USB Port und 2 Pins für die externe Spannungsversorgung gedacht sind). Heißt: Entweder man nutzt nur den USB Port Typ B oder den anderen Stecker, der zusätzlich noch die externe Spannungsversorgung inkludiert. Deshalb teilen die sich die Datenleitungen. > Wenn dein Quarz nur 12 pF Lastkapazität braucht, bist du mit deinen je > 20 pF schon weit drüber: die ergeben in Reihe geschaltet bereits 10 pF, > aber der ATmega32U4 bringt ja auch noch was ein. Pi * Daumen würde ich > da eher mit 2 x 12 pF ins Rennen gehen. Mmmmh... ok? Ich bin da nach folgendem Blogeintrag von Adafruit vorgegangen: https://blog.adafruit.com/2012/01/24/choosing-the-right-crystal-and-caps-for-your-design/
1 | C1, C2 = 2*CL – 2*Cstray |
Wobei ich von einem Cstray von 2 ausgegangen bin (da bin ich mir aber unsicher, wie man diesen Wert definiert und in Beispielen immer von Pi mal Daumen zwischen 2 und 5 ausgegangen wird). Also
1 | 2 * 12 - 2 * 2 = 20 |
Die Arduino Referenzdesigns arbeiten hier meist sogar mit 22pF. Mmmmh... > /RESET könnte noch einen kleinen Kondensator und eine Schutzdiode > vertragen zur Verbesserung der Störsicherheit. Siehe Appnote AVR040. > (Falls du aber jemals mit debugWIRE debuggen möchtest, darf der > Kondensator nicht installiert sein. In diesem Falle erst im fertigen > Gerät installieren.) Danke, dass werde ich mir mal anschauen. :-) > An jedes Vcc/GND-Paar gehört ein 100-nF-Kondensator dran (und zwar > nahe dran). Da fehlen also mindestens 3 Stück. Ich bin bisher davon ausgegangen, dass dies nur direkt vor ICs nötig ist und habe die eigentlich eingebaut (C4, C8, C5, wobei ich mir beim ATMEGA unsicher bin). Kannst du da etwas genauer werden? > Für USB wäre es noch sinnvoll, ein Schutzdioden-Array vorzusehen. Gibt's > von verschiedenen Herstellern. Wir haben mittlerweile schon auf zwei > oder drei Xplained-Mini-Boards kaputte ATmega32U4, die „einfach so mal“ > in der täglichen Arbeit gestorben sind, jeweils mit kaputten USB-Pins > (der Rest dieser Controller funktioniert noch). Da hat Atmel-Microchip > leider auch zu viel gespart. Ok, auch das werde ich mir anschauen. Ich habe aktuell eine PTC Sicherung (F1 im Plan) zwischen USB und Rest eingebaut mit 500ma als Überspannungsschutz und zur Absicherung des USB Ports. Da muss ich mich noch mehr einlesen denke ich. So wie ich das verstehe, platziere ich diese aber nach der PTC Sicherung? :-) Herzlichen Dank, Benjamin
:
Bearbeitet durch User
Benjamin K. schrieb: > Heißt: Entweder man nutzt nur den USB Port Typ B oder den > anderen Stecker, der zusätzlich noch die externe Spannungsversorgung > inkludiert. Deshalb teilen die sich die Datenleitungen. Naja, normalerweise macht man sowas nicht bei USB. Du hast dann mindestens in einer von beiden Konstellationen „flatternde Leitungsenden“. Andererseits hatte ich an Highspeed-USB gedacht (habe ich gerade in der Mache), bei 480 Mbit/s ist das tatsächlich ein Thema. Wir haben das deshalb dann so gelöst:
1 | ^ Vusb USB |
2 | ----+ | +----+ Buchse |
3 | | o /--| |--\ === |
4 | |---------o---/ +----+ \-----------=== |
5 | |---------o---\ +----+ /-----------=== |
6 | | o \--| |--/ === |
7 | ----+ | +----+ |
8 | ¯¯¯¯¯ 0-Ω- |
9 | GND Widerstände |
Die 0-Ω-Widerstände (SMD) werden dann nur bestückt, wenn man die USB-Buchse benutzen will. Will man den 4-Pin-Stecker „in der Mitte“ benutzen, bleiben sie offen. Andererseits, bei nur 12 Mbit/s von Fullspeed-USB kann man wohl die Kirche im Dorf lassen und das tatsächlich so bauen, wie du dachtest. Die Länge der freien Leitungsenden des jeweils gerade nicht benutzten Anschlusses sollte man aber minimal halten. > Mmmmh... ok? Ich bin da nach folgendem Blogeintrag von Adafruit > vorgegangen: > > https://blog.adafruit.com/2012/01/24/choosing-the-right-crystal-and-caps-for-your-design/ > >
1 | C1, C2 = 2*CL – 2*Cstray |
Passt schon, aber ich hätte 2 * 5 pF für die parasitären Kapazitäten angesetzt. Das Datenblatt schweigt sich leider aus. Also vielleicht dann eher 15 pF. > Die Arduino Referenzdesigns arbeiten hier meist sogar mit 22pF. Mmmmh... Die benutzen vermutlich einen Quarz mit höherer geforderter Lastkapazität. >> An jedes Vcc/GND-Paar gehört ein 100-nF-Kondensator dran (und zwar >> nahe dran). Da fehlen also mindestens 3 Stück. > Ich bin bisher davon ausgegangen, dass dies nur direkt vor ICs nötig ist > und habe die eigentlich eingebaut (C4, C8, C5, wobei ich mir beim ATMEGA > unsicher bin). Kannst du da etwas genauer werden? Meinst du, der AVR wäre kein IC? ;-) Diese Stützkondensatoren sind an allen CMOS-ICs essenziell; CMOS braucht keinen statischen Strom (außer Leckstrom), aber in dem Moment, wo Gatter umschalten (und das machen sie in einer getakteten Schaltung laufend) müssen interne Leitungskapazitäten umgeladen werden. Dabei wird für eine sehr kurze Zeit ein Stromimpuls aus der Versorgung entnommen. Ohne die Stütz-Cs würde dabei an der Zuleitungsinduktivität eine recht hohe Spannung abfallen, sodass die Betriebsspannung einbricht. Die 100-nF-Keramikkondensatoren an allen Betriebsspannungspins federn das ab. >> Für USB wäre es noch sinnvoll, ein Schutzdioden-Array vorzusehen. > Ok, auch das werde ich mir anschauen. Ich habe aktuell eine PTC > Sicherung (F1 im Plan) zwischen USB und Rest eingebaut mit 500ma als > Überspannungsschutz und zur Absicherung des USB Ports. Da muss ich mich > noch mehr einlesen denke ich. So wie ich das verstehe, platziere ich > diese aber nach der PTC Sicherung? :-) Nein, es geht hier nicht um die Versorgung, sondern um die USB-Datenleitungen deines Controllers. Die sind ansonsten ungeschützt gegenüber allen Umwelteinflüssen. Anbei mal eine Appnote von Würth. Das ist vielleicht schon ein wenig übertrieben :), aber du solltest zumindest eine Idee davon bekommen. Wie schon geschrieben, Xplained-Mini-Boards, die das genauso lax handhaben wie deine Schaltung, sind uns bereits in mehr als einem Fall gestorben.
:
Bearbeitet durch Moderator
Lade die Leiterplattendateien zusätzlich hoch! So lässt sich es leichter (zb KiCAD) ansehen
Huhu, Jörg W. schrieb: > Benjamin K. schrieb: >>> An jedes Vcc/GND-Paar gehört ein 100-nF-Kondensator dran (und zwar >>> nahe dran). Da fehlen also mindestens 3 Stück. >> Ich bin bisher davon ausgegangen, dass dies nur direkt vor ICs nötig ist >> und habe die eigentlich eingebaut (C4, C8, C5, wobei ich mir beim ATMEGA >> unsicher bin). Kannst du da etwas genauer werden? > Meinst du, der AVR wäre kein IC? ;-) > Diese Stützkondensatoren sind an allen CMOS-ICs essenziell; CMOS braucht > keinen statischen Strom (außer Leckstrom), aber in dem Moment, wo Gatter > umschalten (und das machen sie in einer getakteten Schaltung laufend) > müssen interne Leitungskapazitäten umgeladen werden. Dabei wird für > eine sehr kurze Zeit ein Stromimpuls aus der Versorgung entnommen. Ohne > die Stütz-Cs würde dabei an der Zuleitungsinduktivität eine recht hohe > Spannung abfallen, sodass die Betriebsspannung einbricht. Die > 100-nF-Keramikkondensatoren an allen Betriebsspannungspins federn das > ab. Ja, jetzt wo du es sagst fällt es mir auch auf. :-) Ich werde mal versuchen die noch unter zu bringen. In den Arduino Referenz Designs habe ich irgendwo gelesen, dass ein 100nF an AREF ausreichen soll und daran halten sich auch alle Designs, die ich bisher gesehen habe. >>> Für USB wäre es noch sinnvoll, ein Schutzdioden-Array vorzusehen. >> Ok, auch das werde ich mir anschauen. Ich habe aktuell eine PTC >> Sicherung (F1 im Plan) zwischen USB und Rest eingebaut mit 500ma als >> Überspannungsschutz und zur Absicherung des USB Ports. Da muss ich mich >> noch mehr einlesen denke ich. So wie ich das verstehe, platziere ich >> diese aber nach der PTC Sicherung? :-) > Nein, es geht hier nicht um die Versorgung, sondern um die > USB-Datenleitungen deines Controllers. Die sind ansonsten ungeschützt > gegenüber allen Umwelteinflüssen. Anbei mal eine Appnote von Würth. > Das ist vielleicht schon ein wenig übertrieben :), aber du solltest > zumindest eine Idee davon bekommen. > Wie schon geschrieben, Xplained-Mini-Boards, die das genauso lax > handhaben wie deine Schaltung, sind uns bereits in mehr als einem Fall > gestorben. Das macht alles Sinn und ich werde den STF202-22T1G von ON-Semicon verbauen. So wie ich das sehe, spare ich mir dann auch die beiden Widerstände an den Datenleitungen. :-) https://datasheet.lcsc.com/szlcsc/ON-Semicon-ON-STF202-22T1G_C233431.pdf Herzlichen Dank für all die Infos! MfG, Benjamin
Du solltest Dir dringend noch mal die Stromversorgungsanschlüsse der MCP23017 ansehen. So, wie Du sie gezeichnet hast, werden die MCP23017 sehr schnell warm und werden die Funktion verweigern.
Hallo, Rufus Τ. F. schrieb: > Du solltest Dir dringend noch mal die Stromversorgungsanschlüsse > der > MCP23017 ansehen. > > So, wie Du sie gezeichnet hast, werden die MCP23017 sehr schnell warm > und werden die Funktion verweigern. Danke, aber verrätst du mir auch noch, wonach ich suchen muss? MfG, Benjamin
Benjamin K. schrieb: > Hallo, > > Rufus Τ. F. schrieb: >> Du solltest Dir dringend noch mal die Stromversorgungsanschlüsse >> der >> MCP23017 ansehen. >> >> So, wie Du sie gezeichnet hast, werden die MCP23017 sehr schnell warm >> und werden die Funktion verweigern. > > Danke, aber verrätst du mir auch noch, wonach ich suchen muss? > > MfG, > > Benjamin Ich kann mir da auch gerade kein Reim drauf machen. VDD und VSS sind korrekt angeschlossen.
Benjamin K. schrieb: > Danke, aber verrätst du mir auch noch, wonach ich suchen muss? Bei einem N-Kanal MOSFET muss die Spannung am Drainanschluss größer als am Sourceanschluss sein. Sonst gibt es Probleme mit der Body-Diode. VDD muss folglich höher als VSS sein.
Ahhhhh... jetzt sehe ich es auch :-D Er hat es quasi verkehrt herum gemacht. Da es ja scheinbar ein gewerbliches Produkt wird. Würde ich mir über die Sache mit der USB (Pfostenleiste, Buchse) einen anderen Gedanken machen als diesen.
Rene K. schrieb: > Ahhhhh... jetzt sehe ich es auch :-D Er hat es quasi verkehrt herum > gemacht. Spätestes wenn im Schaltbild der Gnd-Anschluss weiter oben liegt, als der für die positive Versorgungsspannung, sollte einem das bei vernünftig angelegten Schaltsymbolen zu denken geben ;-)
p.s.: Ich habe sowas ähnliches auch schonmal für Sim-Racer gebaut. Übrigens auch mit einem Atmega32u4. Ich hatte da zwei Versionen von, einen zur Ausgabe und einen zur Eingabe (RC-Empfänger / Spektrum) als Joystick. Muss mal schauen, den Code muss ich hier noch irgendwo rumfliegen haben. Hier mal nen paar Videos von: https://www.youtube.com/watch?v=qbipcLRLN4U https://www.youtube.com/watch?v=FKHrywI2y6Y Und hier mal einen Atmega32u4 an einem Motorrad Tacho, da war es ein wenig komplizierter - weil der Tacho eine 12V Square brauchte, und das in solch einer blöden Frequenz - das ich während des laufens die Timer umstellen musste um auf eine nächst kleinere Freq zu kommen und man es auf dem Tacho nicht sehen darf: https://www.youtube.com/watch?v=5ZM82LGDxkI
Hallo, Wolfgang schrieb: > Rene K. schrieb: >> Ahhhhh... jetzt sehe ich es auch :-D Er hat es quasi verkehrt herum >> gemacht. > > Spätestes wenn im Schaltbild der Gnd-Anschluss weiter oben liegt, als > der für die positive Versorgungsspannung, sollte einem das bei > vernünftig angelegten Schaltsymbolen zu denken geben ;-) *Kopf > Tisch* Oh weh, wie unangenehm. ;-) Danke, wie ist denn das passiert? So ein Mist! Danke! Benjamin
Hallo, Rene K. schrieb: > Ich habe sowas ähnliches auch schonmal für Sim-Racer gebaut. Übrigens Genau sowas wird es. :-) Wegen gewerblich: Da habe ich mich ehrlich gesagt noch gar nicht festgelegt (und die Hürden kennt man ja). Erst mal mache ich das um zu lernen, weil mich die Materie interessiert. Ich bin eigentlich Programmierer und auf der Softwareseite kenn ich mich mehr aus, deshalb ist das hier schon eine Herausforderung. Aber ich habe gemerkt das ich am meisten lerne, wenn ich etwas versuche richtig umzusetzen, weg vom Breadboard. Das ist sicherlich steiniger und komplizierter, aber da bleibt am Ende am meisten bei mir hängen. Deshalb der etwas "professionellere" Anstrich. Ist aber gar nicht so gemeint. ;-) Wovor ich noch Angst habe sind die Auswirkungen von Direct Drive Wheels auf die ganze Schaltung, da gibt es ja scheinbar häufig Probleme... ^^ LG, Benjamin
Benjamin K. schrieb: > Wovor ich noch Angst habe sind die Auswirkungen von Direct Drive Wheels > auf die ganze Schaltung Nunja, damals gab es noch keine DD-Wheels :-D Und solange sie noch so extrem im Preis sind, ist dies auch noch keine Option. Aber warum sollten sie denn Auswirkungen auf deine Schaltung haben? Das Wheel ist doch separat oder?
Huhu, Rene K. schrieb: > Benjamin K. schrieb: >> Wovor ich noch Angst habe sind die Auswirkungen von Direct Drive Wheels >> auf die ganze Schaltung > Nunja, damals gab es noch keine DD-Wheels :-D Und solange sie noch so > extrem im Preis sind, ist dies auch noch keine Option. Aber warum > sollten sie denn Auswirkungen auf deine Schaltung haben? Das Wheel ist > doch separat oder? Ja, aber im Prinzip hat man einen riesigen, unabgeschirmten Elektromotor vor sich und speziell beim Erfassen von analogen Signalen (z.B. einer Loadcell bei den Pedalen) haben wohl viele Anbieter Probleme, weil es einfach eine elektromagnetische Störquelle ist, die wohl nicht ohne ist. Aber hab kein Direct Drive Wheel, deshalb kann ich es nicht testen. ;-) MfG, Benjamin
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.