Enc28j60 - keine Kommunikation über Ethernet

das problem ist: keine kommunikation über das ethernet - kein paket wird von meinem board empfangen oder gesendet. Beide Dioden zeigen an, dass eine Verbindung bestehen sollte (eine leuchtet konstant, die andere blinkt auf dem Paket) und Wireshark sieht nur Pakete, die über den PC gesendet werden. Habe sowohl gekreuzte als auch nicht gekreuzte Ethernetkabel probiert. Habe versucht, ENC auszutauschen - gleiches Ergebnis, Revision wird richtig gelesen - also sollte es keine Probleme mit der Kommunikation mit uP geben. Die Geschichte dahinter: Vor ein paar Wochen, als mit der vorherigen Version dieses Boards gearbeitet wurde, war alles in Ordnung (Paketempfang und -versand), plötzlich brannte eine Spule neben RJ. Weiß nicht warum. Umgelötet, RJ-Buchse und ENC getauscht - nichts half. Jetzt arbeite ich mit einer neuen Version davon und das Problem tritt immer noch auf.
Wer kann mir sagen, was das Problem ist?

Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Zusammenfassend: Ihre Platine / Schaltung hat zuvor funktioniert, dann hat etwas dazu geführt, dass eine Komponente (Spule?) Knallte, also haben Sie einige Teile (einschließlich der geknallten Komponente) ausgetauscht und Ihre Schaltung / Platine funktioniert nicht mehr ...

Da Ihre MCU scheinbar mit Ihrem ENC28J60 kommunizieren kann und Ihr ENC28J60 offensichtlich mit dem Mag Jack interagiert (wie durch blinkende LEDs belegt), ist die logische Schlussfolgerung, dass Ihr ENC28J60 Ethernet-Frames empfängt, diese jedoch als ungültig zurückgewiesen werden (möglicherweise aufgrund von CRC Fehler oder ähnliches). Das würde darauf hindeuten, dass etwas mit Komponenten zwischen der Buchse und dem ENC28J60 oder vielleicht den externen Unterstützungskomponenten für den ENC28J60 (z. B. Quarz, Kondensatoren, Widerstände) flockig ist.

Sie können mehr Diagnoseinformationen aus dem ENC28J60 über SPI erhalten, indem Sie die Statusregister lesen, und ich möchte Sie dazu ermutigen, dies zu tun und zu berichten, was Sie finden.

laut PHSTAT2: enc empfängt (RXSTAT=1) und sendet gleichzeitig (TXSTAT=1), daher kommt es zu einer Kollision (COLSTAT=1) Das übertragene Paket hat eine Größe von 8k, verstößt also gegen MAXFRMLEN = 1,5k und es gab einige Kollisionen
Problem gelöst: Nach der ENC-Initialisierung muss ich einige Zeit warten, bevor ich eine Empfangs-/Sendeoperation ausführe. Früher war es nicht erforderlich ... Störende PHSTAT2-Registerwerte werden durch Watchdog verursacht - meine Testschleife hat sie nicht zurückgesetzt und der PHSTAT2-Wert war tatsächlich mehrere Lesevorgänge, die sich überlappten.