Forum: Mikrocontroller und Digitale Elektronik Webserver ENC28J60 + PIC18F4620


von Chris B. (chrisb20)


Lesenswert?

Hallo zusammen,

ich bin momentan auch dabei den ENC28J60 über SPI anzusprechen, ich 
verwende dafür einen PIC18F4620 mit einem 32MHz Quarz.

Allerdings klappt die Initialisierung des ENC noch nicht wirklich.
Hat eventuell jemand eine funktionsfähige Init für den ENC28J60 in C 
evtl. für einen PIC18?

Im Moment finde ich den Fehler in meiner Init nicht, ich vermute das ich 
evtl. noch Pausenzeiten einfügen muss. Im Datenblatt find ich aber 
nichts außer die Zeit für den Reset.

Gruß chrisb20

von Frank K. (fchk)


Lesenswert?

Warum nimmst Du nicht den 18F67J60? Da ist alles in einem Chip drin, 
ohne SPI in der Mitte.

fchk

von Chris B. (chrisb20)


Lesenswert?

Den hätte ich auch nehmen können, hab aber ein externes Ethernetmodul 
mit dem ENC drauf.
Nachdem ich so wie alle erst mal über die SPI Frequenz von 8MHZ 
gestolpert bin hab ich das jetzt mit einem 32MHz Quarz behoben.
Nur nimmt, so wie es momentan aussieht, der ENC die Werte die ich 
versuche in seine Register zu schreiben nicht an.

chrisb20

von Joachim .. (joachim_01)


Lesenswert?

Wenndse nch nen billichen Olimex Webserver mit 67J60 brauchs kommse zu 
mir. Hab zwei davon, einen kannich hergeben. Das Beispiel läuft sogar in 
Ajags.

von Theo (Gast)


Lesenswert?


von Chris B. (chrisb20)


Lesenswert?

@joachim: im Prinzip baut meine Hardware auf dem Schaltplan auf, nur 
mich interessiert es das selber zu programmieren, Fertige Module gibt es 
ja jede Menge.

@Theo: den Link kenn ich schon allerdings bringt mich das auch nicht 
weiter, den das ist ja erst der nächste Schritt mit dem TCP/IP zeugs 
aber im Moment klappt die Init noch nicht.

von Theo (Gast)


Lesenswert?

Der ENC arbeitet mit 3.3 Volt, Dein µC mit ??? Volt. Hast Du evtl. an 
die Levelshifter gedacht?

von Demel (Gast)


Lesenswert?

Theo schrieb:
> Der ENC arbeitet mit 3.3 Volt, Dein µC mit ??? Volt. Hast Du evtl. an
> die Levelshifter gedacht?

der ENC28J60 hat aber "5V Tolerant Inputs" laut Datenblatt

von Chris B. (chrisb20)


Lesenswert?

japp ich schreib mal schnell auf wie das ganze verbaut ist:


-----------
          |                             ---------------
          |--SCK------------------------|              |
 PIC      |                             |              |
 18f4620  |--SDI-------| 74HC08     |---| ENC28J60     |
          |--SDO-------| AND-GATTER |---|              |
          |                             |              |
          |--+5V------------------------|              |
          |--GND------------------------|              |
-----------                             ---------------|

von Chris B. (chrisb20)


Lesenswert?

da hat sich ein Fehler eingeschlichen der SDO des µController geht 
direkt auf den ENC28J60 nur der SDI kommt vom AND Gatter

von Frank K. (fchk)


Lesenswert?

Chris Br schrieb:
> Den hätte ich auch nehmen können, hab aber ein externes Ethernetmodul
> mit dem ENC drauf.

... das Du unbedingt nehmen wolltest.

Du wirst Dir das ohnehin nochmal überlegen müssen. Dein PIC18F4620 hat 
nämlich etwas wenig Flash. Die 128k des 18F67J60 sind bei mir schon ganz 
gut gefüllt. Wenn Du Dein Modul unbedingt verwenden musst, wäre ein 
18F47J13 oder 18F47J53 beispielsweise besser geeignet - das sind dann 
auch gleich stromsparende 3.3V-Typen (erkennbar an den J in der 
Bezeichnung).

Ansonsten folge meinem Rat, und Deine Probleme werden verschwinden.

fchk

von Theo (Gast)


Lesenswert?

> der ENC28J60 hat aber "5V Tolerant Inputs" laut Datenblatt

Der SO vom ENC muss aber einen ausreichenden Level für den SDI des µC 
bringen, deshalb muss da ein 74HCT... dazwischen, das "T" steht für 
TTL-Pegel.

von Chris B. (chrisb20)


Lesenswert?

ja wollte das Modul schon verwenden, wegen dem Flash hatte ich mir 
überlegt vllt ein EEPROM noch an den SPI Bus dran zu hängen um etwas 
mehr Speicher zu haben.

Hast du den ENC28J60 schon einmal mit einem Controller selbst 
programmiert oder nur mit dem Olimex Modul?

von Frank K. (fchk)


Lesenswert?

Chris Br schrieb:
> ja wollte das Modul schon verwenden, wegen dem Flash hatte ich mir
> überlegt vllt ein EEPROM noch an den SPI Bus dran zu hängen um etwas
> mehr Speicher zu haben.

Aus einem SPI-EEPROM kann kein PIC Code ausführen. Schon verloren.

> Hast du den ENC28J60 schon einmal mit einem Controller selbst
> programmiert oder nur mit dem Olimex Modul?

Ich habe immer integrierte Lösungen verwendet, weil die leistungsfähiger 
sind und das ganze in der Summe billiger ist. Und ich habe meine eigenen 
Boards gebaut.

fchk

von t0rX a. (t0rx78)


Lesenswert?

Es gibt eine Bibiliothek von Microchip für den ENC, hast du es mal mit 
der probiert?

von Theo (Gast)


Lesenswert?

schwingt denn der Quarz, das scheint ein häufiges Problem beim ENC28J60 
zu sein. Nimm ggf. einen Oszillator 
http://www.reichelt.de/index.html?;ARTICLE=101064

von Chris B. (chrisb20)


Lesenswert?

Theo schrieb:
> schwingt denn der Quarz, das scheint ein häufiges Problem beim ENC28J60
> zu sein. Nimm ggf. einen Oszillator
> http://www.reichelt.de/index.html?;ARTICLE=101064

ja der 32MHz Quarz schwingt das hab ich schon getestet

von Theo (Gast)


Lesenswert?

> hab ich das jetzt mit einem 32MHz Quarz behoben

Für den ENC ????? Der braucht 25 MHz!

von Chris B. (chrisb20)


Lesenswert?

Theo schrieb:
>> hab ich das jetzt mit einem 32MHz Quarz behoben
>
> Für den ENC ????? Der braucht 25 MHz!

Nein der ENC hat einen 25MHz und der PIC hat einen 32MHz Quarz 
angeschlossen

von Theo (Gast)


Lesenswert?

> Nein der ENC hat einen 25MHz und der PIC hat einen 32MHz Quarz
> angeschlossen

Das ist ok. Schwingt denn der Quarz vom ENC?

von Chris B. (chrisb20)


Lesenswert?

Theo schrieb:
>> Nein der ENC hat einen 25MHz und der PIC hat einen 32MHz Quarz
>> angeschlossen
>
> Das ist ok. Schwingt denn der Quarz vom ENC?

das kann ich leider nicht messen weil der auf dem Modul so blöd verbaut 
ist. Aber das sollte ich vllt auch mal noch prüfen.

von Theo (Gast)


Lesenswert?

Da gibt es extra einen CLKOUT-Pin, siehe Datenblatt Page 6

von Chris B. (chrisb20)


Lesenswert?

Theo schrieb:
> Da gibt es extra einen CLKOUT-Pin, siehe Datenblatt Page 6

habs grad gemessen der Quarz am ENC schwingt.

von Chris B. (chrisb20)


Lesenswert?

Ich hab jetzt gerade mal versucht den Quarz am PIC noch einmal zumessen 
und hab etwas komisches Festgesellt.

Wenn ich mit dem Oszi an den Quarz gehe dann gehen meine LEDs aus und 
auf dem Oszi ist auch kein Takten des Quarzes zu sehn sondern nur eine 
gleichspannung die aber von der höhe sehr gering ist.

Hat dazu jemand eine Idee, ist das ein Software- oder Hardwareproblem?

Gruß chrisb20

von Chris B. (chrisb20)


Lesenswert?

Chris Br schrieb:
> Ich hab jetzt gerade mal versucht den Quarz am PIC noch einmal zumessen
> und hab etwas komisches Festgesellt.
>
> Wenn ich mit dem Oszi an den Quarz gehe dann gehen meine LEDs aus und
> auf dem Oszi ist auch kein Takten des Quarzes zu sehn sondern nur eine
> gleichspannung die aber von der höhe sehr gering ist.
>
> Hat dazu jemand eine Idee, ist das ein Software- oder Hardwareproblem?
>
> Gruß chrisb20

hab den Fehler gefunden, da hatte sich ein Kabel gelöst gehabt und hatte 
daher keinen richtigen Kontakt

von Chris B. (chrisb20)


Lesenswert?

So wie es aussieht funktioniert die Übertragung über SPI nicht korrekt.
Den Clock kann ich zwar messen aber die Ausgabe der Daten nicht.

Kann es sein das nach der Übertragung des SSPBUF Registers ein Interrupt 
ausgelöst wird, welcher zuerst gelöscht werden muss damit ein weiteres 
Byte übertragen werden kann???

Hat zu diesem Problem jemand eine Antwort für mich?

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.