Forum: Mikrocontroller und Digitale Elektronik Gigabit Switch OnBoard + mehrere CM4


von Florian M. (Firma: Privat) (atmegaman)


Lesenswert?

Hallo Zusammen.

Mit der eigenen PCB Erstellung kenne ich mich leider noch nicht so gut 
aus.
Meine Idee wäre es bestehende Schaltungen miteinander auf einem PCB zu 
kombinieren. Das ganze soll dann extern komplett gefertigt werden.
Hintergrund ist, dass ich mir einen eigenen Educational Cluster bauen 
möchte.

Ich wollte mal fragen, ob folgendes möglich ist:

Ich möchte gerne mehrere CM4 Module über Ethernet miteinander 
verdrahten, sodass ich ein Board habe mit LAN Buchse, mehreren CM4s die 
alle miteinander verbunden sind. Ich weiß, dass es sowas für das CM3 
bereits gibt, allerdings über den langsameren Umweg USB3 -> Netzwerk -> 
Switch. Das neue Modul 4 hat aber einen eigenen Gigabit-Controller 
direkt angebunden, soweit ich das verstanden habe, und dieser wird 
herausgeführt.
1
Genau genommen möchte ich von:
2
Switch       ---> Netzwerk (extern)
3
Switch       ---> Raspberry Pi 4 (1)
4
USB C Strom  ---> Raspberry Pi 4 (1)
5
Switch       ---> Raspberry Pi 4 (2)
6
USB C Strom  ---> Raspberry Pi 4 (2)
7
....
8
Switch       ---> Raspberry Pi 4 (n)
9
USB C Strom  ---> Raspberry Pi 4 (n)
10
11
Zu einem Board wechseln:
12
13
Board           ---> Netzwerk (extern)
14
ATX-Powersupply ---> Board
Je nach Switch-Möglichkeit könnte man dann noch Verbinder einbauen, um 
mehrerer solcher Platinen zu stapeln.

Mein erster Gedanke war, ob ich das mit Geppetto von Gumstix schnell 
realisieren könnte. CM4 gibt es dort, aber keinen Switch den man auf die 
Platine packen kann. Also wird es wohl darauf hinauf laufen, soetwas 
selbst zu entwerfen. Entwerfen im Sinne von eine hoffentlich bestehende 
Schaltung nehmen und die HW-Ports für RJ45 direkt mit CM4 Konnektoren zu 
verdrahten.
Strom etc. und fertig ist die Laube.
Zumindest stelle ich mir das so vor.

Gibt es so eine open-source Gigabit-Switch Schaltung?
Bitte habt nachsehen mit mir, wenn ich das als viel zu einfach 
betrachte.

Grüße,
Florian

von fchk (Gast)


Lesenswert?

Technisch geht das, was Du willst. Solltest Du Anfänger sein und nichts 
von differential Pairs, Leiterbahnimpedanzen etc wissen, wirst Du 
allerdings daran scheitern.

Dieser Chip ist einigermaßen problemlos besorgbar, und die Dokumentation 
ist auch erhältlich (wichtig).

https://www.microchip.com/wwwproducts/en/KSZ9567

Das Löten dieses Chips ist nicht ganz ohne, weil das 0.2mm breite Pins 
im 0.4mm Raster sind. Du brauchst also professionell gefertigte 
Multilayer-Boards, und das Bestücken von Hand geht nur mit Mikroskop und 
Übung.

Du willst die CM4 Compute Modules benutzen. Die haben leider kein RGMII 
oder SGMII rausgeführt, sondern nur die MDI-Paare. Du wirst 
Ethernet-Transformatoren wie diese hier

https://productfinder.pulseeng.com/doc_type/WEB301/doc_num/HC500/doc_part/HC500.pdf

zum Koppeln der differential Pairs von Switch und Ethernet PHY brauchen.

Wie gesagt, ohne mehrjährige Erfahrung wird das nix. Dann sollest Du 
eher fertige Einzelteile kaufen, die Du nur zusammenstecken brauchst.

fchk

von Florian M. (Firma: Privat) (atmegaman)


Angehängte Dateien:

Lesenswert?

Hallo!
Danke erstmal, das klingt alles hoch interessant.
Mit den Differential-Leitungspaaren kenne ich mich gar nicht aus.
Was ich eben anlesen konnte war, dass es von der Breite der Leiterbahn 
abhängt, das beide Leitungen gleich lang sein müssen, PCB Schichtdicken 
der Layer zu beachten sind usw.
Das ist vermutlich tatsächlich etwas viel für einen Anfänger. :D

Laut Doku sollen die "differential pairs" aber mit 100Ohm geroutet 
werden.

Das mal außen vor gelassen, habe ich ein Schaltungsbeispiel für einen 
POE Ethernet Port (MagJack) am CM4 gefunden.

Was ich bisher nicht wusste, bzw. vermute ist, dass in diesem MagJack 
(also der Buchse) auch noch Elektronik verbaut ist neben den LEDs, und 
es nicht nur ein einfacher mechanischer Anschluss ist. (Ist das so 
richtig? Das wusste ich bisher nicht.)

Mein Verständnis ist jetzt dass man das was dort enthalten ist auch mit 
dem H5007NL realisieren kann. Also um es dann mit dem KSZ9567 und dem 
BCM54210PE auf dem CM4 zu verbinden.

Beim CM4 kommen folgende Pins für das Ethernet heraus:
1
3 Ethernet_Pair3_P Ethernet Pair 3 Positive ( connect to Transformer or MagJack)
2
4 Ethernet_Pair1_P Ethernet Pair 1 Positive ( connect to Transformer or MagJack)
3
5 Ethernet_Pair3_N Ethernet Pair 3 Negative ( connect to Transformer or MagJack)
4
6 Ethernet_Pair1_N Ethernet Pair 1 Negative ( connect to Transformer or MagJack)
5
7 GND Ground (0V)
6
8 GND Ground (0V)
7
9 Ethernet_Pair2_N Ethernet Pair 2 Negative ( connect to Transformer or MagJack)
8
10 Ethernet_Pair0_N Ethernet Pair 0 Negative ( connect to Transformer or MagJack)
9
11 Ethernet_Pair2_P Ethernet Pair 2 Positive ( connect to Transformer or MagJack)
10
12 Ethernet_Pair0_P Ethernet Pair 0 Positive ( connect to Transformer or MagJack)
11
13 GND Ground (0V)
12
14 GND Ground (0V)

Ich betrachte hier jetzt erstmal nur ein einzelnes Paar und nicht alle 4 
Paare.
1
CM4                          H5007NL (Channel1)
2
                     ?-->    TCT1
3
Ethernet_Pair0_P     --->    TD1+
4
Ethernet_Pair0_N     --->    TD1-

Was genau das TCT1 ist weiß ich noch nicht. Ich kann nur raten.
das T steht für Transceiver, TD1 = Transceiver Data1 und TCT1 
Transceiver Clock Time1? Wenn ihr die Bedeutung kennt, würde ich mich 
über eine Erleuchtung freuen.

In der Beispielschaltung vom CM4 Ethernet (im angehängten Bild) gibt es 
am MagJack auch die Pins 4 und 5 mit der Bezeichnung CT, diese gehen 
dabei nur an einen Kondensator mit 100nF. Ich würde jetzt annehmen, dass 
dies auch beim TCT ping jeden Channels am H5007NL gemacht werden müsste. 
Falls ja, brauchen die jeweils einen, oder können/müssen die sich auch 
einen teilen?

Ich hoffe ich habe es jetzt nicht komplett falsch verstanden, sodass der 
PI auf die andere Seite muss. :D

: Bearbeitet durch User
von Florian M. (Firma: Privat) (atmegaman)


Lesenswert?

Ich habe nochmal nach gedacht. Bzw. hat es glaube grade wieder im Kopf 
"KLICK!" gemacht. :D

Laut Doku hat das CM4 ein eigenen PHY und man braucht nur den Port 
anklemmen.
D.h. der moduliert schon ein analoges Signal?

Was fchk meinte ist, dass der KSZ9567 aber digital arbeitet und man nun 
z.B. den H5007NL benötigt, um dies zu verbinden.

also:
1
KSZ9567 --- digital chip Seite ---> H5007NL <---- analog media Seite CM4

von TestX (Gast)


Lesenswert?

Ohne jetzt böse zu sein...das als Spaßprojekt wird nichts...viel zu 
teuer als Prototyp und wenn du soetwas nicht beruflich machst wirst du 
einige Boards brauchen bis es Ansatzweise läuft. Preislich ist schon ein 
Prototyp weit über der kompletten! Variante RPI+PoE Modul.

Wenn es dir um die Softwareentwicklung geht nimm einfach die Standard 
Variante mit PoE....selbst Profis machen das so. Es funktioniert ohne 
extremen Aufwand.

von Florian M. (Firma: Privat) (atmegaman)


Lesenswert?

Ja mag sein, aber dann lerne ich ja nichts.


Bedeutet das CT bzw. TCT Transformer Center Tap, also die Anzapfung?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Um die Verwirrung weiter zu steigern: Koennte gut sein, dass man sich 
die Trafos sparen kann:

https://microchipsupport.force.com/s/article/Capacitive-Coupling-for-Gigabit-Ethernet

Aber ich wuerd auch sagen, dass sowas nix fuer Anfaenger ist. Egal ob 
mit oder ohne Trafos...

Gruss
WK

von Florian M. (Firma: Privat) (atmegaman)


Angehängte Dateien:

Lesenswert?

Ok, nachdem ich darauf gekommen bin, das der Überträger ja nur ein 
passives Element ist, habe ich im Chip mal nach einer Beispielschaltung 
gesucht und bin fündig geworden.

Die Frage ist jetzt kann ich die Leiterbahnen dann direkt zum CM4 führen 
und den MagJack weglassen?

Wenn ich die geforderten Parameter für die differential pairs einhalte, 
sollte das routen in eagle ja nicht allzu schwer sein.
Sieht zumindest hier ganz leicht aus:
https://www.youtube.com/watch?v=U_VrqCcgkIc

: Bearbeitet durch User
von SFP+ (Gast)


Lesenswert?

fchk schrieb:
> Du willst die CM4 Compute Modules benutzen. Die haben leider kein RGMII
> oder SGMII rausgeführt, sondern nur die MDI-Paare.

Nein, da ist 'ne PHY drauf!

Florian M. schrieb:
> Die Frage ist jetzt kann ich die Leiterbahnen dann direkt zum CM4 führen
> und den MagJack weglassen?

Ja, aber vielleicht Terminierungswiderstände?

> Wenn ich die geforderten Parameter für die differential pairs einhalte,
> sollte das routen in eagle ja nicht allzu schwer sein.

Richtig. Du musst dich schon ziemlich anstrengen schlechter als 100m 
CAT5e zu routen :-)

von fchk (Gast)


Lesenswert?

Florian M. schrieb:
> Ok, nachdem ich darauf gekommen bin, das der Überträger ja nur ein
> passives Element ist, habe ich im Chip mal nach einer Beispielschaltung
> gesucht und bin fündig geworden.
>
> Die Frage ist jetzt kann ich die Leiterbahnen dann direkt zum CM4 führen
> und den MagJack weglassen?

Nein, kannst Du nicht. Du darfst nur die Wechselspannungsanteile 
koppeln, nicht aber den Gleichspannungsanteil. Dafür ist der Übertrager 
da.

Es gäbe auch die Möglichkeit, die Ports per Koppelkondensatoren (100n 
X7R in 0402) anzubinden, aber dabei muss man auf noch ein paar Sachen 
mehr achten, z.B. ob die Ports spannungsgesteuert oder stromgesteuert 
sind und ob die dann noch irgendwelche Pullup- und Pulldown-Widerstände 
brauchen. Ist also komplizierter zu designen. Lass das und nimm die 
Signaltransformatoren.

> Wenn ich die geforderten Parameter für die differential pairs einhalte,
> sollte das routen in eagle ja nicht allzu schwer sein.

Ja, es ist machbar.

fchk

von Dergute W. (derguteweka)


Lesenswert?

Moin,

fchk schrieb:
> Lass das und nimm die
> Signaltransformatoren.

Welche genau (common mode choke vorne, hinten, oben unten,...?), und 
wieviele pro Verbindung? "Echtes" Ethernet, so mit Kabel zwischendrinnen 
hat ja an jedem Ende der Strippe ein Trafoarray...

SCNR,
WK

von fchk (Gast)


Lesenswert?

Dergute W. schrieb:
>> Lass das und nimm die
>> Signaltransformatoren.
>
> Welche genau (common mode choke vorne, hinten, oben unten,...?), und
> wieviele pro Verbindung? "Echtes" Ethernet, so mit Kabel zwischendrinnen
> hat ja an jedem Ende der Strippe ein Trafoarray...

Genau. Du brauchst ein solches 4* 1:1 Trafoarray für jede Verbindung 
zwischen CM4-PHY und Switch-PHY. Eines pro Verbindung reicht.

fchk

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?


von Florian M. (Firma: Privat) (atmegaman)


Lesenswert?

Μαtthias W. schrieb:
> Hi
>
> Aber warum nicht über kapazitive Kopplung nachdenken:
>
> 
https://microchipsupport.force.com/s/article/Capacitive-Coupling-for-Gigabit-Ethernet
> http://ww1.microchip.com/downloads/cn/AppNotes/cn586761.pdf
> http://ww1.microchip.com/downloads/jp/AppNotes/jp578072.pdf
> https://www.ti.com/lit/an/slla327/slla327.pdf?ts=1603440208330

Danke für die Infos, das  werde ich mir auch nochmal durchlesen.

Soweit ich fchk verstanden habe meinte er wohl bloß, dass ich weniger 
falsch machen kann, wenn ich quasi den weg über ein "sehr kurzes" 
lan-kabel mit trafo gehe.
Ich werde dieses Wochenende mal mit Kicad mal was (in euren Augen sicher 
furchtbares) entwerfen :D

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Florian M. schrieb:
> Ich werde dieses Wochenende mal mit Kicad mal was (in euren Augen sicher
> furchtbares) entwerfen :D

Damits nicht ganz so furchtbar wird, guggstu hier:

http://ww1.microchip.com/downloads/en/Appnotes/00002054A.pdf

Gruss
WK

von fchk (Gast)


Lesenswert?

Μαtthias W. schrieb:
> Aber warum nicht über kapazitive Kopplung nachdenken:
>
> 
https://microchipsupport.force.com/s/article/Capacitive-Coupling-for-Gigabit-Ethernet

Weil das nur bei Voltage Mode PHYs so einfach funktioniert. Ich weiß 
nicht, wie auf dem CM4-Modul arbeitet. Beide Seiten müssen Voltage Mode 
Drivers haben und keine Current Mode Drivers.

Letztendlich sind die Signale des PHYs erst HINTER dem Tranformator 
standardisiert. Die Signale ziwschen PHY und TRAFO können durchaus 
unterschiedlich sein. Das ist nicht ganz so einfach, und deswegen rate 
ich davon ausdrücklich ab.

fchk

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

fchk schrieb:
> Μαtthias W. schrieb:
>> Aber warum nicht über kapazitive Kopplung nachdenken:
>>
>>
> 
https://microchipsupport.force.com/s/article/Capacitive-Coupling-for-Gigabit-Ethernet
>
> Weil das nur bei Voltage Mode PHYs so einfach funktioniert. Ich weiß
> nicht, wie auf dem CM4-Modul arbeitet. Beide Seiten müssen Voltage Mode
> Drivers haben und keine Current Mode Drivers.

Auf dem Schaltplan vom Träger sieht es für mich nach Voltage Mode aus da 
die Mittelabgriffe der Transformatoren nur einen 100n nach Masse haben.

https://datasheets.raspberrypi.org/cm4io/cm4io-datasheet.pdf

Die meisten neueren PHYs arbeiten meines Wissens nach mit Voltage Mode 
da einfach weniger Leistung verbraten wird.


Matthias

von Florian M. (Firma: Privat) (atmegaman)


Lesenswert?


: Bearbeitet durch User
von Florian M. (Firma: Privat) (atmegaman)


Lesenswert?

Mahlzeit!

Über das letzte Wochenende habe ich mich etwas in KiCad 5 eingearbeitet.

Für mein Vorhaben habe ich jetzt ein Projekt in KiCad erstellt.
Ich habe die Datasheets zusammengetragen, die Bauteile (die ich bisher 
kenne und nutzen will) erstellt, und mit einem hierarchischen Schema 
begonnen.

Das Symbol für den KSZ9567S habe ich aus einem IBIS generiert.

Aktuell fehlt mir noch das CM4 als Symbol und Bauteil (Anschlüsse?) in 
KiCad, dies konnte ich nicht importieren, weil die Raspberry PI 
Foundation auf dem KiCad nightly Build (-> v6) aufsetzt.

Vermutlich muss ich mein Projekt daher auf diese Version upgraden.
Ist dies ratsam?


Ich habe das ganze Projekt zur freien Verwendung auf Github gestellt.
https://github.com/FloMaetschke/CM4CB

Als nächstes muss ich mich Schritt für Schritt herantasten.

Reset-Schaltung, Clock usw. damit kenne ich mich noch gar nicht aus, 
muss mich einlesen und bin vermutlich auf Eure Hilfe angewiesen.

Daher würde ich mich über Feedback, Verbesserung oder Tipps wie auch 
immer  von Euch sehr freuen.

Danke!

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Dazu mein Senf ohne konkrete Reihenfolge:

1.) Koennt' das nicht Probleme machen, wenn du Datenblaetter, an denen 
du wohl keine Urheberrechte hast, bei github reinstellst?

2.) Man kann bei Kicad ziemlich leicht Symbole und Bauteile selber 
erstellen.

3.) Bohr' doch erstmal duennere Bretter. Mach ein Schaltbild und eine 
Platine, auf die du z.b. nur 2 von den CM4 draufstecken kannst, deren 
Ethernets dann z.b. per Koppel-C oder Trafo zusammenhaengen - je nach 
Bestueckung. Voellig ohne Switch dazwischen.
Lass das fertigen und bestuecken. Und dann guck' ob sich die beiden CM4 
"sehen" koennen. Und wenn nicht, warum nicht.
Wenn das dann soweit laeuft, dann mach' eine grosse Platine mit 
Switch-IC und ggf. Konfigurationsmoeglichkeit fuer den Switch. Also 
mindestens ein eeprom oder besser ein uController. Und allem anderen 
Furz und Feuerzeug was du da dann meinst zu brauchen.

Gruss
WK

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
Noch kein Account? Hier anmelden.