ENC28J60: SPI Problem

OP #1383009
Lesenswert?

Hi,
habe meinen ENC28J60 am ATmega8 SPI angeschlossen.
Leider bekomme ich nicht einmal die LEDs zum blinken. Wenn ich ein 
Netzwerkkabel reinstecke blinken sie schon ab und zu mal, aber ich 
möchte über das PHY-Register das Dauerblinken einschalten.
Habe komplett den Code von Nik Bambert 
(Beitrag "ENC28J60 Basics[Beispielprogramm in AVRGCC für atmega8]") übernommen, aber trotzdem 
tut sich nichts.

Jetzt habe ich mal folgende Schleife eingebaut:
1
  while(1) {
2
  enc28j60Read(MAADR5);
3
  enc28j60Read(MAADR4);
4
  enc28j60Read(MAADR3);
5
  enc28j60Read(MAADR2);
6
  enc28j60Read(MAADR1);
7
  enc28j60Read(MAADR0);
8
  }
und ein Oszi an MOSI und MISO gehängt. Im Bild sieht man wie gerade 
MISTAT ausgelesen wird , nur wundert mich der Pegel von MISO etwas! (Der 
ist ja positiv und negativ während die Adresse geschickt wird?)

Auf jeden Fall kommen immer nur Nullen zurück, obwohl am Anfang die MAC 
adresse gesetzt wurde. Und wie gesagt die LEDs blinken auch nicht nach 
einem
1
enc28j60PhyWrite(0x14,0b0000010000100000);
...

Hat jemand da eine Idee?
Angehängte Dateien:
OP #1383097
Lesenswert?

Bin gerade mal alle Kombinationen mit dem Messgerät auf "pieper-modus" 
durchgegangen. Keine Leitungen am ENC sind kurzgeschlossen, auch nicht, 
wenn der ATmega mit dranhängt...
Das mit der DIV einstellung muss ich nochmal testen.

PS: Im Bild ist der lilane Eingang mit eine 10x Eintellung gemessen 
(pegel also eigtl. zwischen 0 und 5 V), am weißen ist ein 1x probe dran, 
also die pegel sind unter 1 Volt
OP #1383372
Lesenswert?

Also auf dem ENC board habe ich ja noch ein 100n an der 
Versorgungsspannung.
Und die weitere Beschaltung der Ethernet buchse habe ich weggelassen, 
nachdem mir einige im Forum gesagt haben, man bräuchte theoretisch nicht 
mal den Übertrager, wenn es nur um kurze distanzen geht. Aber hat ja mit 
SPI nix zu tun.

Ich könnte versuchen die Kabel zwischen den Boards kürzer zu machen (im 
Moment ca 20cm)...
OP #1384098
Lesenswert?

So, also ich habe es nun nochmal mit den richtigen Einstellungen 
gemessen. Habe auch noch Kondensatoren vor und hinter den LF33 gehängt.

Im Oszi-Bild sieht man wie drei Stellen der zuvor gesetzten MAC-Adresse 
korrekt ausgelesen werden. Warum funktioniert es also nicht korrekt? 
(Die LEDs blinken ja zB nicht)
Das Bild ist der eindeutige Beweis, dass ich ich mit dem ENC 
kommunizieren kann...


EDIT: Ok, der Blink-Befehl war falsch ^^. Jetzt blinkts auch...
Sorry
Angehängte Dateien:
#1384196
Lesenswert?

Hallo,

Philipp F. schrieb:
> Nochmal zu der Beschaltung des ENC.
> Ich bekomme nämlich trotzdem keinen Link zum Switch...
Wundert mich nicht wirklich...

> Was ist wirklich nötig? Kann es doch sein das die Spulen allein nicht
> ausreichen? Habe auch nur 4 Pins des RJ45 angeschlossen... Sollte doch
> für 10Mbit aber reichen oder?

Der Hersteller aht die Widerstände nur ins Datenblatt gemalt, weil er 
einen Vertrag mit dem 49,9 Ohm-Widerstandshersteller hat.
50 oder 51 Ohm gehen aber auch.

Woher stammt die Idee, das man alles mögliche da weglassen kann?

Ich zitiere mal aus einem vorigen Posting von Dir:
>nachdem mir einige im Forum gesagt haben, man bräuchte theoretisch nicht
>mal den Übertrager, wenn es nur um kurze distanzen geht. Aber hat ja mit

Der Unterschied zwischen theoretisch und praktisch ist Dir aber klar? 
;-)

Gruß aus Berlin
Michael
#1384281
Lesenswert?

Die Übertrager kann man vielleicht weglassen, wenn man 2 Chips auf der 
gleichen Platine mit gleichem Potential und 2cm langen Leiterbahnen 
verbindet.

Schon bei 1-2m Kabel stimmen die Impendanzen nicht mehr und es ist 
höchst zufällig, ob es noch funktioniert.

Hinzu kommt, daß die Übertrager eine galvanische Trennung gewährleisten. 
Wenn der Switch und Deine Schaltung auf unterschiedlichen Erdpotentialen 
liegen (das hat man schnell mal im Haus) ist sonst ganz schnell ein Teil 
der Schaltung im Himmel.

Gruß, Marcus
OP #1384327
Lesenswert?

Danke für eure Beiträge. Ehrlich gesagt weiß ich auch nicht wie ich auf 
diese Idee komme.. Vielleicht weil ich dachte das sei nur zur 
Stabilisierung und würde aber auch ohne gehen. Nun ja. Ich werde dann 
die Schaltung wohl mal richtig aufbauen.

Aber am besten wäre es glaube ich, wenn ich verstehen würde warum man 
diese Beschaltung braucht. Also was machen die 50ohm widerstände mit dem 
kondensator zu GND? Und die spule zur versorgungsspannung? Bin zwar eher 
der Informatiker als der Elektrotechniker, aber ich würde es wirklich 
gern verstehen ;)
OP #1384459
Lesenswert?

Ah cool. Interessant.
Habe in meinem alten 10mbit hub noch eine Spule gefunden (Sieht aus wie 
ein ferrit-kern, steht aber L2 dran). Ich denke mal stark dass die 
geeignet ist. Ich probiers einfach mal. die 49,9 ohm widerstände hab ich 
auch da (in SMD)

EDIT: Also ich habe folgende Schaltbilder gefunden:
http://www.mikrocontroller.net/attachment/28089/enc28j60.png

http://trac.mlalonde.net/Ethduino/images/schematic/Ethduino_Schematic_Rev2.png

http://www.mikrocontroller.net/attachment/15108/ENC28J60.gif

http://www.dzsc.com/dzbbs/uploadfile/200831911253847.gif

In dem einen ist zB gar keine Spule zu finden... Manche benutzen diesen 
Mittelabgriff, aber in 
http://www.mikrocontroller.net/attachment/28089/enc28j60.png ist der zum 
beispiel gar nicht angeschlossen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren