Forum: Mikrocontroller und Digitale Elektronik MAC --> PHY --> RJ45 --> PHY --> MAC keine Verbindung


von ??? ?. (wookiee)


Lesenswert?

Hallo,

ich habe zwei identische Boards mit einem µC als MAC und jeweils einem 
DP83640 PHYTER. Beide Boars sind mit einem Netzwerkkabel verbunden, 
jedoch kommt keine Verbindung zustande.

Ich habe beide Boards bereits mit einem Netzwerkkabel an meinen PC 
angeschlossen und bekam bei beiden eine funktionierende 
100MB/Full-Duplex-Verbindung zustande und konnte den Datenstrom mit 
Wireshark überprüfen.

Mit der Hardware sollte demnach alles in Ordnung sein.

Ich habe das ganze mit Auto-Negotiation und Auto-MDIX konfiguriert, also 
sollte es an falschen Geschwindigkeitseinstellungen etc. auch nicht 
liegen.

Bin momentan ratlos, an was das ganze liegt.
Da die meisten PHYs relativ ähnlich funktionieren (zumindest sind die 
unteren Register wie ich das sehe alle standardisiert) hoffe ich, dass 
mir jemand weiterhelfen kann.

Muss ich meinen PHY irgendwie speziell konfigurieren?
Ich weiß leider nicht genau, wie ich meine Frage formulieren soll, denn 
eigentlich sollte es ja keine Rolle spielen, ob die beiden Boards 
miteinander verbunden sind oder mit dem PC.

: Bearbeitet durch User
von Marc (gierig) Benutzerseite


Lesenswert?

Pierre ?. schrieb:
> Auto-MDIX

Beide Gesetzt ? Hab ich im allgemeinen schlechte Erfahrung mit wenn 
beide Seiten Auto-MDIX machen  wobei ich den  DP83640 nicht wirklich 
kenne.


Testweise mal ein CrossKabel genommen ?
Und oder ganz blöd aber ich erwähne es mal:
dein Netzwertkabel  ist auch funktionell ?

Nachtrag:
Auto-Negotiation auf beiden Seiten kann recht harkelig sein.

: Bearbeitet durch User
von Pete K. (pete77)


Lesenswert?

Dann funktioniert Dein Auto-MDIX wohl noch nicht.
Was passiert, wenn Du ein Board auf MDI und das andere auf Auto_MDIX 
konfigurierst?

von ??? ?. (wookiee)


Lesenswert?

Marc D. schrieb:
> Pierre ?. schrieb:
>> Auto-MDIX
>
> Beide Gesetzt ? Hab ich im allgemeinen schlechte Erfahrung mit wenn
> beide Seiten Auto-MDIX machen  wobei ich den  DP83640 nicht wirklich
> kenne.
>
>
> Testweise mal ein CrossKabel genommen ?
> Und oder ganz blöd aber ich erwähne es mal:
> dein Netzwertkabel  ist auch funktionell ?
>
> Nachtrag:
> Auto-Negotiation auf beiden Seiten kann recht harkelig sein.

Hatte ich, ja.
Habe eben deinen Vorschlag versucht. Crossoverkabel --> selbiges Problem
Was meinst du mit funktionell? Kaputt ist es nicht, falls du das meinst. 
:)




Pete K. schrieb:
> Dann funktioniert Dein Auto-MDIX wohl noch nicht.
> Was passiert, wenn Du ein Board auf MDI und das andere auf Auto_MDIX
> konfigurierst?


Auch das habe ich eben versucht.

-MDIX Board 1, MDI Board 2 --> nichts
-MDIX Board 1, MDIX Board 2 --> nichts (klar, so wars ja bisher ohnehin)
-MDI Board 1, MDI Board 2, Force MDIX Board 2 --> nichts
-obiges umgekehrt --> nichts

-PC, MDI Board 1, kein Force MDIX --> nichts (klar, war kein Crosskabel)
-PC, MDI Board 1, Force MDIX --> geht
-PC, MDIX Board 1 --> geht nach wie vor



Danke für die guten Ratschläge, hatte echt schon vermutet, dass das die 
Lösung ist, aber leider nicht. :(

von Pete K. (pete77)


Lesenswert?

Nun ja, wenn es mit dem PC funktioniert, aber mit einem anderen Board 
nicht, dann macht der PC etwas, was das andere Board nicht macht.

Kannst Du die Synchronisation zwischen den beiden debuggen? Muss ja ein 
Unterschied zum PC sein.

Frage: wie stellst Du fest, ob das funktioniert oder nicht?

Sendest Du etwas an die Gegenstelle und prüfst, ob es angekommen ist?

Bis zu welchem OSI-Layer funktioniert es noch?

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Damit eine Verbindung zustande kommt, muss mindestens einer der Partner 
aktiv die Verbindung aushandeln. Vielleicht lauern beide Seiten darauf, 
dass der andere die Initiative ergreift. Versuch mal, die Boards über 
einen Hub zu verbinden.

von .... (Gast)


Lesenswert?

Board 2 kaputt?

von ??? ?. (wookiee)


Lesenswert?

Pete K. schrieb:
> Nun ja, wenn es mit dem PC funktioniert, aber mit einem anderen
> Board
> nicht, dann macht der PC etwas, was das andere Board nicht macht.
>
> Kannst Du die Synchronisation zwischen den beiden debuggen? Muss ja ein
> Unterschied zum PC sein.
>
> Frage: wie stellst Du fest, ob das funktioniert oder nicht?
>
> Sendest Du etwas an die Gegenstelle und prüfst, ob es angekommen ist?
>
> Bis zu welchem OSI-Layer funktioniert es noch?



Zumindest hat es den Anschein, du hast Recht.
Debuggen kann ich das leider nicht.

Auf dem µC läuft eine Routine, die Ping-Requests erwidert, was 
funktioniert.
Auch wahllose Daten kann ich mit Wireshark ohne Bitfehler loggen.
Mit der OSI-Einteilung tu ich mir immer schwer. :D
Sollte, wenn ich richtig liege, aber zumindest mal bis Schicht 2 
funktionieren.

Soweit verlang ich das aber vorerst ja mal noch gar nicht.
Der PHY hat die Standard LEDs (Link, Mode, Activity).
Die einzige die bei Board-Board leuchtet ist die Mode. Steck ich dann 
auf den Rechner um, dann geht die LINK an und die Activity zeigt mir 
blinkend den Datenfluss an.

Georg G. schrieb:
> Damit eine Verbindung zustande kommt, muss mindestens einer der
> Partner
> aktiv die Verbindung aushandeln. Vielleicht lauern beide Seiten darauf,
> dass der andere die Initiative ergreift. Versuch mal, die Boards über
> einen Hub zu verbinden.


Ist ein Versuch wert, auch wenn das weiterführend nicht die Lösung ist, 
da ich durch HUB/Switch die Zeitstempel verkorkse, die mir der PHY 
später mal synchronisieren soll...
Werds trotzdem mal versuchen.

.... schrieb:
> Board 2 kaputt?

Wieso sollte es? Funktioniert ja am Rechner identisch.

von Georg G. (df2au)


Lesenswert?

Pierre ?. schrieb:
> Werds trotzdem mal versuchen.

Ich weiß, dass zumindest der CS8900 sehr gut überredet werden musste, 
damit er die Link-Test Impulse sendete. In der Standardeinstellung war 
der total passiv. Nimm doch einfach ein Scope und sieh die die Leitung 
an. Die Pulse sind zwar schmal aber gut sichtbar. Und ohne sie geht 
nichts.

von PittyJ (Gast)


Lesenswert?

Billigen Switch dazwischen, um erst mal beim Ping das blinken sehen?
Evtl die Netzwerkadressen falsch?

von Markus (Gast)


Lesenswert?

Wo kommt denn jeweils die MAC-Adresse her? Wenn die bei beiden gleich 
ist, dann gehts auch nicht.

von ??? ?. (wookiee)


Lesenswert?

PittyJ schrieb:
> Billigen Switch dazwischen, um erst mal beim Ping das blinken sehen?
> Evtl die Netzwerkadressen falsch?

Über einen Switch funktionierts. Habe am Quelltext nichts weiter 
verändert.


Georg G. schrieb:
> Pierre ?. schrieb:
>> Werds trotzdem mal versuchen.
>
> Ich weiß, dass zumindest der CS8900 sehr gut überredet werden musste,
> damit er die Link-Test Impulse sendete. In der Standardeinstellung war
> der total passiv. Nimm doch einfach ein Scope und sieh die die Leitung
> an. Die Pulse sind zwar schmal aber gut sichtbar. Und ohne sie geht
> nichts.


Das scheint bei mir auch der Fall zu sein. Hast du vielleicht ein paar 
Stichpunkte, wonach ich bei der Konfiguration Ausschau halten sollte, 
damit ich das ganze auch ohne Switch zum laufen bekomme?

von Georg G. (df2au)


Lesenswert?

Google zeigt die bei "link pulse dp83640" diverse Ergebnisse. Offenbar 
ist die Autonegotiation nicht ganz problemlos. Laut Datenblatt gibt es 
da diverse Möglichkeiten.

Nett ist auch dieser Hinweis:
Note that the reception of normal 10BASE-T link pulses and fast link 
pulses per IEEE 802.3u Auto-Negotiation by the 100BASE-TX receiver do 
not cause the DP83640 to assert signal detect.

Auf deutsch: Er sieht Pulse und stellt sich dennoch tot.

FF (Frohes Forschen).

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.