ENC28J60 Ethernet chip will nicht empfangen

T

Tobias Wegner

Guest
Hallo Zusammen!

Ich entwickele gerade eine Firmware für den ENC28J60 von Microchip und
soweit schaut auch alles ganz gut aus, Zugriff auf Register, Senden von
Paketen, die Leds zeigen Activity und Link; Das einzige Problem, dass
ich noch habe ist, dass ich keine Packete empfangen kann. Soweit ich das
sehe, habe ich dazu alle Bits richtig gesetzt. Kann es ein eletronisches
Problem sein? Woran erkennt ein Teilnehmer am Ethernet, dass er eine
Verbindung hat und dass gerade Packete reinkommen? Wenn die Link Led an
ist und die Activity Led bei Broadcasts leuchete, bedeutet dass dann,
dass wirklich Packete empfangen werden, oder nur irgendein Carrier
erkannt wurde? Diese Frage würde meine Fehlersuche eventuell
einschränken, aber ich habe da wohl zu wenig Wissen über die
physikalische Ebene. Hat da vielleicht schon jemand ähnliche Probleme
gehabt oder Erfahrungen mit dem ENC gesammelt?

Schönen Abend noch,
Tobias Wegner


--
Tobias Wegner

E-Mail spam (at) novagate (dot) de
WWW http://www.tobiaswegner.de/ (under construction)
 
Hallo,

Tobias Wegner <spam@novagate.de> wrote:

(ich habe zwar noch nichts mit dem ENC28J60 entwickelt, nur mal vor einiger
Zeit dessen Datenblatt ueberflogen, aber ich versuch mal die Fragen zu
beantworten).

Problem sein? Woran erkennt ein Teilnehmer am Ethernet, dass er eine
Verbindung hat und dass gerade Packete reinkommen? Wenn die Link Led an
Ethernet ist Paketorientiert, da gibt es keine "Verbindungen" in dem
Sinn. Das einzige was mit Verbindung zu tun hat, ist, dass beide Seiten
das Ergebnis der Auto-Negotiation speichern und verwenden.
Einen "Link" erkennt eine Station dadurch, dass sie Link-Pulses
empfaengt. Freundlicherweise sendet sie auch Link-Pulses in die
Leitung, so dass das andere Ende der Leitung die gleiche Moeglichkeit
hat. Die Pakete erkennt die Station an dem Gezappel auf der Leitung ;)
bzw. einer gueltigen Praeambel, auf die sie sich synchronisieren kann.

ist und die Activity Led bei Broadcasts leuchete, bedeutet dass dann,
dass wirklich Packete empfangen werden, oder nur irgendein Carrier
erkannt wurde? Diese Frage würde meine Fehlersuche eventuell
Das bedeutet dass er was empfaengt (Pakete), aber moeglicherweise
sind die Pakete schadhaft (Checksumme falsch) so dass der MAC
den Puffer gleich nach Empfang wieder freigibt und so tut als
haette er was empfangen, aber in irgendnem Statusregister sollte
sich sowas schon niederschlagen. Broadcasts sind ansonsten auch
Pakete, die er im Speicher ablegen sollte. Schalte das Teil
fuer erste mal in den Promiscuous Mode, das schaltet den
MAC-Address-Filter aus, der die Pakete boshafterweise ausfiltern
koennte (aber nicht Broadcasts).


Gruss,

Steffen
 
Ich entwickele gerade eine Firmware für den ENC28J60 von Microchip und
soweit schaut auch alles ganz gut aus, Zugriff auf Register, Senden von
Mit welcher SPI Frequenz beschreibst Du denn die Register? Es gibt zum
ENC28J60 ein Errata Sheet
http://ww1.microchip.com/downloads/en/devicedoc/80254b.pdf
in dem darauf hingewiesen wird das die Register für
den MAC nur mit SPI-Clock Frequenzen höher als 8MHz beschrieben werden
können:

Zitat aus dem Errata-Sheet:

....When the SPI clock from the host microcontroller
is run at frequencies of less than 8 MHz,
writing to the MAC registers may be unreliable.
Work around
Run SPI at frequencies of at least 8 MHz,
the same clock source for both ENC28J60
host controller for synchronization. ...

Vielleicht liegt hier das Problem?

Ich wollte auch mal ein Projekt mit dem ENC28J60 starten habe dann aber
alles
wegen der zu hohen SPI-Clock verworfen.

Gruß,

Artur
 
Morgen Zusammen!

Erstmal vielen Dank an Steffen und Artur für ihre Antworten, auch wenn
der Fehler woanders lag! Das Errata hatte ich natürlich schon gelesen
und deswegen extra einen PIC mit 40Mhz genommen. Die Filter hatte ich
auch schon alle deaktiviert, was ich jedoch nicht bemerkt hatte ist,
dass man zum Empfangen zwei Bits in verschiedenen Registern setzen muss
(MACON1 & ECON1) wobei man ersteres nicht mit dem Bit Field Set Befehl
beschreiben kann, weil es ein MAC Register ist. Das hatte ich leider
übersehen. *schäm* Jetzt funktioniert es zum Glück!

Viele Grüße und ein schönes Wochenende,
Tobias Wegner

--
Tobias Wegner

E-Mail spam (at) novagate (dot) de
WWW http://www.tobiaswegner.de/ (under construction)
 

Welcome to EDABoard.com

Sponsor

Back
Top