Forum: Mikrocontroller und Digitale Elektronik AVR-NET-IO BOARD ENC28J60 Initialisierung Handhabung Verständnisfrage


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Geschätztes Forum,

leider ist der Programmcode des ATmega32 auf dem dem AVR-NET-IO-Board 
nicht veröffentlicht :-(

Nachdem ich den CPU-Takt von 16MHz auf 1MHz reduziert habe (Fuse Bits)
konnte das SPI-Protokoll mitschneiden.

Dieser SPI-Sniffer half mir dabei:
Beitrag "SPI Sniffer Analyser Beispiele Low Cost ATmega8 Assembler"

Nach einem Reset des ATmega32 wird vermutlich der ENC28J60 
initialisiert.

Auf was ist bei der Initialisierung zu achten, hat jemand einen Tipp ?


Ich vermute, daß nach der Initialisierung der ENC28J60 permanent 
abgefragt wird (polling), denn der INT-PIN des ENC28J60 bleibt 
regungslos.

Auf dem SPI-BUS herrscht reger Datenaustausch.


Danke


Bernhard

von Joachim B. (jar)


Lesenswert?

Bernhard S. schrieb:
> leider ist der Programmcode des ATmega32 auf dem dem AVR-NET-IO-Board
> nicht veröffentlicht :-(

weil auch ich den org. Code nicht bekam habe ich schnell auf den Code 
von Radig und Schnell gewechselt, sollte noch im Netz zu finden sein.

Der läuft nun schon Jahre auf meinem Webserver für die 
Zimmertemperaturen anzeigen. Der m32 wurde zu m1284p, die Linearregeler 
durch DC/DC Wandler Recom ersetzt.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Bernhard S. schrieb:

> leider ist der Programmcode des ATmega32 auf dem dem AVR-NET-IO-Board
> nicht veröffentlicht :-(

Die haben sich wahrscheinlich einfach geschämt, diesen Schrott im 
Quelltext zu veröffentlichen.

Nimm einfach ethersex. In der verfügbaren Form zwar auch nicht perfekt, 
aber es funktioniert (im Gegensatz zur Pollin-Firmware) wenigstens 
zuverlässig.

Und du hast den ganzen Kram im Quelltext. Natürlich einschliesslich der 
korrekten Initialisierung des ENC28J60.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Und so wird der ENC28J60 mit der Original-Software initialisiert,

die einzelnen Banken werden mit ECON1 umgeschaltet und anschließend die

Register gesetzt (in der EXCEL-Tabelle nur angedeutet).


>Nimm einfach ethersex.

Danke für den Tipp

von Bernhard S. (bernhard)



Lesenswert?

Die Register-Inhalte vor und nach der Initialisierung durch die 
Original-Software.

Würdet Ihr die Register anders setzen, erkennt jemand 
Unzulänglichkeiten?

von grundschüler (Gast)


Lesenswert?

Bernhard S. schrieb:
> Die Register-Inhalte vor und nach der Initialisierung durch die
> Original-Software.
>
> Würdet Ihr die Register anders setzen, erkennt jemand
> Unzulänglichkeiten?

Es gibt im Netz diverse Codes mit Initialisierungen für den enc -googeln 
nach enc28j60.h/c. Einige laufen nur mit Störungen - was dann zu 
Vermutungen wegen fehlender Abblockkondensatoren führt. Stabil läuft der 
Code von UR.

von Bernhard S. (bernhard)


Lesenswert?


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Die Registerinhalte nach einem Reset und nach der Initialsierung im 
Vergleich (mit PHY-Registern).

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

So könnten die einzelnen Datenpakete zwischen dem NetServer und dem
ENC28J60 aussehen.


Das ganze Spektakel beginnt mit ARP

(hatte vorher die interne Tabelle des PC mit "arp -d" gelöscht),

anschließend ICMP (Echo Request + Echo Reply),

gefolgt von TCP (SYN+ACK) und en einzelnen Nutzdaten.

von Jörg E. (jackfritt)


Lesenswert?

Nimm ethersex. Kannste sogar im Quellcode anschauen. Und es läuft auch 
bei mir störungsfrei..

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.