Forum: Mikrocontroller und Digitale Elektronik ENC28J60 nicht ansprechbar


von Matthias (Gast)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

- 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.

von Matthias (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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

von Ssss S. (sssssss)


Lesenswert?

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

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

@Simon

Hundert Tausend Dank

Funktioniert jetzt. Die einfachsten Fehler sind immer die, an denen man
verzweifelt :-)

Mfg

von Ssss S. (sssssss)


Lesenswert?

Was wars denn ? CS ?

Bye, Simon

von Matthias (Gast)


Lesenswert?

Ja CS
mfg

von Armin O. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.