Forum: Mikrocontroller und Digitale Elektronik ENC28J60: SPI Problem


von Philipp F. (nerdture)


Angehängte Dateien:

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?

von Gast (Gast)


Lesenswert?

Eingang des Scopes auf AC geschaltet?
Masse vom ENC nicht gleich Masse vom ATmega?

von Philipp F. (nerdture)


Lesenswert?

Ne, beides nicht der Fall. Schade eigentlich. Das mit der Masse wäre 
eine plausible Erklärung gewesen, aber habe mit dem Oszi auf direkt am 
ENC gemessen (sowohl Masse als auch Datenleitungen).
Auf AC war's auch nicht gestellt... Sehr merkwürdig

von Benedikt K. (benedikt)


Lesenswert?

Diese trinären Pegel sehen nach einem Kurzschluss zwischen 2 Leitunge, 
z.B. zwischen DO und DI aus.
PS: Dreh mal die Volt/div Einstellung am Oszi etwas runter, dann steigt 
das SNR deutlich und man kann die Signale besser erkennen.

von Philipp F. (nerdture)


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

von Gast (Gast)


Lesenswert?

ich vermute immer noch, das zwischen dem ATmega und dem ENC keine 
Masseverbindung besteht. Das scheinst du ja auch nicht nachgemessen zu 
haben.

von Gast (Gast)


Lesenswert?

Spannungsversorgung am ENC vorhanden?

von Philipp F. (nerdture)


Angehängte Dateien:

Lesenswert?

Der ENC hat konstant 3.24 Volt. Die Masse ist wunderbar 
durchverbunden... Vielleicht ist der ENC kaputt? Habe aber nichts 
schlimmes damit angestellt eigentlich.

Im Anhang mal die Schematics. Kann bei bedarf auch das Layout noch 
schicken oder echte Fotos ...

von Michael U. (amiga)


Lesenswert?

Hallo,

ich vermisse da so einiges an der Beschaltung des ENC, auch wenn es mit 
der Übertragung per SPI nicht unbedingt zusammenhängen muß.

100n an mehreren Spannungs-Pins, Widerstände/C/Spannungsversorgung von 
TX/RX.

Gruß aus Berlin
Michael

von (prx) A. K. (prx)


Lesenswert?

LF33 ohne Kondensator dahinter - das ist mutig!

von Philipp F. (nerdture)


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

von Philipp F. (nerdture)


Lesenswert?

Habe übrigens keine Kondensatoren am Quarz. Viele meinten ja so würde es 
am besten funktionieren.
Am CLKOUT kommen auf jeden Fall 6.25 MHz raus...

von Philipp F. (nerdture)


Angehängte Dateien:

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

von Philipp F. (nerdture)


Lesenswert?

Nochmal zu der Beschaltung des ENC.
Ich bekomme nämlich trotzdem keinen Link zum Switch...
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?

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Ich würde ihn so anschließen. Der Stromlaufplan funktioniert 
einwandfrei.

von Michael U. (amiga)


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

von Simon K. (simon) Benutzerseite


Lesenswert?

Warum baust du das ganze nicht nach Datenblattschaltung auf? Da fehlt 
doch jede Menge Beschaltung an dem Übertrager. Der Hersteller malt ja 
nicht umsonst da die Widerstände und Kondensatoren (übrigens auch am 
Quarz) hin.

von Marcus M. (marcus67)


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

von Philipp F. (nerdture)


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 ;)

von (prx) A. K. (prx)


Lesenswert?

Was die Widerstände angeht, siehe Wellenwiderstand. Cat5 Kabel hat 
100 Ohm, Ethernet überträgt differenziell und die beiden Rs zusammen 
bilden den 100 Ohm Abschluss.

Die Spule sorgt dafür, dass hochfrequente Störungen aus Vcc dem Ethernet 
fernbleiben und dass das Ethernet-Signal dem Vcc fernbleibt.

von Philipp F. (nerdture)


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

von Philipp F. (nerdture)


Lesenswert?

Yippieh :)
Mit den Widerständen und der Spule gehts. Es gibt einen Link.
Also auch wenn ihr euch wahrscheinlich an den Kopf packen werdet und 
sagt "war ja klar dass es vorher nicht gehen konnte". Ich hab auf jeden 
Fall was dazu gelernt...

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.