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
> 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?
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...
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
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!
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!
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.
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"
@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.
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.
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...
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!
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
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.
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...
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
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... :-(
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 :-)
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
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
"
>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?
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.
@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 :-)
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.