Hallo,
ich nutze den Wiznet W5100 auf einem WIZ812MJ Breakoutboard mit einem
eigenen Treiber. Aktuell betreibe ich den W5100 als TCP server und ein
Java-Applet zum Testen des TCP Sockets (Client). Dies funktioniert
eigentlich alles einwandfrei, Verbindung wird sauber aufgebaut,
senden/empfangen der Daten alles okay - aber mittendrin (oft erst nach
10 - 30 Minuten) bricht die Verbindung zum W5100 komplett ab, auch kein
Ping geht dann mehr. Im Socket Statusregister steht dann 0x00, also
Connection closed, obwohl ein solcher Befehl nicht explizit gesendet
wurde.
Ich habe mir eine Funktion geschrieben, die alle Register ausgibt,
sobald der Status von SOCK_ESTABLISHED auf SOCK_CLOSED wechselt.
Komischerweise sind dort alle Parameter der Netzwerkeinstellungen auf
0x00 gesetzt (also zB GAR, SIPR usw), so dass ich auch nicht einfach
wieder den Socket öffnen kann.
Das ist mein Ablauf (main.c). SPI funktioniert einwandfrei, auch die
Initilisierung wird richtig übernommen, alle W5100-spezifischen Register
habe ich auf die Default-values gesetzt.
(uC ist ein STM32F4)
Ich kann mir leider mittlerweile nicht mehr erklären, warum nach x
Minuten plötzlich diese Probleme auftreten. Hat(te) jemand hier einen
ähnlichen Fall?
Vielen Dank für die Hilfe!
Stromversorgung habe ich geprüft, liegt konstant bei 3,27V. Ich habe nun
mal testweise das selbe Setup mit einem Arduino Uno aufgebaut und die
Original Ethernetlibrary verwendet, sprich, nicht meinen eigenen Treiber
um hier einfach einen Softwarefehler auszuschließen. Und siehe da -
selbes Problem, der W5100 hört nach ein paar Minuten auf zu arbeiten -
kein Ping mehr, keine Netzwerkeinstellungen mehr.
Schlussendlich habe ich zwei Punkte, die es für mich sein können:
1. Mac Addresse (ich probiere gerade eine andere Mac-Addr, nämlich die,
die im Arduino-Wiki vorgeschlagen wird)
2. Das Board ist hin! Zuletzt lief nur noch die Initialisierung und
eine leere While-Schleife auf meinem uC, der "nackte" Ping funktioniert
ein paar Minuten lang und plötzlich nicht mehr. Es wird aber keine Zeile
Code ausgeführt, die den Zustand des W5100 ändern könnte. Daher kann ich
wohl einen Softwarefehler ausschließen.
Ich lasse gerade einen Test mit anderer Mac-Addr. laufen, melde mich,
falls es dazu Erkenntnisse gibt.
VG
Der zieht relativ viel Strom. Ich hatte mal das shield mit dem w5500 auf
einen Chinesischen Arduino Due. Dort war die Speicherdrossel extrem dünn
dimensioniert. So das sie alles extrem aufheizte nach ca 10min war ruhe
weil die PTC-Sicherung langsam zu hochohmig wurde.
Der Controller macht wohl einen Reset, die spg. Versorgung wurde
Ja schon genannt hier reichen auch kurzzeitige Einbrüche die mit einem
einfachen Multimeter nicht zu erkennen sind.
Dazu, in der Ref schematic( steht 810 im Plan) von wiznet, auf der 812
Produkt
Seite, floatet der rst pin zumindest konnte ich beim drüber fliegen kein
pu
erkennen...
Eventuell auch Mal wert es zu prüfen.
Gruß
Ich häng mich gleich mal mit einem Oszilloskop dran, sowohl an die
Spannungsversorgung als auch an den RST-Pin.
Mac Addresse brachte übrigens auch keine neue Erkenntnis, es lag nicht
an irgendeinem Konflikt im Netzwerk.
Der Reset-Pin hängt über einen PullUp und einen 100n an 3,3V.