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
Warum nimmst Du nicht den 18F67J60? Da ist alles in einem Chip drin, ohne SPI in der Mitte. fchk
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
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.
@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.
Der ENC arbeitet mit 3.3 Volt, Dein µC mit ??? Volt. Hast Du evtl. an die Levelshifter gedacht?
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
japp ich schreib mal schnell auf wie das ganze verbaut ist: ----------- | --------------- |--SCK------------------------| | PIC | | | 18f4620 |--SDI-------| 74HC08 |---| ENC28J60 | |--SDO-------| AND-GATTER |---| | | | | |--+5V------------------------| | |--GND------------------------| | ----------- ---------------|
da hat sich ein Fehler eingeschlichen der SDO des µController geht direkt auf den ENC28J60 nur der SDI kommt vom AND Gatter
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
> 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.
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?
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
Es gibt eine Bibiliothek von Microchip für den ENC, hast du es mal mit der probiert?
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
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
> hab ich das jetzt mit einem 32MHz Quarz behoben
Für den ENC ????? Der braucht 25 MHz!
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
> Nein der ENC hat einen 25MHz und der PIC hat einen 32MHz Quarz > angeschlossen Das ist ok. Schwingt denn der Quarz vom ENC?
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.
Theo schrieb: > Da gibt es extra einen CLKOUT-Pin, siehe Datenblatt Page 6 habs grad gemessen der Quarz am ENC schwingt.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.