Hallo, ich versuche momentan den 3 Port Switch KSZ8873RLL in Kombination mit einem STM32H7 Inbetrieb zu nehmen. Die Software für die Ethernet Kommunikation wurde auf dem STM32H7 Nucleo mit einem LAN8742A bereits erfolgreich getestet. Nun steht die Inbetriebnahme mit dem KSZ8873RLL an. Ein Link von meinem Laptop zum Switch IC kommt zustande, den ganzen ARP Traffic etc. sehe ich auch auf den RXD Pins des RMII. Auf den TXD Pins des RMII sind auch Signale zusehen, diese sind aber wesentlich niederfrequenter als die von den RXD Leitungen? Der Mikrocontroller ist über seine statische IP Adresse nicht erreichbar, bzw sendet er nicht ein ARP Paket um sich dem Netzwerk bekanntzumachen. Könnte es daran liegen das die beiden PHYs intern Unterschiede besitzen? Oder muss der Code auf dem STM32 für den neuen PHY/Switch angepasst werden?
Ich würde mal aus reinem gesunden Menschenverstand heraus behaupten dass du einen "gemanagten Switch" auch tatsächlich "managen" musst bevor er so funktioniert wie du es für erforderlich hältst. Einfach einen LAN8742A durch einen KSZ8873RLL ersetzen und korrekt anschliessen wird wohl nicht reichen. Da du dazu keine Angaben gemacht hast muss man erst mal davon ausgehen dass du nichts dafür getan hast.
Link aufgebaut sagt nur das dein PC Laptop sonst was zumindest bis zum KSZ eine Verbindung hat.. Mehr nicht.. Alles was danach kommt (Ping / iperf usw.) geht erst über die RMII.. Und damit das läuft muss über MDIO oder sonst wie erstmal die KSZ entsprechend eingestellt werden.. Das was du auf den RX Pins der RMII siehst ist das, was die KSZ versucht deinem STM zu sagen.. Ob der versteht was die KSZ da sagt weiß ich nicht.. Auf RMII TX siehst du nur etwas wenn der STM was der KSZ schickt.. sonst ist da erstmal normalerweise "tote hose"
Wohl nicht umsonst hat der KSZ8873 zwei Management-Schnittstellen: I2C und SPI. Und darüber wird man ihm erst mal sagen müssen was er zu tun hat. Ob er das nach dem Einschalten schon weiss oder er das über eine Schnittstelle erst einmal gesagt bekommen muss wird man durch Lesen des Datenblatts herausfinden können.
Marcel T. schrieb: > Oder muss der Code auf dem STM32 für den neuen PHY/Switch angepasst > werden? Der Code wird angepasst werden müssen. Jeder PHY (und Dein Switch wird hier als PHY betrieben!) hat 32 16-Bit Register, die über MDC und MDIO angesteuert werden. Die ersten 16 Register sind standardisiert, die anderen 16 nicht. Über diese Register weiß der STM32, ob der Ethernet-Port up ist, ob er mit 10 oder 100 MBit/s fahren soll, ob er voll- oder halbduplex betrieben werden soll etc etc. Vieles findest sich in den zweiten 16 Registern, die herstellerspezifisch sind. Der LAN8742A kommt ursprünglich von SMSC, der KSZ8873 von Micrel. Beide Firmen wurden von Microchip übernommen, aber die technischen Unterschiede bleiben bestehen. Ein LAN9354 (auch von SMSC und äquivalent zum KSZ8873) wäre bei der Portierung wahrscheinlich einfacher gewesen. Und dann kommen ja noch die hunderte Register der Switch-Engine. Die werden auch über MDC/MDIO adressiert, aber über andere PHY-Adressen. Gehe mal davon aus, dass Du da noch viel Spaß bei der Anpassung haben wirst. Ein Logicanalyzer, der den MDC/MDIO Bus interpretieren kann, wird recht nützlich sein. fchk
Wir haben es mit überraschend wenig Arbeitsaufwand ans Laufen bekommen. Der Trick war die komplette MDIO Kommunikation im STM32 Code zu deaktivieren und dabei lwip einfach einen 100MBit Vollduplex Link vorzugaukeln. Der Switch kann gemanaget werden, ist aber für den normalen Switchbetrieb nicht unbedingt nötig.
Moin, Hat fuer mich so ein bisschen was von: Schwarzes Klebeband auf die Motorkontrollleuchte im Auto bappen ;-) Gruss WK
Wastl schrieb: > Ich würde mal aus reinem gesunden Menschenverstand heraus behaupten > dass du einen "gemanagten Switch" auch tatsächlich "managen" musst > bevor er so funktioniert wie du es für erforderlich hältst. Jein. Ich würde vermuten, dass er sich ohne irgendwelche Management-Konfiguration zunächst mal so verhält wie ein nicht-managbarer 8-Euro-Switch vom Grabbeltisch.
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.