Vorab: Ich bin kein Experte und kenne mich in dem Bereich auch nur Semi aus, arbeite nicht in dem Bereich. Also lasst Gnade walten :D.
Jedenfalls möchte ich für ein Projekt gerne ein PCB bzw eine Schaltung mit nem STM32F407 und nem DP83848i entwerfen. Habe alles soweit schonmal mit Breakoutboards von Waveshare und ST getestet. Ist natürlich keine sonderlich kompakte und schöne Lösung. Also würde ich mir gerne selber ein Board designen. Um Fehler auszuschließen und etwas Erfahrung zu sammeln, habe ich erstmal nur ein seperates Board nur mit dem DP8384I in KiCad designed. Dann kann ich ja schonmal sehen, was wie läuft, etc.
Ich habe mir ein paar Dinge im Internet zu den "design-rules" durchgelesen, bin mir aber sicher, dass das Board noch weit davon weg ist gut zu sein. Die Schmeatic ist auch im Anhang. Evtl. lassen sich ja auch hier Fehler finden. Empfiehlt es sich die AN_EN(LED_ACT/COL), AN_1 (LED_SPEED), AN_0 (LED_LINK) Pins manuell auf dem PCB-high zu "strippen" oder reichen die internen Pull-Up Widerstände aus?
Was kann ich noch verbessern? Welche Artikel sind ggf. gut noch zu studieren?
Oder macht es in dieser Form für Personen, die nicht direkt aus dem Fach kommen mehr Sinn, nur mit Breakoutboards etwas zu entwickeln (auch wenn es unschöner ist) oder mit den Boards von ST, die Ethernet intgriert haben?
Danke im Voraus und schonmal ein ein frohes neues Jahr.
Letztendlich ist das alles Übungssache. Ich lerne am Besten von anderen - Kollegen, Freunden etc. Manches muss man auch selber falsch gemacht haben, um es zu lernen. Du wirst mehr als ein Layout in die Tonne treten, weil etwas nicht wie erwartet funktioniert. Das ist normal.
Auf Youtube gibts auch Tutorials, zum einen von dem Robert Feranec (gut, das Zuhören ist da etwas anstrengend, er ist Tscheche), und es gibt die Altium Academy. Die Grundlagen sind ja unabhängig vom Layouttool.
Zu Deinem Board:
Du nimmst RMII. Das ist schon eine Hausnummer, 50 MHz. Das kann man über Kabel führen, aber ich hätte ein besseres Gefühl dabei, den Prozessor mit auf die gleiche Leiterplatte zu setzen. Das verbessert die Signalqualität und macht das alles zuverlässiger.
Wenn Du es einfacher haben willst, könntest Du auch einen Wiznet-Chip nehmen:
https://wiznet.io/products/iethernet-chips/w6100
Da hast Du dann nur noch SPI, was weniger Pins braucht und einfacher zu layouten ist.
Du hast da wohl eine zweilagige Leiterplatte gewählt. Mit 4 Lagen kannst Du weniger Fehler machen. Da nimmst Du eine durchgehende GND-Lage, auf der wirklich gar nichts anderes als Ground ist, und die andere Innenlage nimmst Du für 3.3V. Kostet zwar mehr, aber so teuer ist das ganze jetzt auch nicht mehr.
Wenn Du es einfacher haben willst, könntest Du auch einen Wiznet-Chip
nehmen:
https://wiznet.io/products/iethernet-chips/w6100
Da hast Du dann nur noch SPI, was weniger Pins braucht und einfacher zu
layouten ist.
Die Wiznets sind ganz nett, aber deren IP-Stack ist ständig im Weg. Man kann die zwar auch Raw betreiben, ist aber nicht gut dokumentiert.
Meiner Meinung nach ist der DP83848 für den Anfang klar einfacher, vor allem wenn man einen Controller mit integriertem MAC zur Hand hat.
Du hast da wohl eine zweilagige Leiterplatte gewählt. Mit 4 Lagen kannst
Du weniger Fehler machen. Da nimmst Du eine durchgehende GND-Lage, auf
der wirklich gar nichts anderes als Ground ist, und die andere Innenlage
nimmst Du für 3.3V. Kostet zwar mehr, aber so teuer ist das ganze jetzt
auch nicht mehr.
Ja, 4 Layer ist einfacher, Du sparst Dir viel Zeit fürs Layout und hast weniger Risiken dass es Probleme durch schlechtes Layout gibt.
Wenn Du unter 5x5 cm Platinengröße bleibst kosten 2 Layer und 4 Layer bei JLCPCB das selbe (=2 US$). Also für kleine Platinen eine einfache Entscheidung.
Was mir sonst noch auffällt:
Der X2 Oszillator für die 50 MHz sieht mir gigantisch groß aus. Ist der wirklich so groß? Ich hätte da eher 3.2x2.5mm oder so erwartet.
Sieh kleine Widerstände auf allen Signalleitungen zum Mikrocontroller vor, z.B. 27 oder 33 Ohm. Stichwort Serienterminierung. Wenn Du die nicht brauchst kannst Du immer noch 0 Ohm bestücken.
Wie macht der Mikrocontroller einen Reset des PHY? In dem Bereich hab ich in der Praxis schon öfters Probleme mit fremden Designs gehabt. Sieh dafür lieber eine Möglichkeit mit dedizierter Resetleitung vor. Du willst nicht bei jedem Anschalten den Taster drücken...
Evtl. noch verstärkter ESD- und Überspannungsschutz. Einfach ein z.B. IP4220CZ6F zwischen DP83848 und Magjack.
Lass noch mehr Abstand zwischen dem GND der Schaltung und dem Schirm des Magjack. Bei nem kommerziellen Gerät müsstest Du da durch Surge-Tests etc. durch und das wird mit dem kleinen Abstand schwer. Du willst da ein paar Millimeter haben, dann bist Du auf der sicheren Seite.
das wäre auch eine Möglichkeit. Allerdings möchte ich das ganze auf begrenzten Raum umsetzen und die GPIOs welche ich für Sensoren/Aktoren benötige auch ordentlich rausführen. Grad läuft das ganze noch mit nem Mega2560 Mini von Aliexpress und nem W5500 Board und dann die ganzen Pins raus aus dem Gehäuse geführt. Schön ist das ganze so nicht. Ich hätte gerne schon alles sauber beisammen und nicht zusammen gelötet.
Das ich das ganze auch einfacher zum laufen bekomme ist mir klar. Aber ich würde gerne auch etwas dazulernen und es "professionell" umsetzen. Ich könnte natürlich auch sagen, ich designe mir eine Platine mit dem STM drauf und stecke das Ethernet-Breakoutboard von Waveshare dazu. Aber dann kann ich es auch direkt "ganz" machen. Leider habe ich keine Bekannten oder Freunde die in dem Bereich groß sind die ich fragen könnte.
Wenn Du es einfacher haben willst, könntest Du auch einen Wiznet-Chip
nehmen:
https://wiznet.io/products/iethernet-chips/w6100
Da hast Du dann nur noch SPI, was weniger Pins braucht und einfacher zu
layouten ist.
Die Wiznets sind ganz nett, aber deren IP-Stack ist ständig im Weg. Man
kann die zwar auch Raw betreiben, ist aber nicht gut dokumentiert.
Will er das? Ich meine, lwIP funktioniert zwar, ist aber so prall auch nicht.
Meiner Meinung nach ist der DP83848 für den Anfang klar einfacher, vor
allem wenn man einen Controller mit integriertem MAC zur Hand hat.
Oder sowas wie LAN8742. Ist kleiner, hat weniger Außenbeschaltung.
Der X2 Oszillator für die 50 MHz sieht mir gigantisch groß aus. Ist der
wirklich so groß? Ich hätte da eher 3.2x2.5mm oder so erwartet.
Ich befürchte, dass er da einen 5V-Oszillator im DIL14 genommen hat. Die gehen natürlich nicht.
Sieh kleine Widerstände auf allen Signalleitungen zum Mikrocontroller
vor, z.B. 27 oder 33 Ohm. Stichwort Serienterminierung. Wenn Du die
nicht brauchst kannst Du immer noch 0 Ohm bestücken.
genau.
Wie macht der Mikrocontroller einen Reset des PHY? In dem Bereich hab
ich in der Praxis schon öfters Probleme mit fremden Designs gehabt. Sieh
dafür lieber eine Möglichkeit mit dedizierter Resetleitung vor. Du
willst nicht bei jedem Anschalten den Taster drücken...
Evtl. noch verstärkter ESD- und Überspannungsschutz. Einfach ein z.B.
IP4220CZ6F zwischen DP83848 und Magjack.
Lass noch mehr Abstand zwischen dem GND der Schaltung und dem Schirm des
Magjack. Bei nem kommerziellen Gerät müsstest Du da durch Surge-Tests
etc. durch und das wird mit dem kleinen Abstand schwer. Du willst da ein
paar Millimeter haben, dann bist Du auf der sicheren Seite.
Den habe ich für einige Projekte eingesetzt. Da ist der Ethernet PHY schon mit drin, d.h. da etwas falsch zu machen muss man schon können. TI liefert Dir eine schöne Treiberbibliothek mit. Ansonsten ist das auch nur ein Cortex M4F wie alle anderen auch.
ja ich hab son riesen cmos oszillator genutzt, das war der einzige, den ich gefunden habe den man händisch löten kann.
Aber wie ich bei z.B dem Breakout Board von Waveshare gesehen habe, kann man auch einfach die 4-Pads etwas größer machen - wenn die nicht sogar schon im Standart Footprint so sind.
Okay, das mit dem "impedance-matching" mit den kleinen Widerständen hatte ich tatsählich mal angedacht. Darum gehts hierbei doch, oder? ESD- & Überspannungsschutz kann ich ja z.B auch mit Suppressor-Dioden umsetzen, Verpolungschutz ggf. mit nem P-Kanal Mosfet oder ganz billig mit ner Schottky Diode. Aber das hatte ich alles fürs fertige Board gedacht - wo STM32 und der PHY aufm gleichen Brett sitzen, genau so wie 4-Layer High-Signal - GND - VDD - High Signal.
Die Videos von diesem Robert ... kenne ich, finde ich auch ganz gut muss ich sagen.
Den Oszi sollte man, soweit ich es weiß mit 5V oder 3.3V VDD betreiben
können. Die Amplitude sollte dann 0.9VDD bzw 0.1VDD sein. Das passt
doch, oder?
So lange wie Du nicht den EXAKTEN Typ hier veröffentlichst, kann man das nicht sagen. Üblicherweise sind Oszillatoren in dieser Bauform reine 5V-Typen.
Empfiehlt es sich die AN_EN(LED_ACT/COL), AN_1
(LED_SPEED), AN_0 (LED_LINK) Pins manuell auf dem PCB-high zu "strippen"
oder reichen die internen Pull-Up Widerstände aus?
Hallo, so sieht meine Schaltung mit dem DP83848 aus.
Ist eine Kopie von Microchip PIC32MX Starter Kit.
Alle 3 LEDs sind angeschlossen und parallel jeweils dazu ein Widerstand, der beim Einschalten der Versorgungsspannung die Konfiguration einließt.