Forum: Mikrocontroller und Digitale Elektronik Link zu KSZ8873 bricht periodisch ab


von Stefan  . (phreakshow)


Lesenswert?

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?

von Gerd E. (robberknight)


Lesenswert?

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

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

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.

von Stefan  . (phreakshow)


Lesenswert?

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?

von Gerd E. (robberknight)


Lesenswert?

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.

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

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.

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

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.

von Stefan  . (phreakshow)


Lesenswert?

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