Forum: Mikrocontroller und Digitale Elektronik mal wieder ein ENC28J60 Problem bitte um Hilfe


von Christian (Gast)


Lesenswert?

Hallo allerseits!

Ich habe ein seltsames Problem mit dem ENC28J60 Rev.4

Aktueller Stand:
µC funktioniert, SPI funktioniert auch tadellos.
Die MAC adressen werden in den ENC korrekt geschrieben, und auslesen
kann ich sie auch.
Den Linkstatus bekommt meine software auch mit.

Die ENC beschaltung ist die standard minimal beschaltung mit RBIAS 2,7 K
und MAG Jack SI-60024-F.
Einziger Unterschied bei mir ist, dass ich jeweils 2x 100R 1% parralel 
geschalten hab um auf die 50R zu kommen.

Mein Problem liegt darin, dass wenn der µC daten sendet bricht meine 
link Verbindung ab und baut sich danach wieder auf, bis zum nächsten 
sender der Daten.
(Ich lasse hier in einer bestimmten zeit einen UDP Broadcast ins netz 
senden)
Es macht keinen Unterschied ob ich per Switch an LAN oder per Kabel am 
Rechner verbunden bin.

Daten empfängt der µC auch nicht, es geht also kein Ping!

Bin über die Boardsuche auf die Kondensatoren am 25 MHz Quarz gestossen, 
die werde ich heute abend mal entfernen und testen, aber gibt es noch 
eine andere möglichkeit für diesen Fehler?

Bin für alle Ratschläge Dankbar, ich weiss nämlich nimmer weiter....

mfg Christian

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Die ENC beschaltung ist die standard minimal beschaltung
Wie aufgebaut? Lochraster, Steckbrett oder Platine?

> Mein Problem liegt darin, dass wenn der µC daten sendet bricht meine
> link Verbindung ab und baut sich danach wieder auf, bis zum nächsten
> sender der Daten.
Wie ist die Versorgung entkoppelt?
Wie ist die Leitungsführung der Signalleitungen?

von Christian (Gast)


Lesenswert?

Hallo Lothar,

den Aufbau habe ich auf Lochraster gemacht. (Netzwerkkarte)
den Controller habe ich auf einen Bread Board mit der ENC
Platine verbunden. Alle nötigen Pins des ENC zum µC habe ich auf 
Stiftleisten geführt.
Der ENC ist mit pin 14/15 ca. 3 Raster vom Mag Jack entfernt, um die
RX/TX Leitungen möglichst kurz zu halten.
Ich habe alle Referenzspannungen des ENC mit 100nF gegen GND entkoppelt.
Die ENC Spannungsversorgung regelt ein 5V -> 3,3V Festspannungsregler 
auf der Netzwerkkarte. Sekundärseitig ist der Festspannungsregler mit 
10nF und 33 µF entkoppelt.
Die 5V Versorgung wird auch über einen Festsapannungsregler erzeugt.
Ich denke von der Spannung her sollte es keine Probleme geben.

Was ich mir noch so überlegt habe, ich benutze einen PIC 18F252 
Controller mit dem Microchip TCP/IP Stack.
Den Broadcast den ich sende, macht ein Beispielprogramm von Microchip 
(Announce.c) bei diesem Programm wird der Broadcast über eine besondere 
Adresse gesendet (Hab sie nicht im Kopf) Im Quellcode heisst es aber, 
dass manche Switche diesen Broadcast nicht weiterleiten.
Nun meine Überlegung: Kann es sein dass in diesem Fall der Switch oder 
auch der PC den Link unterbricht???

Denn wenn ich das Board mit DHCP betreibe, blinkt die TX LED (DHCP 
anfordung) und der Link wird nicht unterbrochen?!

Allerdings bleibt hier dann noch die Frage offen, wieso ich keine Daten 
übertragen kann...

von Christian (Gast)


Lesenswert?

Hallo!

Nachdem ich die Kondensatoren am Quarz entfernt habe,
hat sich leider nichts geändert!
Hat noch jemand irgendeine Idee woran es liegen könnte?

von ENC Nutzer (Gast)


Lesenswert?

Hi,
Versuch mal Folgendes:
1.
SPI Takt heruntersetzen auf
bspw. 2MHz. Damit koennte man Probleme im elektronik-Aufbau eingrenzen.

2.
Steck den ENC und deinen PC mal an einen HUB (keinen Switch!!!) und sieh 
dir am PC mit Wireshark an was da passiert. Wenn du per DHCP eine 
Adresse bekommst, funktioniert die Uebertragung grundsaetzlich und du 
solltest dein announce.c unter die Lupe nehmen.

Viel Erfolg

von Christian (Gast)


Lesenswert?

Hallo ENC Nutzer :-)

SPI Takt heruntersetzen ist in meiner Konfig "fast" nicht möglich
da ENC und µC über jeweils einen Quarz verfügen und der ENC Rev.B4
nur mit SPI Frequenzen ab 8 MHz funktioniert.

Ich habe den PC und den ENC schon mit Crossover Kabel verbunden, 
gleicher effekt, beim Senden von Daten bricht der Link ab und wird in 
der "sendepause" wieder aufgebaut.
Wireshark zeigt keine daten an! Nur die sachen die mein PC ins netz 
sendet!

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Schau dir mal am Scope deine VCC am ENx an. Eventuell bricht die beim 
Senden zu stark ein.


Gruß -
Abdul

von Christian (Gast)


Lesenswert?

Hallo Abdul,

Danke für den Tipp, ich hatte auch schon sowas im sinn, bin dann von 
einem
300 mA auf ein 500mA Netzteil gewechselt, leider der gleiche effekt.
Werde es aber trotzdem mal mit dem Scope ansehen und testen.

Allerdings wenn hierbei die Spannung soweit einbrechen würde, dass der 
ENC die Verbindung killt, (ich nehme an, der ENC mach dann einen Reset) 
dann müssten doch auch die Register von ENC gelöscht sein, denn diese 
Register bleiben erhalten, also die MAC Adresse steht nach wie vor in 
den MAC registern!

von ENC-Nutzer (Gast)


Lesenswert?

oder prüf mal die Flankensteilheit. Ich hatte das Problem, dass die
Flanken bei den erforderlichen 8MHz nicht sauber waren. Nachdem ich auf 
die kleinstmöglichen Pullup Widerstände an den SPI Leitungen gewechselt 
habe, ging es.

In dem B4 Errata stand auch was von Link Detection Problemen, wenn man 
Dioden verwendet, glaube ich mich zu erinnern.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich habe alle Referenzspannungen des ENC mit 100nF gegen GND entkoppelt.
Die Versorgung auch?

von eProfi (Gast)


Lesenswert?

Hast Du die Polarität der Signale beachtet?
Es gibt auch ein Erratum, dass der ENC verpolte Signale nicht erkennt 
(obwohl es im Datenblatt behauptpt wird).

Evtl. in Reihe mit den beiden Daten- und Clock-Signalen einen kleinen 
(niederinduktiven) R (10-47 Ohm) gegen das Ringing.

Wie ist denn das PHLCON-Register beschrieben?
Beitrag "ENC28J60 correct value of PHLCON and mirrored registers"

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

@ENC-Nutzer
Ich habe keine Pullups an den SPI Leitungen, nur einen 74HCT125 als 3,3 
-> 5 V Pegelwandler an der DO Leitung des ENC.
Dioden Verwende ich auch keine ich nutze einen 5V -> 3,3 V LM3940 - T 
Festspannungsregler.

Habe gerade auch mal die Spannung gemessen, die ist stabil bei 3,25 V 
Stromaufnahme 133mA und beim Senden sind es ca. 144 mA also von daher 
keine Probleme.

@Lothar
Die Versorgungsspannung ist auch mit 100 nF enkoppelt!

@eProfi
Das mit der Polarität ist mir auch in den Sinn gekommen, ich nutze einen 
MagJack SI-60062-F. Ich habe mir zich mal das Datenblatt dazu angesehen,
so wie ich es verstanden habe sind unbenützte Pins des MagJack entfernt. 
Wenn das so ist, dann sollte P7 am Mag Jack nicht vorhanden sein, so ist 
es auch bei mir, von daher gehe ich mal davon aus, dass ich den 
richtigen P1 am MagJack identifiziert habe, und dann müsste auch meine 
Polarität passen. Da ich aber nicht mehr weiter weiss, werde ich gleich 
nochmal den Lötkolben anwerfen und testhalber die Leitungen tauschen.


>Evtl. in Reihe mit den beiden Daten- und Clock-Signalen einen kleinen
>(niederinduktiven) R (10-47 Ohm) gegen das Ringing.

das sagt mir jetzt ehrlich nichts :-)

Zum PHLCON Register, hier habe ich mal einen Register Dump als Bild 
angefügt.
Ich muss zugeben dass ich diese sache nicht überprüft habe, da ich den 
Microchip TCP/IP Stack verwende und hierbei schon Errata Fixes mit 
berücksichtigt werden.

von Christian (Gast)


Lesenswert?

Nachtrag:
RX/TX Polaritätstausch -> Keine änderung..... :-(

von eProfi (Gast)


Lesenswert?

PHLCON 0472 ist schon mal falsch, die missachten ihre eigenen 
Datenblätter (darüber steht nicht in den Errata). Die 0 muss eine 3 
sein.


"Ich habe keine Pullups an den SPI Leitungen, nur einen 74HCT125 als 3,3
-> 5 V Pegelwandler an der DO Leitung des ENC."
Würde ich anders machen:
3V Ausgang direkt oder mit 47 Ohm in einen 5V-Eingang.
5V-Ausgang über ausreichend hohen R (470 Ohm) in einen 3V-Eingang, evtl. 
eine Schottky-Diode nach +3V zum Clampen.


"Evtl. in Reihe mit den beiden Daten- und Clock-Signalen einen kleinen
(niederinduktiven) R (10-47 Ohm) gegen das Ringing."

Einfach statt einer Leitung einen Widerstand (47 .. 270 Ohm) verwenden. 
Das begrenzt den Strom und damit zu steile Flanken.

von Christian (Gast)


Lesenswert?

Hab auch gerade mal das Datenblatt gelesen und das
PHLCON 0472 in  3472 geändert damit die Bits 15/14/13/12 -> 0011 sind 
.-)
Aber ich denke das wirkt sich nicht auf die funktion des ENC aus, denn 
dieses register wirkt ja nur auf die Statusanzeige der LED's, 
möglicherweise macht das Probleme wenn man über LEDB die duplex Auswahl 
macht.

>3V Ausgang direkt oder mit 47 Ohm in einen 5V-Eingang.
>5V-Ausgang über ausreichend hohen R (470 Ohm) in einen 3V-Eingang, evtl.
>eine Schottky-Diode nach +3V zum Clampen.

Problem ist nur mein µC läuft ja mit 5 V und die SPI Pins sind Schmitt 
Trigger inputs! 5V * 0,8 = 4V wird noch als high Pegel erkannt das ist 
mit etwas zu unsicher.
Wie auch immer, SPI geht ja.. .-)

>Einfach statt einer Leitung einen Widerstand (47 .. 270 Ohm) verwenden.
>Das begrenzt den Strom und damit zu steile Flanken.

Wenn ich das richtig verstanden habe, meinst du die +3,3V anbindung auf 
die 50R Widerstände der TX+/- leitungen von µC zum ENC28J60. Anstatt der 
L1?
JA, das probier ich mal...

von Christian (Gast)


Lesenswert?

Hmmm....
Ich habe jetzt einen 47 R eingebaut anstatt des Ferrit.
Beim senden bleibt jetzt der Link bestehen! Schon mal ein Fortschritt.
allerdings bekomme ich jetzt nur noch einen Link mit meinem Laptop über 
ein 2 m Patchkabel. Mit meinem Switch ca. 30 m Kabel nicht mehr!

Ich muss dazu sagen, dass ich diese L1 die angegeben ist durch einem 
kleinen Ferrit Kern ersetzt habe durch den ich CU Lack Draht ein paar 
mal gewickelt hab. Hab mir dabei nicht viel gedacht, da ja oft angegeben 
wird man kann auch eine Drahtbrücke verwenden!
Wenn ich allerdings den 47R brücke, bekomme ich gar keinen link mehr!
Ich versuche mal einen 100R ma sehn wie es da aussieht!

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Eventuell hat die Ferritkernspule bereits die Sättigunggrenze erreicht? 
Dann wäre sie praktisch bis auf ihren DCR nicht mehr existent. Ein 
Ringkern(?) ist ganz schnell in der Sättigung. Störungen gehen also voll 
durch!

So wie du es schilderst, hast du einen echt miesen Störabstand in deiner 
Schaltung. Komisch. Mein 100MBit-Ethernet mit 91C100 von SMSC lief auf 
Anhieb.
Pappe mal einen großen Tantal hinter die Drossel.

Der 25MHz Oszillator muß auch absolut stabil laufen. Ethernet ist da 
pingelig.

Scope Scope Scope!!!!


Gruß -
Abdul

von Christian (Gast)


Lesenswert?

Habe jetzt mal eine 10µH Spule eingebaut (Reichelt: SMCC 10µ) gleicher 
effekt wie vorher, Link bricht wieder ab bein senden von Daten und ein 
link zum Switch geht gar nicht....

@Abdul
nach der spule habe ich einen 10nF Tantal gegen GND!
Meinst du ich soll mal lieber auf 100 nF gehen...?

Oder haben die Störungen doch was mit meinem Parallelen 100R zu tun?
Ich habe ja jeweils 100R 1% Widerstände Parallel geschaltet um die 50R 
zu erreichen mit denen die RX/TX Leitungen abgeschlossen werden.

von Christian (Gast)


Lesenswert?

Ah ja,
wegen Scope und dem Quarz.
Ich hab nur ein altes Hameg Scope das is bei 25 MHz schon an seinen 
Grenzen!
Ich seh da leider nur noch grad die Schwingungen vom Quarz, f=1/T brauch 
ich da gar nicht anfangen :-) Da is die Auflösung (wenn man von 
Auflösung sprechen kann) viel zu gering...

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Die Reichelt-Drossel sollte es nach ihren Daten tun. Du hast wirklich 
10nF Tantals? Kann man die überhaupt noch kaufen? Oder meinst du 10uF? 
Das wäre ok. Dazu brauchts parallel noch ca. 100nF Keramik-C.

Daß du keinen Link mehr kriegst, wenn du Ersatzwiderstand für die 
Drossel brückst, gibt mir allerdings zu denken. Was hängt alles noch an 
VCC auf der Platine? Stört da vielleicht irgendwas tierisch, z.B. ein 
MAXIM RS232-Transceiver? Gibt da ganz schlimme Finger, die mir auch 
schon mal ein paar graue Haare brachten.

Dein Trick mit zweimal 100 Ohm gleich 50 Ohm ist völlig in Ordnung und 
ich erinnere mich gelesen zu haben, das ein Ethernet-Hersteller das 
sogar in einer AppNote so stehen hatte.


Mach mal ein Foto deines Aufbaus. Die Leitungsführung wäre interessant. 
Ich habe mit dem ENx leider keine Erfahrung und kann daher nur 
allgemeine Entstörtipps geben.

Dein Scope taugt leider nicht für deine Problemstellung.

Du könntest einen integrierten 25MHz-Oszillator besorgen und mal 
ersatzweise anschließen.


Gruß -
Abdul

von Christian (Gast)


Lesenswert?

Hallo Abdul,

wegen der genauen Kondensator Bezeichnung schaue ich heute Nachmittag 
nochmal, dann folgen auch bilder!
Einen MAX3232 habe ich auch auf meinem Aufbau, allerdings zimlich weit 
weg, von der ENC Platine!
Weiter habe ich nur noch einen PIC18F252, und einen 74HCT125 und halt 
den MAX3232 an der Betriebsspannung, weiter nix...
Ich wüsste nicht was da stören könnte.

Ich habe noch einen 25 MHz Quarz Oszillator hier, der hat allerdings 
eine Betriebsspannung von 5 V, ich denke das wird nix mit dem 3,3V ENC, 
oder kann ich den bedenkenlos anschliessen, ich denke mich aber zu 
erinnern, dass nur die SPI Leitungen des ENC 5 V tollerant sind... :-(

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, da bin ich wieder!

Es tut sich was!!!!
Ich kanns nicht erklären hab das Board aktiviert und spasshalber einen 
Ping gemacht, und auf einmal, eine Antwort!
Der Wahnsinn!

AAAber:
Leider nur wenn ich mit dem 2m Patchkabel direkt mit dem Notebook 
verbunden bin, über meinen Switch im Keller bekomme ich keinen Link 
mehr!
Bin mir auf jeden fall sicher, dass es an meinem aufbau liegt :-(
Abnbei mal wie Bilder!
Die Kondensatoren an den 50R Widerständen sind 10N von Reichelt: KERKO 
10N
Die kleinen Kondensatoren vor und nach dem Festspannungsregler sind 100N 
(Reichelt: Z5U-5 100N) und die anderen sind Folienkondensatoren 100N an 
den Referenzspannungen.

Ich hoffe jemand hat jetzt den richtigen Tipp für mich :-)

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

von unten...

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

und das Bread Board...

von Christian (Gast)


Lesenswert?

Okay, Fehler gefunden
Mangelhaftes Patchkabel, mit nem anderen bekomm ich nen Link auch mit 
dem Switch im Keller!!!
Es ist Vollbracht!
Vielen Dank an alle die sich die Mühe gemacht haben mir zu helfen!

Ich denke das Hauptproblem was die Spule L1 um es mal auf den Punkt zu 
bringen.

Aber für verbesserungs Vorschläge bin ich offen!!
Falls meine Bauteilwahl nicht gerade die beste ist!

Christian

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Gratulation! Mal wieder die Kabel. Den Schrott aus China kann man 
sowieso nicht trauen!

Warum sollte L1 das Kernproblem sein???? Ich glaube daran werden wir 
noch arbeiten müssen.

Dein Aufbau sieht auf den ersten Blick ok aus, die Bauelementewahl 
soweit auch. Auch wenn Z5U nicht so der Kracher ist, für Ethernet wirds 
reichen.



Und jetzt kommen wir zu meinen Lieblingsfeind:
Der MAX3232 ist einer dieser ganz heftigen Störer. Die interne 
Ladungspumpe ist extrem niederohmig und wenn die schaltet, gibts 
heftigste Schaltspitzen!!
Das Dumme dabei ist nun, das das Teil nur selten mal an geht und dann 
wieder totenstill wird. Wenn in der restlichen Schaltung die 
Integrationszeit für Datensignale signifikant kleiner ist als diese 
unregelmäßig Störung, dann tritt kein Fehler auf bzw. dieser wird von 
der eventuell vorhandenen Fehlerkorrektur gebügelt. Ist diese Zeit 
jedoch größer, dann hast du eine Verminderung des Störabstandes!!

Daher mein Rat an dich als offensichtlichen Nichtprofi: Schmeiß den 
MAX3232 raus und ersetze ihn durch einen Standard MAX232. Die sind 
wesentlich schwächer und machen nicht so die Mucken.

Erschwerend für die Fehlersuche ist noch diese Sache:
Der MAX3232 arbeit je nach Belastung seiner RS232-Ausgänge periodisch 
unregelmäßig. Wenn du den Stecker der RS232 abziehst, wird er relativ 
ruhig. Bei Belastung seiner Ausgänge pumpt er öfter...

Zumindest solltest du ihn ordentlich entkoppeln. Eine Drossel mit 5mH 
oder so ist angebracht. Für empfindliche Funksignale würde ich ihn 
dringend rausdesignen. OK, ist ja nur Ethernet hier.


Zum Oszillator: Den kannst du DC-frei über einen Kondi mit 
Serienwiderstand aus der 5V-Ebene in die 3,3V-Ebene koppeln.


Gruß -
Abdul

von eProfi (Gast)


Lesenswert?

"
>Einfach statt einer Leitung einen Widerstand (47 .. 270 Ohm) verwenden.
>Das begrenzt den Strom und damit zu steile Flanken.

Wenn ich das richtig verstanden habe, meinst du die +3,3V anbindung auf
die 50R Widerstände der TX+/- leitungen von µC zum ENC28J60. Anstatt der
L1?
JA, das probier ich mal..."


Nein, ich dachte an die SPI-Leitungen.

Ich freue mich, dass es endlich klappt.
Hast Du das Kabel mal mit anderen Geräten getestet?

von (prx) A. K. (prx)


Lesenswert?

Am Aufbau suboptimal: die Kondensatoren. Die betreffenden Pins vom ENC 
liegen nicht zufällig mehr oder minder dicht nebeneinander. Genau 
dazwischen gehören die Cs. Kerkos sind kleiner als Folientypen und 
passen deshalb besser. Optimal wenn diese Pins direkt benachbart sind: 
SMD Kerkos unten direkt dazwischen löten.

Wenn man das nicht mag: Kerkos kann man oft ganz gut innerhalb der 
Fassung unterbringen. Da sind sie dicht dran und niemandem im Weg.

Masse aussenrum sieht zwar sehr elegant aus, maximiert aber die Weglänge 
und damit die dabei höchst unerwünschte Induktivität. Mittendrin ist 
besser.

von Christian (Gast)


Lesenswert?

@eProfi
Ok, war ein Missverständniss, aber dadurch bin ich erst drauf gekommen 
dass irgendwas nicht mit der +3,3V anbindung an die TX leitungen gepasst 
hat :-(
Sonst würde ich wohl jetzt noch suchen...
Hab ich mal das PHLCON wieder auf 0472 gesetzt, hat aber keinen Einfluss 
auf die Funktion. Der richtigkeit halber inititlisiere ich es aber mit 
3472 :-)

Ja das Kabel habe ich eigentlich immer am Notebook, da funktioniert es 
einwandfrei! Deswegen bin ich da erst gar nicht drauf gekommen...

@A.K.
Jepp werde ich bein nächsten Aufbau beachten.
Ich habe mir deswegen nicht viele gedanken gemacht, da ich diverse 
Schaltungen im netz gefunden hab, bei denen diese C's an den 
Referenzspannungen einfach alle Parallel geschalten werden, und danach 
wird erst die Spannung an den Pins durchgebrückt.
Meinen nächsten Aufbau wollte ich sowiso ätzen, da hat sich die sache 
mit der Masse dann auch erledigt :-)

von (prx) A. K. (prx)


Lesenswert?

Christian wrote:

> Schaltungen im netz gefunden hab, bei denen diese C's an den
> Referenzspannungen einfach alle Parallel geschalten werden, und danach
> wird erst die Spannung an den Pins durchgebrückt.

Sind wohl eher Versorgungsspannungen verschiedener Teile des ICs als 
Referenzspannungen. Zumal der ENC ein ziemlicher Schluckspecht ist, 
braucht er doch immerhin 3-4mal so viel Strom wie eine uralte 
ISA-Ethernet-Karte.

Im Schaltbild ist es übrigens normal, dass die Cs sich an einer Stelle 
vom Bild regelrecht stapeln. Mit dem Layout hat das aber nichts zu tun, 
das ist nur eine grafische Vereinfachung.

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.