Hallo! Habe hier einen ENC28J60. Möchte ihn mit einem ATmega32 ansprechen. Doch ich kann nicht einmal die ID (Revisionsnummer) auslesen. SPI-Takt > 8 MHz Habt ihr eine Ahnung woran das liegen könnte? Habe zwar das Forum und vor Allem die zwei Threads über den ENC durchsucht aber keine Lösung gefunden. Kann es am Oszillator liegen? Mfg Matthias
- SPI funktioniert? - "Chip Select" Signal wird korrekt ein/ausgeschaltet? - Alle GND/VCC Leitungen vom ENC belegt? - Code richtig? Event. fertige lib zum testen verwenden Tip: Probier mal die LEDs auf "blinken" zu konfigurieren. Dazu musst du nämlich vorerst nurmal vom µC zum ENC über SPI senden. Wenn das funktioniert kannst du dich um die eventuell noch vorhandenen "Empfangs-Probleme" kümmern.
Spi Funktioniert messe mit dem Logikanalyzer genau die Bitfolgen die ich messen sollte. Auch das "Chip Select" Signal wird ein und ausgeschaltet. Alle VCC/GND Pins verbunden + Stützkondensatoren Code von dieser Seite: http://hubbard.engr.scu.edu/avr/avrlib/docs/html/group__enc28j60.html Werd mich jetzt mal dran machen die Leds blinken zu lassen MFG
Hab jetzt mit dieser Routine versucht die Leds zum blinken zu bringen: void PhyWrite(BYTE address, WORD data) { Write(MIREGADR, address); Write(MIWRL, data); Write(MIWRH, data>>8); while(Read(MISTAT) & MISTAT_BUSY); } Steht doch genau so im Datenblatt, oder? Auf jeden Fall blinken die Led's nicht. Habe keine Ahnung woran dies liegen kann. Mfg Matthias
Hast du dran gedacht das CS=low = enable ist ? Sonst probier mal deren lib: http://hubbard.engr.scu.edu/embedded/avr/avrlib/docs/html/enc28j60_8c-source.html Lief bei mir auf anhieb. (Spi frequenz ~3.5Mhz auch bei dem chip mit dem Fehler) Bye, Simon
Stimmt SCK? Ich hatte letzt in meinem uC das Polaritätsbit falsch gesetzt gehabt und dadurch war der Ruhepegel vom SPI-Clk-Signal falsch rum und mein SPI-EEPROM hat mich ignoriert. Bis denne, Andreas
@Simon Hundert Tausend Dank Funktioniert jetzt. Die einfachsten Fehler sind immer die, an denen man verzweifelt :-) Mfg
habe dasselbe Problem..... aber mein CS sollte richtig programmiert sein.. ich will auch die Rev Nummer auslesen, aber es kommt immer 0x00 zurück. (blöd wenn man kein Oszi hat) Kannst mal deinen Code reinstellen? Wäre echt interessiert... Danke schonmal..
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.