Hallo liebes Forum, ich starte soeben mein erstes etwas größeres PCB Projekt. Ich bin nun dabei eine Schaltung dafür zu entwerfen. Ein großes Fragezeichen für mich ist die Auswahl geeigneter Bulk Kondesatoren. Folgenden Aufbau habe ich mir überlegt: Die Platine wird über einen Hohlstecker von einem Netzteil (24V, 6A) an einer Stelle versorgt. Über Schraubklemmen möchte ich einen Externen Buck Converter von Meanwell verwenden um von dort aus die 5V wieder auf das PCB zu führen. Von der 24V und der 5V Schiene möchte ich Sternförmig auf meine Komponenten aufteilen. Folgende Komponenten werden auf der 24V Schiene verbaut: - Ein kleiner 30mm DC-Motor der über einen DRV8871 H-Brücke getrieben wird. - Ein NEMA17 1,7A Schrittmotor der über einen TMC5160 von Bigtreetech Treiber versorgt wird. Folgende Komponenten werden auf der 5V Schiene verbaut: - Ein Raspberry Pi 5 wird über die GPIO Pins mit Strom versorgt. - 2x Atmega328 Mikrocontroller - 1x kleiner Modellbauservo (max. 1A) - 2x 50mm Computer Ventilator zum Kühlen des Gehäuses - 5x Neopixel LED - 1x kleiner Piezzo Buzzer - 1x LDR um die Lichtstärke zu erkennen Anbei ein Bild mit den erwarteten Strömen die auf der jeweiligen Stromschiene zu erwarten sind. Meine Idee wäre die Platine folgendermaßen aufzubauen: - An der Eintrittstelle der 24V werden größere Bulk untergebracht. - Nach dem 5V Buck Converter werden auch größere Bulk untergebracht. Somit sollte die Grundversorgung einmal abgedeckt sein. - Weiters soll jede Schiene eine Polyfuse bekommen. - Event. TVS Dioden? Nun teile ich Sternförmig die 2 Spannungen (24V,5V) auf meine einzelnen Verbraucher auf. Vor jedem IC sollen lokale Kerkos/Elkos untergebracht werden um diese Spitzen direkt abzufangen. - Ich denke vor den Atmegas dürfte jeweils ein 100nF Kerko reichen oder? - Bei dem Raspberry bin ich mir extrem unsicher was hierfür eine Sinnvolle Entkoppelung darstellt. - Vor der H-Brücke und vor dem TMC Treiber ist es, denke ich Sinnvoll größere Bulks unterzubringen oder? Die Platine möchte ich mehr oder weniger fertig bestückt auf JLCPCB zukaufen. Die THT Bauteile werde ich selber einnlöten. Um den Preis der PCB nicht zu sehr in die Höhe zu treiben würde ich gerne so viele Gleichteile wie möglich verwenden. Ich denke, ich habe hier nun einen ersten Überblick über mein Projekt geben können. Vielleicht kann mir dabei jemand einige Tipps geben, welche Entkoppelung der einzelnen Komponenten auf dem Board sinnvoll wäre. Vielen Dank!
Franz H. schrieb: > über einen Hohlstecker Das halte ich bei 6A für keine gute Idee. Mach' mal ersten Entwurf Platzierung der Komponenten auf deiner Platine (welche Größe?), dann kann man mehr sagen. Für die höheren Ströme unbedingt Leiterbahnbreiten beachten, https://www.multi-circuit-boards.eu/leiterplatten-design-hilfe/oberflaeche/leiterbahn-strombelastbarkeit.html Dabei möglichst erste Spalte (10°). 2-seitige Platine, nehme ich an.
Das ist von der Leistungsaufnahme schon ganz schön knackig. Ich empfehle bei den Motoren die Elkos sehr großzügig zu dimensionieren. Du musst immer davon ausgehen, das beim Bremsen die Bewegungsenergie durch den Dynamoeffekt wieder zurück in die Schaltung fließt. Möglicherweise macht hier sogar ein Brems-Chopper Sinn, der die Spannung überwacht und bei Überschreitung der Versorgungsspannung per Mosfet einen Leistungswiderstand zwischen Vcc und Ground einschaltet. Sowas kann den Rest der Schaltung schützen, falls über den Motor wirklich mal Bremsenergie in die Schaltung zurückfließt. Also lieber mehr Kapazität und höhere Spannung einplanen. Folgendes ist egal für Prototypen, aber bei den Keramik Caps über 1µF, die bei Dir auf der 5V Schiene laufen brauchst Du wahrlich keine 25 oder 50V Typen. 10V oder 16V Typen reichen da. Sind in der Regel billiger, kleiner und leichter verfügbar.
:
Bearbeitet durch User
Bevor du ein solches Projekt weiter machst, versuche doch, lesbare Schaltpläne zu zeichnen. Es ist ein Unding, jedem IC nochmal einen Kasten herum zu malen. Den gibt es doch schon! Und wenn du nicht mit Labels arbeiten würdest, sondern versuchst, kurze Leitungen zu malen, müssten nicht wir (und vielleicht auch du?) jedes Mal 6 Blätter öffnen und suchen, wo die Labels noch zu finden sind. Von wem du das möglicherweise abgeschaut hast: das sind m.M. nach keine Leute, die mit den Plänen arbeiten müssen; das sind chinesische Stümper.
Meinst du das der Hohlstecker die Ströme nicht schafft? Das Netzteil hat diesen Stecker bereits montiert. Ich habe 5,5 x 2,5mm Hohlstecker THT für PCB Montage die bis 7 oder 8A aushalten gefunden. Ich dachte grundsätzlich schon das dies funktioniert. Den PCB Entwurf wollte ich erst beginnen wenn ich meine Kondensatoren so halbwegs festgelegt habe. Kannst du mir dazu etwas sagen? Ist mein Ansatz wie oben beschrieben grundsätzlich korrekt? Also an Einspeisungspunkten/Motortreiber größere Elkos und an den ICs kleine Kerkos. Leiterbahnbreiten muss ich natürlich beachten. Übrigens soll es eine 4 Lagen Platine werden (SIG/GND/12V-5V/SIG) dachte ich mir.
Max H. schrieb: > Ich empfehle > bei den Motoren die Elkos sehr großzügig zu dimensionieren. Also eher in Richtung 2200uF, 10uF und envent. noch 100nF parallel am Einspeisepunkt? Bezüglich der Spannungsfestigkeit werde ich dann noch ändern. Ich dachte bezüglich Gleichteile/Fertigungskosten wäre es Sinnvoll. Helmut -. schrieb: > Und wenn du nicht mit > Labels arbeiten würdest Ich verstehe... so wird das für andere sicher leichter zu lesen wenn alles mit Leitungen verbunden ist.
Für die lokalen Stützkondensatoren kann man einfach die größte Kapazität nehmen, die in der gewünschten Baugröße gut verfügbar ist und andere Anforderungen, z. B. an die Spannungsfestigkeit, erfüllt. In vielen Anwendungen kann man da mittlerweile locker auf 1 uF statt 100 nF gehen. Ein 1-uF-MLCC hat gegenüber einem 100-nF-MLCC der gleichen Baugröße in der Regel auch keine praxisrelevanten Nachteile bei den Hochfrequenzeigenschaften. Ich wäre nur vorsichtig damit MLCCs unterschiedlicher Kapazitäten zu mischen. Wenn man weiß was man tut (z. B. durch Simulation), ist das zwar kein Problem. Aber bei MLCCs mit gemischter Kapazität kann es passieren, dass man sich schöne Schwingkreise baut, wenn bei bestimmten Frequenzen die großen Kondensatoren schon induktiv, die kleinen aber noch kapazitiv wirken. Deswegen kann es auch Sinn machen bei den Bulk-Kondensatoren MLCCs zu meiden und stattdessen Typen zu verwenden, die eine etwas höhere ESR haben.
P. S. schrieb: > Ich wäre nur vorsichtig damit MLCCs unterschiedlicher Kapazitäten zu > mischen. Vielen Dank für deine Infos. Ich werde das in meinem Design berücksichtigen. Einen Schwinkreis möchte ich nicht bauen. Ich denke Simualtionen selbst zu machen liegt noch etwas in der Zukunft. Ich denke ich mache meine Schaltung jetzt einmal soweit fertig und zeige sie dann hier. Dann hat man eine bessere Diskussionsgrundlage um auf etweilige Probleme/Verbesserungen hinzuweisen. Vielleicht kann mir noch jemand bei der Versorgung des Raspberry ein paar Gedankenanstöße geben.
Franz H. schrieb: > Vielleicht kann mir noch jemand bei der Versorgung des Raspberry ein > paar Gedankenanstöße geben. Muss es eigentlich ein 5er sein? Vom 3er gab es noch einen (vereinfachten) Schaltplan, vom 4er evt. auch. Beim 5er so viel anders, dass ich den nicht per GPIO versorgen würde (mangels Schaltbild). Eine andere Überlegung: die RPi sollen ja mit irgendeinem langen USB-Kabel funktionieren. In dem Fall gibt es überhaupt keine externen Kondensatoren und sowas wie 100nF gehört auf jedem Fall auf die RPi-Platine selbst. Ja, ok, ich spendiere meinem 3B trotzdem einen 220uF Elko vor den GPIO-Pins.
Bauform B. schrieb: > Muss es eigentlich ein 5er sein? Leider ja, da es mit ihm möglich ist eine SSD direkt über PCIe zu betreiben. Und das ist ein gewaltiger Permformance Booster. Und wenn ich schon eine Platine auf den Pi aufstecke, möchte ich ihn eigentlich gleich darüber versorgen. Und da ich sowiso eine 5V Schiene auf der Platine habe, bietet sich das sehr gut an. Ich habe nun schon einiges darüber gelesen wie man das am besten anstellt. Man umgeht damit eben die internen Sicherheitsvorrichtungen und deshalb sollte ich hier auf jeden Fall etwas vorsehen. Ich hätte jetzt einmal eine TVS Diode, einen 10uF und einen 100nF vorgesehen. Aber ob das so in Ordnung ist kann ich leider nicht sagen.
Klaus F. schrieb: > Franz H. schrieb: >> über einen Hohlstecker > > Das halte ich bei 6A für keine gute Idee. Wer sagt denn, dass dort auch wirklich 6A fließen, nur weil das Netzteil das kann?
Ich gehe davon aus das an dem 24V Hohlstecker etwa 3-4A fließen. Ich denke das sollte machbar sein.
Nach kurzem Drüberfliegen ist mir folgendes aufgefallen: 1. Der PI Bootloader erwartet an GPIO0 und GPIO1 ein HAT-EEPROM oder gar nichts. Das kann man abschalten, aber es ist einfacher, diese Pins gar nicht zu verwenden. Das Teil hat ja genügend UARTs. 2. Genauso würde ich UART0 auf GPIO14/15 für die Linux-Console freihalten. Gut, der Pi5 hat einen extra Debug-UART dafür, aber der Pi4 nicht. Unnötige Einschränkung. Nimm einen anderen UART. 3. Du verbindest die 3.3V GPIOs des PI mit den 5V-IOs des Atmegas. Das ist nicht gut und kann Dir Deinen Pi killen. Ich würde eher einen der modernen AVRs nehmen, die auch bei 3.3V mit voller Geschwindigkeit laufen (sowas wie den AVR64DA/DB28 oder so) und - das ist wichtig - ihn mit den 3.3V aus dem Pi versorgen. Der Pi verträgt an seinen GPIOs nur Spannungen zwischen 0V und IOVREF. Wenn der Pi heruntergefahren ist, ist IOVREF=0V. Du musst dafür sorgen, dass in diesem Zustand genau kein GPIO-Pin mehr Spannung führt. Das machst Du (a) indem Du alles, was direkt an den GPIOs hängt, aus den 3.3V des PI versorgst, oder (b) indem Du Pegelwandler 74LVC1T45/2T45/8T245 dazwischen schaltest. Die haben zwei Versorgungsspannungen - einmal die 3.3V vom Pi und einmal die 5V vom AVR. Damit hast Du dann saubere 5V-Pegel an Deinem AVR und schützt Deinen Pi. https://www.ti.com/lit/ds/symlink/sn74lvc1t45.pdf https://www.ti.com/lit/ds/symlink/sn74lvc2t45.pdf https://www.ti.com/lit/ds/symlink/sn74lvc8t245.pdf Das gleiche gilt für den AVR und sehr viele andere ICs auch. Die vertragen im ausgeschalteten Zustand auch keinerlei Spannungen an ihren Pins, es sei denn, es steht ausdrücklich so im Datenblatt. (4) Der Spannungsteiler im TXD-Pfad ist suboptimal. Sowas funktioniert bei hohen Bitraten nicht mehr sauber. Der Einsatz von richtigen Pegelwandlern behebt dieses Problem. fchk
Nochwas: Der Pi möchte gerne bis zu 5A auf seine 5V haben. Wenn Du ihn über die Pfostenleiste versorgst, verwende beide 5V Pins (2 und 4). Schließe ALLE GND-Pins an - ausnahmslos. Achte darauf, Buchsenleisten einzusetzen, die minimal 2.5A pro pin garantieren, einige tun das nämlich nicht. Und wenn Du die geschalteten 3.3V des Pi verwendest (was DU solltest, siehe vorheriges Posting), dann verwende auch da beide Pins (1 und 17) und nicht nur einen. Und korrigiere Dein KiCAD-Symbol dahingehend. Und sei Dir im Klaren, dass Du den USB-C des Pi in diesem Zustand nicht verwenden darfst, schon gar nicht als Device.
So, nächster Punkt: Keramikkondensatoren sind nichtlinear. Die Kapazität nimmt mit steigender Spannung ab. Ich mach das immer so, dass ich die Nennspannung Faktor 3 der Betriebsspannung nehme und dann aufrunde, d.h. 10V bei 3.3V und 16V bei 5V. Das passt meistens. Für die Stromversorgung nehme ich gerne solche Stecker: https://www.we-online.com/de/components/products/TBL_3_50_3251_HORIZONTAL_PCB_HEADER_W_FLANGES_69132511000X Die lassen sich auch verschrauben, sind robust und stabil. Passende Klemmblöcke: https://www.we-online.com/de/components/products/TBL_3_50_3641_VERTICAL_W_FLANGES_69136410000X Die gibts kompatibel auch von Phoenix. fchk
Frank K. schrieb: > 2. Genauso würde ich UART0 auf GPIO14/15 für die Linux-Console > freihalten. Gut, der Pi5 hat einen extra Debug-UART dafür, aber der Pi4 > nicht. Unnötige Einschränkung. Nimm einen anderen UART. Leicht gesagt, der 3B z.B. hat nur ein UART auf dem 40-poligen Stecker. Den 4er kenne ich leider nicht so genau.
Bauform B. schrieb: > Frank K. schrieb: >> 2. Genauso würde ich UART0 auf GPIO14/15 für die Linux-Console >> freihalten. Gut, der Pi5 hat einen extra Debug-UART dafür, aber der Pi4 >> nicht. Unnötige Einschränkung. Nimm einen anderen UART. > > Leicht gesagt, der 3B z.B. hat nur ein UART auf dem 40-poligen Stecker. Ja. Um den gehts aber nicht. > Den 4er kenne ich leider nicht so genau. Und den 5'er wohl auch nicht. Der 4'er hat insgesamt 5 große UARTs (0,2,3,4,5) und den Mini-UART (1). Der 5'er hat 5 nach außen geführte UARTs (alle große, keinen Mini-UART mehr), dazu zusätzlich einen Debug-UART und einen extra-UART fürs Bluetooth. Die letzteren sind aber weder beim regulären Pi noch beim CM5 nach außen geführt. Also: leicht gesagt, leicht gemacht. Er kann beim Pi5 z.B. UART2 auf GPIO4/5 und UART4 auf GPIO12/13 nehmen. Beim PI4 wären das UART3 und UART5. fchk
Franz H. schrieb: >> Muss es eigentlich ein 5er sein? > > Leider ja, da es mit ihm möglich ist eine SSD direkt über PCIe zu > betreiben. Das kann ein CM4 auch ... allerdings muss man dann auch die zwei 100poligen Steckverbinder sauber aufs eigene Layout bekommen.
Harald K. schrieb: > Franz H. schrieb: >>> Muss es eigentlich ein 5er sein? >> >> Leider ja, da es mit ihm möglich ist eine SSD direkt über PCIe zu >> betreiben. > > Das kann ein CM4 auch ... allerdings muss man dann auch die zwei > 100poligen Steckverbinder sauber aufs eigene Layout bekommen. Oder ein Waveshare CM4-IO-BASE-B verwenden. https://www.waveshare.com/wiki/CM4-IO-BASE-B Und genau da ist es dann wirklich von Vorteil, GPIO14/15 für die Linux-Console freizuhalten und andere UARTs für die AVRs zu verwenden. Ich empfehle, diesen UART über einen 74LVC2T240 oder 74LVC2T241 zu führen (zum Schutz und für 5V-Toleranz), den dann auf eine 3.5mm Klinkenbuchse zu führen, und dann über ein FTDI-TTL232R-3V3-AJ vom PC drauf zuzugreifen. https://ftdichip.com/products/ttl-232r-3v3-aj/ fchk
Frank K. schrieb: > Oder ein Waveshare CM4-IO-BASE-B verwenden. Da passen aber nur 2230/2242-SSDs drauf. Mit dem "offiziellen" CM4-IO-Board gehts auch, wenn man einen PCIe-zu-M.2-Adapter in den PCIe-x1-Slot steckt. Und man kann ein richtiges 12-V-Netzteil mit Hohlstecker verwenden, etwas im Raspberry-Lager ausgesprochen unübliches. https://www.raspberrypi.com/products/compute-module-4-io-board/ Die eine bittere Pille, die man halt schlucken muss: Nur USB2.0. Beim "normalen" Pi 4 gibts USB3.0, aber das geht nur, weil der PCIe-Bus mit den USB3.0-Controller belegt ist. Dann doch lieber schneller(er) Massenspeicher. Zwar ist PCIe 2.0 mit nur einer Lane nicht schneller als SATA, aber von SATA bootet der Raspberry Pi nicht. Dann müsste man entweder von SD-Karte oder von eMMC booten.
Harald K. schrieb: > Frank K. schrieb: >> Oder ein Waveshare CM4-IO-BASE-B verwenden. > > Da passen aber nur 2230/2242-SSDs drauf. Ja und? Die Pi Foundation verkauft sogar selbst welche, wenn Du Dich auf a* oder e* unter den hunderten von Angeboten nicht entscheiden kannst, welche Du denn nimmst. Und ich denke, der Fragesteller braucht höchstens ein TB, wenn überhaupt, auch wenn es 2TB-SSDs in 2230 gibt. Ist jedenfalls deutlich kompakter und mechanisch robuster als eine M.2 SSD in einem PCIe-Adapter in x1 Slot im CM4IO, und billiger obendrein, und mechanisch kompatibel zu einem regulären Pi4. fchk
Hallo, vielen Dank für die zahlreichen Antworten. Das hilft mir enorm weiter. Es ist wirklich toll, dass ihr eure wertvolle Zeit mit mir teilt. Frank K. schrieb: > 1. Der PI Bootloader erwartet an GPIO0 und GPIO1 ein HAT-EEPROM oder gar > nichts. Das kann man abschalten, aber es ist einfacher, diese Pins gar > nicht zu verwenden. Das Teil hat ja genügend UARTs. Ich werde also GPIO4(TX), GPIO5(RX) verwenden. Frank K. schrieb: > 3. Du verbindest die 3.3V GPIOs des PI mit den 5V-IOs des Atmegas. Das > ist nicht gut und kann Dir Deinen Pi killen. Ich würde eher einen der > modernen AVRs nehmen, die auch bei 3.3V mit voller Geschwindigkeit > laufen (sowas wie den AVR64DA/DB28 oder so) und - das ist wichtig - ihn > mit den 3.3V aus dem Pi versorgen. Es werden von den Atmegas keine Signale direkt an den Pi gesendet. Alle direkten Verbindungen zwischen Pi und Atmega laufen vom Pi Richtung Atmega. Ich habe die Schaltungen am Steckbrett aufgebaut, und es funktioniert eigentlich sehr gut. Ich verwende die Atmega, da ich diese schon lange kenne und damit eher vertraut bin. Wobei ich mir die 3,3V-AVR ansehen werde. Es würde einiges einfacher machen. Das Problem, das ich sehe, ist, dass es auf JLCPCB diesen MCU nicht gibt. Ich möchte die Platine fertig bestückt kaufen. Frank K. schrieb: > (b) indem Du Pegelwandler 74LVC1T45/2T45/8T245 dazwischen schaltest. Die > haben zwei Versorgungsspannungen - einmal die 3.3V vom Pi und einmal die > 5V vom AVR. Damit hast Du dann saubere 5V-Pegel an Deinem AVR und > schützt Deinen Pi. Pegelwandler machen Sinn. Sollte dieser in allen Leitungen zwischen Pi und Atmega eingebaut werden (auch wenn nur Signale vom Pi -> Atmega laufen), um das Problem mit IOVREF zu lösen? Es laufen eigentlich nur die 2 UART-TX vom Atmega zum Pi. Müsste also der Pi den DIR-Pin steuern, damit beim Ausschalten keine Signale mehr vom Atmega kommen können? Sprich: der Pi schaltet aus -> keine TX-Signale vom Atmega kommen mehr durch. Zuerst dachte ich an ein Level Shifting wie im angehängten Bild. Aber damit ist das IOVREF-Problem nicht gelöst, soweit ich das jetzt verstehe... Wobei mir gerade einfällt, dass beim Herunterfahren des Pi der Transistor den Atmega in "Reset" versetzt (s. Bild). Also sollten da keine Signale mehr in Richtung Pi gehen. Ich denke, somit sollte das Problem gelöst sein. Frank K. schrieb: > (4) Der Spannungsteiler im TXD-Pfad ist suboptimal. Sowas funktioniert > bei hohen Bitraten nicht mehr sauber. Der Einsatz von richtigen > Pegelwandlern behebt dieses Problem. Ich habe das am Steckbrett aufgebaut und mit 9600 Baud getestet – hat eigentlich sehr gut geklappt. Ein 74LVC1T45 wäre dafür sicher besser geeignet. Ich denke, das werde ich so machen. Frank K. schrieb: > Buchsenleisten einzusetzen, die > minimal 2.5A pro pin garantieren Danke für den Tipp. Werde ich natürlich machen. Frank K. schrieb: > USB-C des Pi in diesem Zustand nicht > verwenden darfst Jap, das ist mir bewusst... Frank K. schrieb: > Für die Stromversorgung nehme ich gerne solche Stecker: Ja, diese Stecker gefallen mir. Sieht ähnlich aus wie bei meinem RAMP1.4-Board für den 3D-Drucker. Blöd ist nur, dass die meisten fertigen Netzteile einen Hohlstecker haben. Warum von einem Hohlstecker abgeraten wird, verstehe ich immer noch nicht ganz. Jeder Laptop benutzt so einen.
Franz H. schrieb: > Warum von einem Hohlstecker abgeraten wird, verstehe ich immer > noch nicht ganz. Jeder Laptop benutzt so einen. Die verkraften nicht beliebig hohe Ströme. Notebooks verwenden meist etwas andere Hohlstecker als die 08/15-Standardware, und obendrein nutzen sie deutlich höhere Spannungen (fast immer 19V), so daß mehr Leistung transportiert werden kann, ohne den Strom zu erhöhen.
Franz H. schrieb: > Jeder Laptop benutzt so einen ja aber oft angepasst in den Maßen und speziell gerechnet an der Kontaktfläche, sind keine Normmaße wie 5.5/2.1
Franz H. schrieb: > funktioniert eigentlich sehr gut. Ich verwende die Atmega, da ich diese > schon lange kenne und damit eher vertraut bin. Wobei ich mir die > 3,3V-AVR ansehen werde. Es würde einiges einfacher machen. Das Problem, > das ich sehe, ist, dass es auf JLCPCB diesen MCU nicht gibt. Ich möchte > die Platine fertig bestückt kaufen. Eigentlich sollte JLCPCB alles haben, was LCSC auch hat. Die beiden gehören zusammen. Und LCSC hat die Teile. https://www.lcsc.com/product-detail/C1858297.html > Frank K. schrieb: >> (b) indem Du Pegelwandler 74LVC1T45/2T45/8T245 dazwischen schaltest. Die >> haben zwei Versorgungsspannungen - einmal die 3.3V vom Pi und einmal die >> 5V vom AVR. Damit hast Du dann saubere 5V-Pegel an Deinem AVR und >> schützt Deinen Pi. > > Pegelwandler machen Sinn. Sollte dieser in allen Leitungen zwischen Pi > und Atmega eingebaut werden (auch wenn nur Signale vom Pi -> Atmega > laufen), um das Problem mit IOVREF zu lösen? Es laufen eigentlich nur > die 2 UART-TX vom Atmega zum Pi. Müsste also der Pi den DIR-Pin steuern, > damit beim Ausschalten keine Signale mehr vom Atmega kommen können? Nein, der DIR-Pin ist fest. Der Trick ist, dass die 5V am Pi-Header immer aktiv sind, die 3.3V aber geschaltet sind. Die sind nur an, wenn der Pi auch an ist - das ist quasi IOVREF. Die Levelshifter bekommen ihr VCCa vom 3.3V des PI, und wenn die weg sind, schalten die Levelshifter ab. > Wobei mir gerade einfällt, dass beim Herunterfahren des Pi der > Transistor den Atmega in "Reset" versetzt (s. Bild). Also sollten da > keine Signale mehr in Richtung Pi gehen. Ich denke, somit sollte das > Problem gelöst sein. Reset ist nicht off. Warum betreibst Du denn die AVRs nicht mit 3.3V und 8MHz oder 12MHz? Ich habe einem im Datenblatt des 328PB nachgeschaut, und 12MHz sollten bei 3.3V drin sein. Damit wäre das ganze Problem erledigt. (siehe Seite 419, Figure 34-2. ATmega328PB: Active Supply Current vs. Frequency (1-20 MHz)). Oder 11.0592MHz, damit Du bei den üblichen Bitraten auf dem UART bis hin zu 230400bps keine Fehler bekommst, weil der Bittakt dann genau hinkommt. (Datenblatt des 328PB, Seite 280). > Frank K. schrieb: >> (4) Der Spannungsteiler im TXD-Pfad ist suboptimal. Sowas funktioniert >> bei hohen Bitraten nicht mehr sauber. Der Einsatz von richtigen >> Pegelwandlern behebt dieses Problem. > > Ich habe das am Steckbrett aufgebaut und mit 9600 Baud getestet – hat > eigentlich sehr gut geklappt. Ein 74LVC1T45 wäre dafür sicher besser > geeignet. Ich denke, das werde ich so machen. 9600 ist ja noch langsam. Bei 115200 sieht es schon anders aus. > Blöd ist nur, dass die meisten fertigen Netzteile einen Hohlstecker > haben. Warum von einem Hohlstecker abgeraten wird, verstehe ich immer > noch nicht ganz. Jeder Laptop benutzt so einen. Alte Laptops aus dem letzten Jahrtausend haben den verwendet (z.B. Thinkpad T41). Spätere Modelle haben größere Hohlstecker (7.9mm/5.5mm) verwendet (z.B. Thinkpad Z61p), und die neuen haben rechteckige Stecker. Das Problem ist, dass es bei den üblichen 5.5mm/2.1mm Steckern und Buchsen ziemlich viel Schrott gibt. fchk
meine beiden HP Laptops haben die gleichen Steckermaße und der Stärkere mit I7 merkte trotzdem daß nicht das richtige Netzteil angeschlossen wurde, ich hatte die beiden verwechselt mit dem vom I3. Keine Ahnung wie die das mit einem Hohlstecker mit nur 2 Kontakten merkten.
Joachim B. schrieb: > meine beiden HP Laptops haben die gleichen Steckermaße und der Stärkere > mit I7 merkte trotzdem daß nicht das richtige Netzteil angeschlossen > wurde, ich hatte die beiden verwechselt mit dem vom I3. > Keine Ahnung wie die das mit einem Hohlstecker mit nur 2 Kontakten > merkten. Vielleicht hat der Hohlstecker ja doch drei Kontakte wie die 20V-Stecker bei Lenovo: * Hülse außen: GND * Hülse innen: 20V * Stift: ID-Widerstand gegen GND fchk
Joachim B. schrieb: > Keine Ahnung wie die das mit einem Hohlstecker mit nur 2 Kontakten > merkten. Und die haben wirklich nur zwei? Gerade bei Notebooks sind koaxiale Hohlstecker mit drei Kontakten weit verbreitet, einen davon sehen allerdings viele Leute nicht auf Anhieb. Der im Bild ist dreipolig.
Frank K. schrieb: > Stift: ID-Widerstand gegen GND Harald K. schrieb: > Und die haben wirklich nur zwei? ich sah absolut nichts, aber als ich es fotografieren wollte sah ich sehr tief doch den Innenstift! Ihr hattet beide doch Recht!
Harald K. schrieb: > Die verkraften nicht beliebig hohe Ströme. Ich rechne auf der 24V-Seite (Netzteil) mit max. 4A. Dieser Stecker (https://jlcpcb.com/parts/componentSearch?searchTxt=C7464913) verträgt 7A, 60V. Frank K. schrieb: > Der Trick ist, dass die 5V am Pi-Header > immer aktiv sind, die 3.3V aber geschaltet sind. Die sind nur an, wenn > der Pi auch an ist Ah... So werde ich das machen. Tolle Idee. Also 74LVC1T45 in die TX Leitungen von Atmega Richtung Pi. Frank K. schrieb: > Reset ist nicht off. Ok, aber es werden keine Signale mehr über TX gesendet. Oder besser gesagt: die Pins werden niemals auf 5V schalten, da diese hochohmig sind. Verstehe ich das korrekt? Frank K. schrieb: > Warum betreibst Du denn die AVRs nicht mit 3.3V und 8MHz oder 12MHz? Ich treibe mit einem der Atmegas einen Schrittmotor. Dieser soll möglichst schnell und dynamisch laufen. Mir ist bewusst, dass es dazu bessere MCUs geben könnte. Aber es läuft mit dem Atmega328 eigentlich so, wie ich mir das vorstelle. Grundsätzlich scheue ich mich nicht, einen anderen Mikrocontroller zu verwenden. Aber der Atmega328/Arduino ist mir seit Jahren vertraut. Wenn ich meine Schaltung damit hinbekomme, wäre mir das nur recht. Frank K. schrieb: > 9600 ist ja noch langsam. Ich sende nur ein paar Signale zwischen den AVRs und dem Pi. Geschwindigkeit ist hier nicht so relevant. Der Vorteil des Spannungsteilers wäre, dass ich kein weiteres "Extended Part" von JLCPCB nutzen müsste. Ich möchte jedoch nicht meinen Pi im ausgeschalteten Zustand zerschießen und werde einen 74LVC1T45 verwenden. Somit hat sich der Spannungsteiler sowieso erledigt. Ich muss aber noch einmal nachfragen: Wenn mein Pi ausgeschaltet wird, schaltet ja auch mein Transistor den Reset-Pin auf LOW, und die AVRs gehen in Reset. Sobald der Pi wieder eingeschaltet wird, werden die Reset-Pins auf 5V gezogen, und alles läuft wieder. Warum könnte das nicht eine sehr einfache Lösung für das Problem sein? Was übersehe ich da?
Franz H. schrieb: > Dieser Stecker (...) verträgt 7A, 60V. Das ist eine Buchse, und die Angabe halte ich für hysterisch übertrieben, insbesondere, wenn nicht das exakte Gegenstück spezifiziert ist. Es gibt unterschiedliche Hohlsteckerkonstruktionen, die einfacheren haben für den Mittelkontakt einfach einen hohlen Zylinder, die besseren haben einen Gabelkontakt, d.h. konstaktieren den Stift in der Mitte von zwei Seiten statt nur einer. Daß die 60 V hier keine besondere Relevanz haben, ist Dir hoffentlich klar? Nicht, daß Du auf die Idee kommst, daraus "auszurechnen", daß die Buchse bei 20 V dann schon 21 A vertragen müsste ...
Harald K. schrieb: > Nicht, daß Du auf die Idee kommst, daraus "auszurechnen", daß die > Buchse bei 20 V dann schon 21 A vertragen müsste ... Nein, natürlich nicht ;-). Trotzdem frage ich mich, wie es dann sein kann, solch ein Netzteil zu verkaufen: https://www.amazon.de/dp/B0D624ZM4F?ref=fed_asin_title&th=1 Dieses hat 6A/24V. Es sollte doch möglich sein, eine passende Buchse dafür zu finden, die das kann. Ich muss doch auf die Angaben des Herstellers vertrauen können, wenn die Buchse mit 7A, 60V angegeben ist.
Franz H. schrieb: Ich denke, Dein Schrittmotor wird auch mit 12MHz noch genauso gut laufen. Ist immerhin Mechanik mit Trägheit etc. Auch ein 32MHz XMega würde den nicht schneller betreiben können. > Ich sende nur ein paar Signale zwischen den AVRs und dem Pi. > Geschwindigkeit ist hier nicht so relevant. Der Vorteil des > Spannungsteilers wäre, dass ich kein weiteres "Extended Part" von JLCPCB > nutzen müsste. Ich möchte jedoch nicht meinen Pi im ausgeschalteten > Zustand zerschießen und werde einen 74LVC1T45 verwenden. Somit hat sich > der Spannungsteiler sowieso erledigt. Du kannst auch einen TXB0102 nehmen. Der hat zwei Kanäle, bidirektional, und damit brauchst Du nur einen Chip für beide Richtungen, wenn Dir der zweite 1T45 weh tut. Hat zwar geringere Treiberleistung und ist etwas empfindlich, sollte aber für Deinen Teil funktionieren. > Ich muss aber noch einmal nachfragen: Wenn mein Pi ausgeschaltet wird, > schaltet ja auch mein Transistor den Reset-Pin auf LOW, und die AVRs > gehen in Reset. Tut er das? Dein NPN braucht einen Basisstrom (Strom, nicht Spannung), um durchzuschalten. Wo soll der herkommen? Vom ausgeschalteten Pi jedenfalls nicht. Der ist dann aus und wird keinen Strom mehr liefern können. Und der 10k Basiswiderstand ist auch etwas hoch. Hast Du das mal nachgerechnet? Ich denke eher nicht. > Warum könnte das nicht eine sehr einfache Lösung für das Problem sein? > Was übersehe ich da? Für mich sieht das nach einer unsauberen Lösung eines Pfennigfuchsers aus. In hochohmige Leitungen kannst Du Dir zu schnell Dreck einfangen. Daher besser eine saubere Isolation. fchk
Franz H. schrieb: > Ich muss doch auf die Angaben des Herstellers vertrauen können Nochmal: Das funktioniert nur, wenn auch das Gegenstück genau spezifiziert ist. Die Erfahrung zeigt, daß derartig hohe Ströme bei der doch recht primitiven Kontaktierung mit nur einer einzigen Kontaktfeder (der, die außen gegen den Zylinder drückt) einfach grenzwertig sind. Sieh Dir mal an, wie die hohlsteckerartigen Stromversorgunsstecker üblicher Notebooks aufgebaut sind, insbesondere, wie da die Buchsen aussehen. Amazon? Amazon verkauft alles. Und in China wird auf Wunsch auch alles angefertigt, wie sinnvoll es auch sein mag. Eine Zeitlang mag so etwas gutgehen, wenn aber der Stecker bzw. der Kontakt in der Buchse etwas abgenutzt und / oder oxidiert ist, dann kann da schnell ein Übergangswiderstand entstehen, der sich über hohe fließende Ströme unter entsprechender Wärmeentwicklung entzückt zeigt. Du solltest Deine Platine nicht mit 5 V versorgen, sondern mit einer höheren Spannung, und einen Step-Down-Wandler auf der Platine unterbringen. Dann hast Du das Belastungsproblem Deines Steckverbinders nicht. Das einzige Produkt aus dem Hause Raspberry, das einen Hohlstecker einsetzt, macht genau das, wenn auch aus dem Grund, weil es die höhere Spannung auch für etwas anderes benötigt - das ist das I/O Board für das Compute Module 4. Das will mit 12 V versorgt werden, was am PCIe-Slot liegt, der die als Versorgungsspannung benötigt. Was übrigens auch gegen Hohlstecker spricht, ist die hohe Verwechslungsgefahr. Denn die Dinger werden bei IT-Produkten mit allen möglichen Spannungen betrieben - ob 5 V, 12 V, 19 V oder auch 24 V. In Extremfällen können das auch 48 V sein (ich hab' im Büro ein SIP-Telephon herumstehen, das entweder über PoE oder aber über ein Steckernetzteil versorgt wird). Insofern sind Hohlstecker Miststecker.
Frank K. schrieb: > In hochohmige Leitungen kannst Du Dir zu schnell Dreck einfangen. > Daher besser eine saubere Isolation Alles klar, das verstehe ich. Alles andere ist Pfusch und eher davon abzuraten. Harald K. schrieb: > Du solltest Deine Platine nicht mit 5 V versorgen, sondern mit einer > höheren Spannung, und einen Step-Down-Wandler auf der Platine > unterbringen. Danke für die genaue Erklärung. Eigentlich mache ich das ja genauso. Mein Plan wäre, mit 24V die Platine zu versorgen und mit einem externen Schaltregler die 5V zu generieren. Anbei noch meine Versorgungsleitung, wie ich mir das denke. Ich habe dazu diesen DC-DC-Wandler angesehen: https://www.mouser.at/ProductDetail/709-PSD30B-5 Ich habe noch ein Bild eingefügt über meine Verbraucher, die gerne versorgt werden wollen. Es wäre eine tolle Lösung gewesen, ein fertiges Netzteil zu kaufen und dieses an der Platine anzustecken. Auf Mouser hätte ich ein Netzteil gefunden: https://www.mouser.at/ProductDetail/Cosel/CXLA150F-24-B1?qs=HMhDvBYWqvMOAlwweUjXlA%3D%3D Es liefert bei 24V 6,25A. Es hat einen Stecker mit 4 Pins. 2x +V0 und 2x -V0. Preislich ist es jedoch etwas grenzwertig. Ich möchte die Platine für ein paar Leute machen und würde gerne verhindern, dass diese mit der Netzspannung hantieren müssen. Vielleicht weiß jemand eine bessere/günstigere Lösung dafür. Ansonsten müsste ich ein Schaltnetzteil verwenden, an dem man die Kabel händisch anschließt.
Franz H. schrieb: > Eigentlich mache ich das ja genauso. Mein Plan wäre, mit 24V die Platine > zu versorgen und mit einem externen Schaltregler die 5V zu generieren. > Anbei noch meine Versorgungsleitung, wie ich mir das denke. Ich habe > dazu diesen DC-DC-Wandler angesehen: > https://www.mouser.at/ProductDetail/709-PSD30B-5 Das geht auch billiger und kompakter: Schau Dir mal die LM2677/2678/2679 Schaltregler an. Nicht das neueste, gibts aber schon ewig und ist eigentlich unproblematisch. https://www.ti.com/product/de-de/LM2677 Im Datenblatt steht genau, wie man das Teil benutzen musst. ansonsten gehst Du auf https://webench.ti.com/power-designer/, klickst auf DCDC Start Design, dann gibts Du bei Part Number LM2677 ein, wählst LM2677-5.0 (Buck) aus, und gibts Deine Randbedingungen ein, und dann bekommst Du ein komplettes Design mit allem. Probiere es aus. fchk
Frank K. schrieb: > Schau Dir mal die LM2677/2678/2679 Schaltregler an. Nicht das neueste, > gibts aber schon ewig und ist eigentlich unproblematisch. Vielen Dank für den Link. Ich habe mich in den letzten Wochen intensiv mit Schaltreglern beschäftigt, aber so richtig habe ich mich noch nicht getraut, einen zu entwerfen. Der LM2677 sieht aber sehr gut aus und ist sehr gut dokumentiert. Ich denke, in diesem Fall werde ich es wagen, die 5V-Schiene auf diese Art zu erzeugen. Die Website von TI ist super. Das hilft enorm weiter. Bezüglich der 24V und dem Netzteil/Stecker habe ich noch nichts Passendes gefunden. Ideal wäre ein fertiges Netzteil, das ich direkt an die Platine stecken kann, ohne an der Netzspannung etwas machen zu müssen. Das wäre mir am liebsten. Die sauberste Lösung wäre wahrscheinlich, ein Schaltnetzteil einzubauen und dieses über einen Kaltgerätestecker zu verbinden. Oder gäbe es da noch bessere Lösungen?
Franz H. schrieb: > Die sauberste Lösung wäre wahrscheinlich, ein Schaltnetzteil einzubauen > und dieses über einen Kaltgerätestecker zu verbinden. Oder gäbe es da > noch bessere Lösungen? So macht es der Rest der Welt auch. Vorschlag: https://www.meanwell.com/webapp/product/search.aspx?prod=LRS-100 (bei Bedarf auch 150/200/250W Versionen erhältlich). Bei A* werden dafür 24€ aufgerufen. Dafür kannst Du das nicht selber machen. Alternativ: Das RD-125B gibt einmal 5V@4.6A und einmal 24V@4.6A aus. https://www.meanwell.com/webapp/product/search.aspx?prod=RD-125 https://www.voelkner.de/products/767398/Mean-Well-MW-RD-125B-Schaltnetzteil-133W.html In den L der Netzspannung muss eine passende Sicherung rein. Am Besten nimmst Du eine IEC-C14 Buchse, wo gleich ein Sicherungshalter mit drin ist, z.B.: https://filecenter.deltaww.com/Products/download/04/0406/iec_connector/SK_SCREW.pdf Sicherung gemäß Angaben im Datenblatt des Netzteils auswählen. fchk
Franz H. schrieb: > Der LM2677 sieht aber sehr gut aus und ist sehr gut dokumentiert. Dort unbedingt die "Layout Guidelines" im Datenblatt beachten. Denn eines der wichtigsten "Bauteile" eines Schaltrelgers ist das Layout. > Bezüglich der 24V und dem Netzteil/Stecker habe ich noch nichts > Passendes gefunden. Ideal wäre ein fertiges Netzteil, das ich direkt an > die Platine stecken kann, ohne an der Netzspannung etwas machen zu > müssen. Nimm eines, das den nötigen Strom kann, schneide den Stecker ab und mache einen dran, der für den Strom und die Anwendung taugt. Auf dieser Seite des SNT hast du mit der Netzspannung nichts zu tun. > Die sauberste Lösung wäre wahrscheinlich, ein Schaltnetzteil einzubauen > und dieses über einen Kaltgerätestecker zu verbinden. Oder gäbe es da > noch bessere Lösungen? Du musst dich dann aber grundlegend zum Thema "Maschinenrichtlinie" und "Elektrische Sicherheit" aufschlauen.
Franz H. schrieb: > Bezüglich der 24V und dem Netzteil/Stecker habe ich noch nichts > Passendes gefunden. Ideal wäre ein fertiges Netzteil, das ich direkt an > die Platine stecken kann, ohne an der Netzspannung etwas machen zu > müssen. Das wäre mir am liebsten. Dann tausche doch einfach den Stecker aus. Gerne genommen wird z.B. Kycon Power-DIN: Hier sind die Pins für 48V 7.5A spezifiziert (Ausnahme 3-polig Pin 3: 1A, siehe unten!) Das sollte reichen. Leiterplattenbuchse: https://www.kycon.com/Catalog_PDF/KPJX.pdf Kabelstecker: https://www.kycon.com/Catalog_PDF/KPPX.pdf Bei der 3-poligen Buchse ist Pin 3 (der dünne) für die Netzteilidentifikation gedacht. Viele Hersteller schalten einen Widerstand zwischen GND und dem ID-Pin, damit der User das passende Netzteil nimmt. Andere (z.B. Apple) bauen ein 1-Wire Speicher ein, der die technischen Daten, Seriennummer etc des Netzteils enthält und ggf noch ein/zwei LEDs schalten kann. https://www.analog.com/media/en/technical-documentation/data-sheets/DS2406.pdf Du kannst den Pin einfach offen lassen. fchk PS: Power-DIN sieht so ähnlich wie Mini-DIN aus, aber die Pins sind dicker, und das ganze ist mechanisch nicht kompatibel. Mini-DIN ist nur für Signale gedacht, nicht für nennenswerte Ströme.
:
Bearbeitet durch User
Franz H. schrieb: > Es wäre eine tolle Lösung gewesen, ein fertiges Netzteil zu kaufen und > dieses an der Platine anzustecken. Auf Mouser hätte ich ein Netzteil > gefunden: > https://www.mouser.at/ProductDetail/Cosel/CXLA150F-24-B1?qs=HMhDvBYWqvMOAlwweUjXlA%3D%3D > Es liefert bei 24V 6,25A. Es hat einen Stecker mit 4 Pins. 2x +V0 und 2x > -V0. > Preislich ist es jedoch etwas grenzwertig. Grenzwertig preiswert! Das wäre das optimale Netzteil, wenn es lieferbar wäre. Das entsprechende Mean Well (GSM160A24-R7B) ist eher teurer und Cosel kommt mir seriöser vor. Beide verwenden den gleichen Stecker, ABER eine ANDERE PINBELEGUNG! Billiger wäre höchstens das nächst kleinere Modell. Du hast ja die 90 Watt mit dem maximalen Strom berechnet, insofern würde mir ein 120W-Gerät reichen. > Ich möchte die Platine für ein paar Leute machen und würde gerne > verhindern, dass diese mit der Netzspannung hantieren müssen. Deswegen kommt sowas überhaupt nicht in Frage: > Ansonsten müsste ich ein Schaltnetzteil > verwenden, an dem man die Kabel händisch anschließt. Selbst wenn du das selber machst, willst du keine Netzspannung in deinem Gerät haben. Und preiswerter wird das auch nicht.
Erstmals vielen herzlichen Dank für das ganze Input. Damit bin ich nun einmal gut beschäftigt. Ich werde mich gleich heute daran machen, den Schaltregler für die 5V zu zeichnen. Das wird sicher einiges an Zeit in Anspruch nehmen. Das TI-Tool ist wirklich toll. Um das Netzteil/Stecker-Thema werde ich mich danach kümmern. Die KPJX-Buchse sieht ordentlich aus. Den müsste ich halt eben selbst auflöten, was grundsätzlich ja kein Problem darstellen würde. Da sehe ich eher ein Problem mit dem Stecker... aber das muss ich mir ansehen. Natürlich wäre es mir am liebsten, keine Netzspannung in meiner Maschine zu haben. Also die Lösung mit Stecker abschneiden und einen neuen daran machen gefällt mir schon mal nicht so schlecht. Das LRS ist preislich jedoch wirklich sehr attraktiv. Ich denke, auch das muss ich mir noch genauer ansehen. Vielleicht findet sich ein Lieferant, der die richtigen Stecker schon konfektioniert. Die Maschinenrichtlinie ist mir grundsätzlich geläufig. Ich arbeite seit vielen Jahren als Maschinenbaukonstrukteur im Sondermaschinenbau. Da habe ich immer mal wieder Berührungspunkte damit. Grundsätzlich ist das Thema Regularien noch ein riesiger Batzen Arbeit, sollte meine Maschine irgendwann so weit sein, dass ich daraus ein Produkt erstellen kann. Ich kenne da jemanden, der das hauptberuflich in größeren Firmen macht. Aber das ist ein Thema für sich. Lothar M. schrieb: > Dort unbedingt die "Layout Guidelines" im Datenblatt beachten. Denn > eines der wichtigsten "Bauteile" eines Schaltrelgers ist das Layout. Ja, das dachte ich mir schon. Wird natürlich beachtet.
Franz H. schrieb: > Erstmals vielen herzlichen Dank für das ganze Input. Damit bin ich nun > einmal gut beschäftigt. Ich werde mich gleich heute daran machen, den > Schaltregler für die 5V zu zeichnen. Das wird sicher einiges an Zeit in > Anspruch nehmen. Das TI-Tool ist wirklich toll. Wie gesagt, Du hättest auch das Meanwell RD-125B mit gleichzeitig 5V UND 24V als Alternative. 10 Euro mehr erspart Dir den Schaltregler. fchk
Frank K. schrieb: > Meanwell RD-125B mit gleichzeitig 5V UND > 24V Ja, stimmt, das habe ich jetzt aus der Fülle an Infos fast übersehen. Das, in Kombination mit den IEC-C14-Buchsen und Sicherung, wäre die perfekte Kombination. Die Platine wird dann einfach per Schraubklemmen angeschlossen. Das RD-125B kostet gerade einmal ~26€. Somit würden sich alle meine Probleme erstmals auflösen :-)
So, ich habe nun den SN74LVC1T45 mit dem TX vom AVR Richtung Pi verdrahtet. Soweit ich das verstanden habe, muss der DIR-Pin über einen Widerstand an GND, um von B nach A Signale zu schicken. Sollte ich am besten auch in die andere Richtung den Level Shifter benutzen? Also Pi -> AVR. In diesem Fall müsste ich den DIR-Pin über einen Widerstand an VCCA (3,3V), soweit ich das verstehe. Ansonsten bleibt die Verschaltung gleich. Ein weiteres Fragezeichen ist nun aufgetaucht: Der Atmega wird über ISP mit einem Bootloader über die 40-polige Buchsenleiste auf der Platine versorgt. Das möchte ich über eine weitere kleine Adapterplatine (Arduino HAT) machen. Also eine kleine Platine, die auf einem Uno steckt. Ich benötige den Bootloader, um danach einen Code via Raspberry und UART zu flashen (was soweit schon klappt). So behalte ich mir die Möglichkeit, ein Firmware-Update aus der Ferne zu machen. In der Ersteinrichtung möchte ich jedoch über meine Adapterplatine zuerst den Bootloader brennen und danach über FTDI einen Code flashen. Ich denke mir das also so: Arduino Uno -> Adapterplatine -> Platine für Maschine (mit den Atmegas). Mit der Adapterplatine wird zuerst ein Bootloader über SPI gebrannt. Zusätzlich befindet sich auf der Adapterplatine ein FTDI-Modul. Mit diesem flashe ich dann den Code. Das heißt, ich versorge in diesem Szenario VCCA und VCCB mit 5V. Das sollte, denke ich, so funktionieren, oder? Also alles, was in dem Bild mit 3,3V angeschlossen ist, hat dann 5V.
Franz H. schrieb: > So, ich habe nun den SN74LVC1T45 mit dem TX vom AVR Richtung Pi > verdrahtet. Soweit ich das verstanden habe, muss der DIR-Pin über einen > Widerstand an GND, um von B nach A Signale zu schicken. Den Widerstand kannst Du Dir sparen. Der Strom durch die Eingangspins liegt im Bereich von 1-2 uA. > Sollte ich am besten auch in die andere Richtung den Level Shifter > benutzen? Also Pi -> AVR. In diesem Fall müsste ich den DIR-Pin über > einen Widerstand an VCCA (3,3V), soweit ich das verstehe. Ansonsten > bleibt die Verschaltung gleich. Genau so. Wie gesagt, den Widerstand kannst Du weglassen. > Ein weiteres Fragezeichen ist nun aufgetaucht: Der Atmega wird über ISP > mit einem Bootloader über die 40-polige Buchsenleiste auf der Platine > versorgt. Wenn der SPI auch zwischen Pi und AVR verbunden ist, brauchst Du auch da Levelshifter. Oder Du schaust, ob Dir beim AVR nicht doch 3.3V und 12 MHz reichen. Oder Du nimmst einen modernen AVR und keine Altlast. > Das möchte ich über eine weitere kleine Adapterplatine (Arduino HAT) > machen. Also eine kleine Platine, die auf einem Uno steckt. > Ich benötige den Bootloader, um danach einen Code via Raspberry und UART > zu flashen (was soweit schon klappt). So behalte ich mir die > Möglichkeit, ein Firmware-Update aus der Ferne zu machen. Das kannst Du Dir sparen. avrdude gibts auch für den Pi. Damit kannst Du ganz einfach ein .hex in den AVR braten. https://kevincuzner.com/2013/05/27/raspberry-pi-as-an-avr-programmer/ > Das heißt, ich versorge in diesem Szenario VCCA und VCCB mit 5V. Das > sollte, denke ich, so funktionieren, oder? Also alles, was in dem Bild > mit 3,3V angeschlossen ist, hat dann 5V. Solange mechanisch ausgeschlossen ist, dass der Pi angeklemmt ist, kannst Du das machen. Aber eigentlich ist das zu viel Aufwand. Mit einem modernen AVR mit UPDI geht das alles noch viel einfacher. UPDI ist im Wesentlichen ein Eindraht-UART. fchk
Frank K. schrieb: > Wenn der SPI auch zwischen Pi und AVR verbunden ist, brauchst Du auch da > Levelshifter. SPI wird danach eigentlich nicht mehr benötigt. Frank K. schrieb: > Das kannst Du Dir sparen. avrdude gibts auch für den Pi. Damit kannst Du > ganz einfach ein .hex in den AVR braten. Genau das habe ich schon getestet, leider mit weniger Erfolg. Aber vielleicht sollte ich das noch einmal versuchen. Das wäre natürlich die allereinfachste Möglichkeit – dann natürlich mit Level-Shifter. Den Link werde ich mir genauer ansehen. Vielleicht komme ich dahinter wo der Fehler lag. Frank K. schrieb: > Mit einem modernen AVR mit UPDI geht das alles noch viel einfacher. UPDI > ist im Wesentlichen ein Eindraht-UART. Das hört sich sehr verlockend an. Jedoch befürchte ich, dass ich damit ein Fass aufmache, bei dem ich sehr lange beschäftigt bin und mit Problemen konfrontiert werde, die ich eher vermeiden möchte. Ich denke da nur an die Bibliotheken usw. Da bleibe ich lieber oldschool mit einem IC, den ich so halbwegs verstehe ;-) Aber ich sollte mich in diese Richtung weiterentwickeln. Das mache ich dann, wenn meine Platine soweit einmal läuft.
Franz H. schrieb: > Frank K. schrieb: >> Wenn der SPI auch zwischen Pi und AVR verbunden ist, brauchst Du auch da >> Levelshifter. > SPI wird danach eigentlich nicht mehr benötigt. Egal. Entweder es ist da, dann muss es korrekt sein, oder es wird nicht benötigt, dann kann es weg. Und der AVR würde den Pi über MISO auch mit 5V beaufschlagen, was extrem dumm wäre. Wenn Du es lässt, dann nimmst Du natürlich ICs mit mehreren Kanälen - EIn 74LVC2T45 für UART_RX und SPI_MISO, und zwei 74LVC2T45 für UART_TX, SPI_MOSI und SPI_SCK. Wenn Du wenig Bauteile haben willst, dann kannst Du Dir auch den TXB0108B anschauen. Achtung: Die A-Seite verträgt da nur 3.6V maximal. > Frank K. schrieb: >> Mit einem modernen AVR mit UPDI geht das alles noch viel einfacher. UPDI >> ist im Wesentlichen ein Eindraht-UART. > > Das hört sich sehr verlockend an. Jedoch befürchte ich, dass ich damit > ein Fass aufmache, bei dem ich sehr lange beschäftigt bin und mit > Problemen konfrontiert werde, die ich eher vermeiden möchte. Ich denke > da nur an die Bibliotheken usw. > Da bleibe ich lieber oldschool mit einem IC, den ich so halbwegs > verstehe ;-) > Aber ich sollte mich in diese Richtung weiterentwickeln. Das mache ich > dann, wenn meine Platine soweit einmal läuft. Naja, Du merkst ja langsam, auf was Du achten musst, wenn Du zwei Prozessoren mit getrennt geschalteter Versorgung und unterschiedlichen Spannungspegeln verwendest. Du solltest Dich auch unbedingt mit der 3.3V/12MHz Variante beschäftigen. Das vereinfacht vieles und sollte eigentlich keine sichtbaren Kontraindikationen haben. fchk
Ich habe gerade noch einmal versucht, den Bootloader mit dem Pi zu brennen. Hat nun auf Anhieb geklappt. Das macht die Geschichte etwas einfacher und ich spare mir das ganze HAT Platinen Teil.
:
Bearbeitet durch User
Ich habe nun die 3 Level-Shifter eingezeichnet. Der letzte Kanal (rot eingekreist) bleibt in diesem Fall frei. Das passt mir eigentlich ganz gut. Um mit dem avrdude den Bootloader mit dem Pi zu brennen, wird ein kurzes Low-Signal an Reset des Atmega benötigt. Ursprünglich wollte ich das über die Transistorschaltung (Reset_Schaltung) machen. Jedoch ist das jetzt natürlich invertiert. Der avrdude schaltet den GPIO auf LOW und der Transistor sperrt. Das klappt so nicht. Ich denke, ich könnte nun ja den freien Kanal des 74LVC2T45 nutzen und den Atmega über diesen resetten. Das müsste eigentlich so funktionieren, oder? PS.: Den Atmega mit 3,3V zu versorgen und den Schrittmotor zu betreiben, werde ich noch testen.
Franz H. schrieb: > Ich habe nun die 3 Level-Shifter eingezeichnet. Der letzte Kanal (rot > eingekreist) bleibt in diesem Fall frei. Das passt mir eigentlich ganz > gut. Der darf nicht frei bleiben. Unbenutze Ausgänge können natürlich frei bleiben. Offene Eingänge darf es jedoch in CMOS-Digitalschaltungen grundsätzlich nicht geben. Die Eingangsstufe kann dann in einen verbotenen Zustand kommen, in dem sowohl der p auch auch der n Transistor halb durchschalten, was zu einem erhöhten Stromfluss und zur Zerstörung des Eingangstreibers führen kann. Offene Eingänge immer(!) auf einen definierten Pegel setzen, wenn das Datenblatt es nicht ausdrücklich anders sagt. Beim AVR setzt Du unbenutzte Pins entweder auf Ausgang und 0 oder aber auf Eingang mit integrierten Pullups. > Ich denke, ich könnte nun ja den freien Kanal des 74LVC2T45 nutzen und > den Atmega über diesen resetten. Das müsste eigentlich so funktionieren, > oder? Genau. Solange keine andere Quelle den Reset bedient, geht das so. Ansonsten brauchst Du Open Collector/OpenDrain Ausgänge mit Pullup. Dann können mehrere Quellen den Reset nach unten ziehen, ohne das es Konflikte gibt, und der Pullup zieht nach oben, wenn sonst niemand zieht. fchk
Hallo Frank, deine/eure Inputs sind für mich wirklich extrem hilfreich. Dadurch kann ich mich in die einzelnen spezifischen Problemstellungen sehr gut einarbeiten. Es sind in diesem Thread schon extrem viele Themen aufgekommen, mit denen ich mich nun grundlegend beschäftigt habe. Wirklich toll... Ich habe nun eine kleine Schaltung für einen 5V-, 50mm-Lüfter gezeichnet. Den Lüfter möchte ich eventuell mit PWM ansteuern (20–25 kHz). In Hinblick auf eine eventuelle EMV-Prüfung irgendwann in der Zukunft habe ich mir dazu ein paar Gedanken gemacht. Weiters wird ein kleiner 30mm-DC-Motor (24V, ~1A) über einen DRV8871 angesteuert. Auch hier habe ich lokale Buffer-Kondensatoren. Jedoch bin ich mir bei der Auswahl sehr unsicher, da ich es nicht verifizieren kann, ob es zu viel oder zu wenig ist. Da fehlt mir leider noch die Erfahrung. Ich denke, es würde Sinn ergeben, noch mehr unterschiedliche Kapazitäten einzufügen. Ich denke, es wäre eine gute Idee, mir ein Oszilloskop zu besorgen. Für das Verständnis wäre das sicher eine tolle Sache. Ein kleiner Modellbauservo ist auch noch verbaut. Hier das gleiche Spiel: ein paar Kondensatoren direkt am Stecker. Und zu guter Letzt der Raspberry Pi 5. Ich denke, dieser sollte besondere Aufmerksamkeit bekommen, da ich die internen Stromregulierungen übergehe. Ich möchte nun auf meiner Prototypen-Platine einige Lötpunkte einfügen, damit ich notfalls noch etwas daran ändern kann. Ich könnte mir vorstellen, dass es gut wäre, wenn man noch weitere Kondensatoren auf die Schnelle einlöten könnte, falls diese benötigt werden. Vielleicht möchte jamand etwas zu meinem Aufbau sagen.
Große Elkos sind langsam, weil sie einen relativ hohen Innenwiderstand haben. Die brauchst Du nicht an jedem Verbraucher. Das ist die sogenannte Bulk Capacitance, also der große Vorratsbehälter.Da reicht es meist, wenn Du ein oder zwei an den Einspeisepunkt packst. Für die kleinen Abblockkondensatoren nimmst Du am besten nur noch keramische Kondensatoren, keine Tantals und keine Elkos. Früher, so vor 20-30 Jahren war das anders, da gab es keramische Kondensatoren noch nicht in den Kapazitäten. Keramische Kondensatoren sind spannungsabhängig, haben aber einen niedrigen Innenwiderstand und halten viel länger als Elkos, solange die keine Überspannung und keinen mechanischen Stress abbekommen. Die packst Du an jeden Verbraucher, möglichst dichtmöglichst an die Versorgungspins. Jeder mm zählt da. Der Rest ist Erfahrung. Die musst Du halt machen. fchk
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.