Ethernet (W3100A) will nicht

Sep 27, 2005 27 Replies

Hallo,



Habe hier ein Problem mit dem Ethernetchip von wiznet, dem W3100A. Also besser gesagt mit dem IIM7000A von elektronikladen.de. Dieser hängt an einem C167, Schaltung ist weitgehend vom Testboard von elektronikladen.de übernommen.



Ich habe den Beispielcode "W3100A interface test" von

formatting link
auf den C167 portiert, soweit so gut - die memory tests verlaufen alle erfolgreich, der chip wird initialisiert, interrupt test funktioniert, allerdings lässt er sich nicht pingen. Soweit ich das dem Datenblatt richtig entnommen habe (v1.32 S.25) genügt es den Chip Gateway, Mac, Subnetmask und IP mitzuteilen, das sys_init command aufzurufen und er sollte sich pingen lassen.



Codeausschnitt sieht folgendermaßen aus:



---------------------------------------------------------------------- COMMAND(0) = 0x80; // Initialize W3100A



*GATEWAY_PTR = 172; // Set Gateway IP address *(GATEWAY_PTR+1) = 20; *(GATEWAY_PTR+2) = 0; *(GATEWAY_PTR+3) = 1;
*
(SUBNET_MASK_PTR) = 255; // Set subnet mask *(SUBNET_MASK_PTR+1) = 255; *(SUBNET_MASK_PTR+2) = 0; *(SUBNET_MASK_PTR+3) = 0;
*
SRC_HA_PTR = 0x00; // Set MAC Address *(SRC_HA_PTR+1)= 0x08; *(SRC_HA_PTR+2)= 0xDC; *(SRC_HA_PTR+3)= 0x00; *(SRC_HA_PTR+4)= 0x00; *(SRC_HA_PTR+5)= 0x00;
*
SRC_IP_PTR = 172; // Set Source IP Address *(SRC_IP_PTR+1) = 20; *(SRC_IP_PTR+2) = 0; *(SRC_IP_PTR+3) = 39;

i = 0; PutStringLn("\r\nTEST 5. OCCURRENCE OF INTERRUPT."); COMMAND(0) = 0x01; while(!IsISROK )if(i++==0xFFFF) break; if(IsISROK) { if(INT_REG != 0) PutStringLn("\tInterrupt register is not cleared."); else PutStringLn("\tInterrupt register is cleared."); if(INT_STATUS(0) != 0) PutStringLn("\tInterrupt status register is not cleared."); else PutStringLn("\tInterrupt status register is cleared.");



PutStringLn("\r\nTEST 6. using dos-command prompt, pinging your target board"); } else { PutStringLn("Verify fail : Interrupt is not occurred."); }



-----------------------------------------------------------------------



Der INIT_OK Interrupt wird ausgelößt, in der ISR das Interrupt Status Register auch wieder gelöscht, wie gesagt lt. Datenblatt sollte der Ping ab jetzt funktionieren.



Adressen und Bustiming stimmt IMO alles, ich kann auch die IP, Mac usw. wieder auslesen - alles ohne Fehler. Ach ja, als Verbindung habe ich sowohl Cross-Kabel als auch Hub probiert, es geht beides nicht. Und bei Etheral sehe ich nur ausgehende Whois-Broadcasts, es kommt also wirklich nichts retour :-(



Für Hinweise wäre ich sehr dankbar. MfG, Johannes


Hier noch der Schaltplan und das Layout:

formatting link
formatting link

Wie sind die Netzwerkeinstellungen am PC? Vor allem die Subnet Mask. Stimmt die überein?

Der code sieht etwa so aus, wie das was ich mal vor langer Zeit auf einem AVR in Assembler programmiert habe. Hat funktioniert.

Wie sicher bist Du Dir bei der Hardware? Was sagen die LEDs auf Deinem Board und am Switch?

Das Modul hat zwei Reset-Leitungen, eine für den W3100 und einen für die PHY. Letztere hat andere Polarität und ist wahrscheinlich auch nicht

5V-tolerant (war zumindest beim IIM7010 so).

BTW: Das Ding habe ich bei Wiznet auf der Homepage nicht mehr gefunden. Es hatte auch ein paar Kinderkrankheiten und ein paar interessante Auslassungen in der Doku. Ich hab' das damals in comp.arch.embedded zusammengefasst:

formatting link

Die damals geplante Homepage habe ich übrigens noch nicht erstellt ;-(

Viel Erfolg Jan-Hinnerk

Eigentlich sollte das so funktionieren.

Ich kenne Dein Netz nicht, aber wenn Du in einem Klasse C-Netz arbeitest solltest Du hier auch 255 eintragen. Für eine Klasse B Addresierung ist der Wert 0 okay!

Vor dem Initialisierungsbefehl verteile ich noch den Sende- und Empfangsbuffer, aber eigentlich sollte das nicht stören...

Love, Peace and Happiness Thomas Thomas Wedemeyer | Je planmaessiger die Menschen EMail: mail@kill_this.thomas-wedemeyer.de | vorgehen, desto wirksamer WWW: http://www.thomas-wedemeyer.de/ | vermag sie der Zufall zu Public-PGP-Key by request ! | treffen. (F. Duerrenmatt)

Ich hab doch noch was gefunden. Es gibt jetzt ein Modul NM7000 mit dem W3100.

Hallo,

Ja stimmt alles überein. Arbeite hier in einem Class B Netz. MfG, Johannes

Hallo,

Also die Hardware sollte eigentlich stimmen, wüsste jetzt nicht was da falsch sein sollte. Habe den Schaltplan und das Board unter

formatting link
formatting link
abgelegt vielleicht könntest Du es kurz durchsehen? Beim Bus-Timing bin ich mir ziemlich sicher dass alles klappt, wie gesagt Lese- und Schreibtests sind alle erfolgreich.

Die Leds auf dem Switch und auch auf der Lan-Buchse leuchten beide (also 100MBit und Link) bzw. die Link-Led blinkt halt irgendwie im Netzwerktakt.

Was genau signalisieren die eigentlich? Kann ich, wenn beide Link-Leds leuchten, also die auf meinem Board und auf dem Switch, darauf schließen dass zumindest der PHY richtig angeschlossen und ok ist?

Ja das habe ich berücksichtigt, der bekommt auch nur 3V3.

formatting link

Ah von Dir ist der! Ja den hatte ich schon gelesen.

Vielen Dank fürs durchlesen, MfG, Johannes

Ich würde jetzt prüfen ob ich mit einen anderen PC (falls vorhanden) mit den Netzwerkeinstellungen pingen kann. Damit wären dann dhcp-Fehler (Bereiche) falls eingeschaltet oder Blockierung durch die Firewall ausgeschlossen. Wenn das alles funzt bleibt wohl nur noch die Hardware...

Hallo,

Ja kann ich problemlos.

Ich arbeite hier ganz ohne Firewall, da sollte eigentlich nichts dazwischenfunken...

:-( Mist, sowas habe ich befürchtet. Könntest Du vielleicht auch mal einen Blick auf

formatting link
formatting link

werfen vielleicht hab ich ja was grobes übersehen und seh den Wald vor lauter Bäumen nicht.

Kann ich eigentlich die TPTX+ und TPTX- Leitungen - falls diese verkehrt herum angeschlossen wären auch im Patchkabel auskreuzen? Weil der Transformator bzw. die gesamte Schaltung ist eigentlich symmetrisch. Hab das probeweise geändert es hatt aber nichts gebracht.

MfG, Johannes

Hallo,

Das NM7000 (

formatting link
) sieht auf dem Foto exakt aus wie mein Modul, sogar der Aufdruck "WIZNET IIM7000A" ist der selbe. Denke das sind die gleichen Module. Weisst Du zufällig wo ich das Datenblatt für die Schaltung des Modules bekomme?

MfG, Johannes

Schaltplan gucken dauert 'ne Weile. Für die Kabel:

formatting link

Mit 2 Paaren kann es ja nur ein 10Mbit Netz sein. Alle Belegungen die ich gefunden habe nutzen immer Paar 1-2 und 3-6. Aber in deiner Schaltung sind

7-8 belegt... hmmm... Dann kannst Du ja eigentlich kein Standardkabel benutzen!?!?

Hallo,

Vielen Dank für's durchsehen! Ich verwende eine Buchse mit eingebautem Transformator ( LU1T516-34,

formatting link
unter Products->Sccessories->PHY&MAG, sorry direkter Link geht nicht ) der dann wie von Dir beschrieben auf Paar 1-2 und 3-6 geschalten ist. Wenn ich das Modul anstecke leuchtet am Switch die 100MBit-LED, sollte also 100MBit sein. (??).

MfG, Johannes

Hab gerade noch mal nachgesehen:

ATM 155Mbps uses pairs 2 and 4 (pins 1-2, 7-8) Ethernet 10Base-T uses pairs 2 and 3 (pins 1-2, 3-6) Ethernet 100Base-T4 uses pairs 2 and 3 (4T ) (pins 1-2, 3-6) Ethernet 100Base-T8 uses pairs 1,2,3 and 4 (pins 4-5, 1-2, 3-6, 7-8) Token-Ring uses pairs 1 and 3 (pins 4-5, 3-6) TP-PMD uses pairs 2 and 4 (pins 1-2, 7-8)

100VG-AnyLAN uses pairs 1,2,3 and 4 (pins 4-5, 1-2, 3-6, 7-8)

Daraus wird auch wieder ersichtlich das für Ethernet auch für 100Mbit ;) die Pins 1-2 und 3-6 genutzt werden. TP-PMD 1-2 7-8 ist die Kupferversion für FDDI. Also am beseten eigenes "Crossoverkabel" basteln Modul: PC:

1--------3 2--------6 7--------1 8--------2 Dann ist auch diese Fehlermöglichkeit ausgeschlossen...

Hallo,

Naja die Buchse ist intern lt. folgendem Datenblatt verschalten:

formatting link

Aber versuchen kann ichs.

Dankeschön nochmal, MfG, Johannes

In diesem Fall erübrigt sich das. Daurch die interne Schaltung ist zu erkennen das

1---1 2---2 7---3 8---6 schon passt.

Nur noch mal aus Neugier: leuchtet die 100Mbit LED an der Buchse auch? Mehr fällt mir leider nicht mehr ein :(

Am 9/28/2005 10:33 AM schrieb Johannes Schöller:

Hier vielleicht?

formatting link

hth fritz

Hallo,

Ja, tut sie.

Tja, mir leider auch nicht mehr. Werde noch so ein Modul ordern vielleicht hab ich einfach ein defektes erwischt.

MfG, Johannes

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required