mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik enc28j60 - Probleme


Autor: Sebastian Block (sebbel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Block (sebbel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco L. (lehmi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: pass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo sebbel,

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

danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.