Forum: Mikrocontroller und Digitale Elektronik enc28j60 - Probleme


von Sebastian B. (sebbel)


Angehängte Dateien:

Lesenswert?

Hi,

da sich ja doch einige von Euch mit dem EthernetController von
Microchip beschäftigen hab ich mal ein paar Fragen an Euch.
Ich habe das im angehängten Schematic designte Board erstellt. Hab auch
Erfolge mit Lesen und Schreiben von Registern (auch die MAC).
Leider scheint beim Versenden bzw. Empfang von Daten irgendetwas schief
zu gehen. Denn am Hub sehe ich Busaktivität, jedoch kann ich sie mit
einem am Hub angeschlossen mittels Ethereal nicht sehen. Versendet
werden IP-Pakete (ARP und UDP - Beides als Broadcast).
Kann es an dieser Spule liegen, dass die versendeten Daten nicht
ankommen ?? (Was mich halt hier wundert, dass es am Hub blinkt, aber am
Laptop nix mehr ankommt).
Beim Empfang macht der Controller auch nicht mit.
Soweit ich es überblicken konnte sind die Register alle in Ordnung ..
jedoch wäre ich für etwas Code dankbar um etwas vergleichen zu können.

Ich hoffe Ihr könnt einem verzweifelten Programmierer helfen.

Grüße

Sebastian

von Ssss S. (sssssss)


Lesenswert?

Also die Pakete sollten auch bei dir ankommen.

Ich hab meinen code auch getestet während ich nur über einen switch
verbunden war.

Sende mal ein (leeres) Ethernetpaket mit zielmac 00:00:00:00:00:00
(source 12:34:56:78:9A:BC oder so)
00:.... = broadcast und sollte an alle gehen.
Zumindest unter Linux konnte ich damit gut mit ethereal testen.

Länge einfach irgendwas (200zb).
Aber aufpassen mit solchen testpaketen, manche Router schmieren dann ab
g

Achja, noch nen Tipp:
Zieh das ISP Kabel ab nachm proggen ! Mein Testaufbau läuft mit ISP
Kabel (nur widerstände am parport, ausserdem 5V)
nicht zuverlässig!
Der ENC "empfängt" dann zufälligen Kram (bzw das SPI auslesen geht
schief)

Bye, Simon

von Sebastian B. (sebbel)


Lesenswert?

ich hab das ganze auf meinem Arm7-Board realisiert..da hab ich solche
Probleme mit ISP gar nicht :)
Das mit dem leeren Ethernetpaket werde ich ausprobieren

von Achim (Gast)


Lesenswert?

Hallo

@Sebastian, ich kann bei dem Problem nicht helfen, da ich erst am
Anfang mit de  Eenc28j60 stehe. Ich möchte auch mal ein Board mit EAGLE
machen. Leider habe ich da auch noch nicht so viel Ahnung.
Es es unverschämt dich um die EAGLE Dateien für Dein Board zu bitten?
Wo bekommt man Librarys für EAGLE MAGJACKS her?

Vielen Dank für die Infos auch an Ssss ssssss (Sssssss)
Achim

von Sebastian B. (sebbel)


Lesenswert?

@Achim

Wird leider nix werden mit eagle, da ich durch die Uni an OrCAD
gebunden bin. Kann es Dir aber als Orcad-File zukommen lassen.
Die MAGJACK-Lib hab ich demnach auch selber erstellt.

von Achim (Gast)


Lesenswert?

Hallo

@Sebastian vielen Dang fürs Angebot, aber ich bin auf EAGLE beschränkt.
Trotzdem vielen Dank.
Nebenbei noch ne andere Frage zu den MagJacks und zwar
-SI 40000
-SI 40138
-SI 40141

so "richtige" Unterschiede kann ich da nicht feststellen. Gehen die
alle, oder sind welche auszuschließen. Das Problem ist ja immer, welche
man bekommt?

Vielen Dank
Achim

von Sebastian B. (sebbel)


Lesenswert?

Der 40000 hat keinen int. Übertrager, die 401xx schon.

Der Unterschied zwischen 138 und 141 ist, dass der 141 bipolare LEDs
hat (so gesehen dann 4 LEDs), wobei der 138 nur unipolare LEDs
hat->zwei LEDs

Gruss

Sebastian

von Sebastian B. (sebbel)


Lesenswert?

@ssss sssss

Ich hab probiert leere Pakete zu versenden .. leider ohne Erfolg.
Mir ist zusätzlich aufgefallen, wenn ich das Board an meinen Switch
anschliesse, dass dieser das Board nicht erkennt .. eine direkte
Verbindung mit dem Notebook oder meinem alten Hub ist jedoch möglich.

Hast Du vielleicht Code für mich, den ich mir mal ansehen könnte. Weil
bei Dir ja schon das Senden von Paketen funktioniert, wie ich aus dem
anderen Thread erfahren habe.

Gruß

Sebastian

von Ssss S. (sssssss)


Lesenswert?

Hast du mal Pakete mit ethereal mitgeschnitten ?
Poste mal einen Screenshot dann kann ich dir sagen was schiefgeht.

Hast du die enc leds mal auf LINK und ACT konfiguriert ?
> enc28j60PhyWrite(PHLCON, 0x0472); //RX+TX ACT + LINK

Dann zeigt die eine led den linkstatus und die andere rx+tx activity
an.

Ich vermute bei dir stimmt irgendwas mit der Verbindung nicht.
Der Switsch sollte eigentlich erkennen wenn der Chip connectet ist
:-\

Meine Software ist noch zu unaufgeräumt und durcheinander (muss mit nem
mega8 testen).

Ich würde als erstes mal ARP implementieren. Oder die aus der
procyon(?) avrlib nehmen (da wo auch enc28j60.c drinist)

Bye, Simon

von Sebastian B. (sebbel)


Lesenswert?

leider kommen ja keine Pakete an .. auf keiner der beiden Seiten .. der
Laptop empfängt nix. Ich kann Dir maximal meine Broadcasts vom Laptop
aus zeigen.
Vielleicht ist es ja doch noch nen Hardwarefehler..weil halt der Switch
es nicht erkennt.
Die LEDs hab ich so konfiguriert .. die LED blinkt auf, wenn ich Pakete
sende, aber am Laptop blinkt nix und kommt auch nix in Ethereal an.
Anderes herum das selbe ...
Wenn ich den Chip aus dem Reset ohne Software betreibe blinkt jedoch
manchmal (leider konnte ich dieses Verhalten nicht bei jedem Reset
feststellen), wenn ich vom Laptop Pakete sende.

Habe mich bei der Implementierung der Software an die avrlib gehalten
.. nur halt an den LPC2214 angepasst.

Gruss

Sebastian

von Ssss S. (sssssss)


Lesenswert?

Hmm ok hört sich nach hw fehler an...

Hast du mal einen Schaltplan wie du es verdrahtet hast ?
Wie wird er per spi angesteuert ?
hängt er alleine am SPI ?

Was für ein kabel nimmst du ? (switch<--normal--->enc /
pc<---gekreuzt--->enc)

Kannst du die Statusregs auslesen ?
printf("RevID: 0x%x\r\n", enc28j60Read(EREVID));
zb...
Setzt du eine macadresse ?

BYe, Simon

von Sebastian B. (sebbel)


Lesenswert?

Kabel so wie Du es beschrieben hast (ist ja klar)

Bei der Verdratung zwischen ARM7 und ENC denke ich keine Fehler gemacht
zu haben, da ich die Register gut auslesen und schreiben kann.
Der Schaltplan von Controller ist in meinem ersten Beitrag.
>Wie wird er per spi angesteuert ?
Wie meinst Du das ?? Im Arm sind zwei Hardware-SPI enthalten, den einen
nutze ich für eine SD/MMC-Karte und den anderen für den ENC. Dabei hat
jeder seinen eigenen SPI-Controller und eigenes ChipSelect.

MAC-Register lassen sich schreiben und wieder auslesen.
Meine RevId ist 4..den Rest kann ich Dir erst später sagen, da ich
gerade nicht zu Hause bin.

Sollte aber auch noch ein paar Chips mit RevID 2 da haben, da diese
noch vom Januar sind.

Danke für Deine Hilfe

von Ssss S. (sssssss)


Lesenswert?

Hi!

Hmm hab jetzt mal deinen Schaltplan mit meinem verglichen.
Prüf mal nach ob deine Magjack lib stimmt.
Ich hab ja nen einzelnen Übertragen und einzelne Buchse genommen
(wie in der microchip appnote).
Nicht dass du da nen dreher drin hast.

Meine LEDA/LEDB gehen beide gegen masse.

Meine Chiprevision ist Rev2.

Wie schnell ist dein SPI ?

Also wenn du mac schreiben und lesen kannst sollte das ja eigentlich
klappen.
Ich würd jetzt mal die Hardware enc<-->ethernet checken.

Bye, Simon

von Sebastian B. (sebbel)


Lesenswert?

Hi,

ich danke Dir nochmal ganz doll .. hab es gerade hinbekommen, dass der
Chip läuft und ich auch Daten empfange.

Ich hab ein Leitungsproblem bei dem Quarz gehabt. Der normale
Durchganzmessungstest zeigt zwar alles ok an, aber am Digitaloszi sieht
man dann, dass der Chip nur CLK bekommt, wenn man drauf drückt (mit dem
Finger reicht schon)

Na ja .. werde ne neue Platine machen und darauf achten, dass die
Leiterzüge dort etwas breiter werden, damit sie nicht wieder brechen.

Gruß

Sebastian

von Sebastian B. (sebbel)


Lesenswert?

ich möchte diesen Thread nutzen um noch mitzuteilen, dass es den
Kondensatoren am Quarz liegt, ob der Chip richtig genutzt werden kann
(Senden und Empfangen) oder man nur die Register schreiben kann, aber
die Pakete nie ankommen bzw. abgeschickt werden.
Ich hatte zuerst 22p - Kondensatoren, danach 15p .. beide jedoch ohne
Erfolg.
Habe danach den kleinsten Kondensator eingelötet, der verfügbar war mit
2,2p. Damit funktioniert es nun. Jedoch kann man den Kondensator bei der
Größe auch weglassen, wie sich herausgestellt hat.

Gruss

Sebastian

von Marco L. (lehmi)


Angehängte Dateien:

Lesenswert?

Guten morgen, ich versuche mich auch gerade mit einem AT91Sam7s256 und 
dem enc28j60 für das Beitrag "ARM MP3/AAC Player Web Radio" 
Projekt. Leider will der enc aber nicht so, wie ich will. Ich hab 
verschiedene SPI Varianten ausprobiert ( 8bit, 16bit, cpol,csaat) aber 
die Kommunikation klappt mit 8 bit garnicht und mit 16 bit Transfer kann 
ich zwar kommunizieren, aber die Ergebnisse sind unbrauchbar...
Verschiedene Frequenzen habe ich probiert, aber zwischen 25MHz-1MHz 
bekomme ich immer die selben Ergebnisse. Daher habe ich mal meinen 
SourceCode angehängt, vielleicht kann mal jemand einen Blick drauf 
werfen und den (Denk-)Fehler finden.

Grüße
lehmi

von pass (Gast)


Lesenswert?

Hallo sebbel,

kannst du bitte die orcad-lib für enc2bj60 und magjacks hochladen.

danke

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.