Hi zusammen. Ich hab hier eine Schaltung mit einem KSZ8873 (Embedded-Switch mit einem PHY und zwei MACs). Anschlossen sind Port 2 (mit Magjack) und Port 3 (mit MII an einen anderen Controller). Der Controller an Port 3 ist per Piggy-Board verbunden und für die Tests nicht aktiv, also ist eigentlich nur Port 2 angeschlossen. An Port 2 hängt mein Notebook, eben über den Magjack. Beim Einstecken hab ich einen Link, Windows mosert natürlich dass es kein Internet findet, aber der LInk ist da. Nach wenigen Sekunden krieg ich die Meldung, dass das Netzwerkkabel entfernt wurde, wurde es natürlich nicht. Nach ein paar weiteren Sekunden ist der link wieder da, und das Spiel beginnt von vorn. Konfiguration per bootstraps, ich hab einen pulldown an Pin 27 für Link an Port 3, einen an LED1 (Pin 63) für I2C slave und einen am SMRXDV3 (Pin 28) für MAC-Mode an Port 3. Diese config funktioniert auf einem anderen Board. Der 25MHz Quarz feuert vor sich hin, ich hab keine Unterbrechungen zum Magjack (~1 Ohm zwischen den differentiellen Pärchen). Spannungen stehen astrein bei 3,3V bzw 1,8V. Wenn ich nur meinen PC am Switch habe und alle anderen Ports nicht verbunden sind, darf der PC doch nicht erkennen dass das Kabel abgezogen wurde? Den KSZ habe ich schon getauscht, Problem bleibt bestehen. Problem verändert sich auch nicht, wenn ich das MII an Port 3 verbinde. Was könnte da das Problem sein? Wie würdet ihr vorgehen?
Ich würde als erstes mal probieren ob das Problem nur mit Deinem PC auftritt, oder auch mit anderen Ethernet-Endgeräten. Also ein anderer PC, ein paar Switche etc. Die beiden gängigen Probleme bei Ethernet sind meiner Erfahrung nach ein unsauberer oder falscher Takt und eine unsaubere Spannung für den PHY. Ich hab mir jetzt das Datenblatt von Deinem KSZ nicht angeschaut. Kannst Du Dir da die Clock auf einem Pin ausgeben lassen, z.B. als REF_CLK für RMII? Die dann mit einem Spekki auf Jitter und Einhalten der 25/50 MHz untersuchen. Am Quarz selbst kannst Du nicht messen, denn durch den Tastkopf verfälschst Du das Signal zu stark. Für die Spannung wäre eine Rauschmessung auf den für den analogen Teil des PHYs verwendeten Versorgungsspannungen angesagt. Oszi mit LV-Differenztastkopf oder True-RMS-Voltmeter sind dafür gut geeignet (z.B. HP 3400A/B), zur Not Oszi mit 2 Tastköpfen und per Math-Funktion die Differenz bilden. Wenn das alles nichts hilft, musst Du Dir das rohe Signal mit dem Oszi anschauen wie es über die Leitung geht. Auswerten müsste das entweder Dein Oszi, oder eine externe Software. Für letzteres siehe z.B. hier: https://github.com/azonenberg/scopehal-apps
Zunächst ist der KSZ8873MLL* ein Switch mit 3 MACs und 2 PHYs. Wenn dessen MAC 3 per MII an einem MAC eines anderen Systems (z. B. µC) angeschlossen ist, sollte hierfür bevorzugt der PHY-Mode des KSZ8873M verwendet werden (MII laut Datenblatt angeschlossen). Der Switch verhält sich dann an seinem Port 3 für den µC wie ein PHY. Im MAC-Mode wird an MAC 3 normalerweise ein PHY angeschlossen (so könnte man einen Switch mit 3 PHY-Ports realisieren). Das serielle Interface wird an den Pins 60 und 61 gestrappt, nicht an Pin 63. Pin 27 ist kein Strapping-Pin. Am Besten, du zeigst deinen vollständigen Schaltplan mit allem Drum&Dran (auch die Übertrager an den Ports 1 und 2). Ohne einen solchen ist schwer eine solide Aussage möglich. Wenn du Zugang zum Switch per Management-Interface hast, sollte das Problem schnell eingekreist sein. * Edit: Es gibt noch einen KSZ8873MML mit 3 MACs, 2x MII und nur einem PHY.
Danke für eure Antworten. Ich verwende den KSZ8873MML mit zwei MACs und einem PHY. Port 1 hängt kommplett in der Luft, der ist Reserve für ein anderes Projekt. Port 2 hängt am Magjack, Port 3 an einem INAP von Inova der PHY spielt, deswegen ist Port 3 im MAC-Mode. Pins 63&64 sind die straps fürs Interface laut Datenblatt Seite 9f. Clock kann ich mir nicht ausgeben afaik, hab ich jedenfalls nichts zu gefunden im Datenblatt. Ich hab aber rausgefunden dass der link zum KSZ stabil bleibt, wenn ich mein Notebook auf 100Mbit Halbduplex stell. Was mich am meisten wundert ist, dass CRS für Port 3 auf low liegt. Der angeschlossene PHY sagt dem Switch, dass da tote Hose am MII ist? Das Management-Interface habe ich per I2C angeschlossen aber bisher nicht benutzt, weil der Switch bisher immer durch strapping auf Anhieb funktioniert hat. Welche Register soll ich mir ausgeben lassen?
Stefan M. schrieb: > Clock kann ich mir nicht ausgeben afaik, hab ich jedenfalls nichts zu > gefunden im Datenblatt. Zur Not kann man auch eine kleine Nahfeldsonde nehmen und die direkt über den Quarz halten. Mit dem Spekki und Vorverstärker sollte man dann den Takt auch ohne Beeinflussung des Oszillators sehen können. > Ich hab aber rausgefunden dass der link zum KSZ > stabil bleibt, wenn ich mein Notebook auf 100Mbit Halbduplex stell. Dann probier mal noch ein paar andere Geräte durch. Wenn es mit manchen geht, bei manchen die Autodetection ausgemacht werden muss etc. sieht das meiner Meinung nach einem Problem mit dem Takt oder unsauberer Spannung aus. Jedenfalls hab ich solches Verhalten bei diesen beiden Problemen schon gesehen.
Stefan M. schrieb: > Danke für eure Antworten. > > Ich verwende den KSZ8873MML mit zwei MACs und einem PHY. Port 1 hängt > kommplett in der Luft, der ist Reserve für ein anderes Projekt. Port 2 > hängt am Magjack, Port 3 an einem INAP von Inova der PHY spielt, > deswegen ist Port 3 im MAC-Mode. Pins 63&64 sind die straps fürs > Interface laut Datenblatt Seite 9f. Der (weniger häufige) KSZ8873MML mit 3 MACs und einem PHY hat ein modifiziertes Pinout, teilweise auch beim Pin-Strapping. > Ich hab aber rausgefunden dass der link zum KSZ > stabil bleibt, wenn ich mein Notebook auf 100Mbit Halbduplex stell. Das deutet auf ein Duplex-Mismatch hin, vermutlich bedingt durch falsches Pin-Strapping am KSZ8873MML. Es könnte durchaus sein, dass durch den an MAC 3 angeschlossenen INAP (welchen?) die voreingestellte Auto-Negotiation für den PHY an Port 2 überschrieben wird. Deshalb zunächst nachmessen, was während Power-On-Reset an den Pins 29 bis 32 passiert. Notfalls hilft ein externer Pull-Up-Widerstand (wenigstens 4,7 kOhm, ggf. sogar 1 kOhm) an den betroffenen Pins. Sonst sollte man per Management-Interface wenigstens die PHY-Register auslesen und überprüfen. > Das Management-Interface habe ich per I2C angeschlossen aber bisher > nicht benutzt, weil der Switch bisher immer durch strapping auf Anhieb > funktioniert hat. Welche Register soll ich mir ausgeben lassen? Falls I²C dafür verwendet wird, benötigt SPIN einen Pull-Up-Widerstand. Dein Schaltplan scheint geheim zu sein? Dort könnte man, so er ausreichend detailliert ist, bereits eine Menge herauslesen, ohne im Trüben fischen zu müssen.
Wenn das Strapping beim Switch korrekt als Auto-Negotiation erkannt wird, kann die Ursache für den Duplex-Mismatch kann auch eine falsche Einstellung an deinem Notebook sein. Falls dort – entgegen allen Empfehlungen – Vollduplex statt Auto-Negotiation eingestellt ist, fällt der PHY am Switch bei der Auto-Negotiation vorschriftsmäßig auf Halbduplex.
Ich hab den Fehler gefunden und möchte lösen: Am Switch gibts CRS und COL. COL hatte ich hart auf Masse gelegt, aber CRS war mit dem INAP375 verbunden. Das war das Problem, ich hab das Beinchen von CRS angehoben und fliegend mit Masse verbunden. Danach lief alles.
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.