Hallo Leute
Ich möchte hier mal über meine Probleme mit der W5100 Karte berichten (von ebay: http://www.ebay.de/itm/272384693857 ...man kann auch Suchen nach Nano W5100), da ich nicht denke, das ich der Einzige mit diesen Problemen bin.
Meine ersten Versuche waren... Scetch auf den Nano (mit Ethernet und allem drum und dran), 12V Netzteil an die Schraubklemmen der W5100 Karte... soweit lief alles lecker. Das Teil war im Netzwerk wunderbar erreichbar.
Später habe ich dann umgerüstet, da die Einheit mit einem geregelten 5V Netzteil betrieben werden sollte.
Die 5V wurden über Pin 27 zugeführt (die Pins werden der Reihe nach durch gezählt... linke Seite von oben an, 1 bis 15, rechte Seite von unten an 16 bis 30). Also Pin 27 ist der 5V Pin. Dazu sei noch erwähnt, für den Fall, das das hier zur Sprache kommt... ich habe die Leiterbahn von PD4 auf der W5100 Karte durchtrennt, da er laut Schematics am SD Select Chip einen Pullup dran hat. Somit ist die SD-Karte aus dem Rennen (brauche sie nicht) und ich habe einen Pin mehr zur Verfügung!
Auf jeden Fall war es immer so, das nach Zuführung der Spannungsversorgung (5V) das Teil nicht erreichbar war, erst wenn ich dann noch mal den Reset-Button am Nano betätigt habe, funktionierte alles einwandfrei.
Da es ja immer mal zu einem Stromausfall kommen kann, wäre der Nano nach erneuter Zuführung der Spannung nicht mehr erreichbar und müsste sonst immer erst mal resetet werden.
Nach fast einem halben Tag der verschiedensten Test's habe ich dann eine Lösung gefunden, die bisher einwandfrei funktioniert. Dazu habe ich in der Ethernet Library (zu finden im Ordner der Arduino IDE unter \libraries\Ethernet) folgende Anpassung in der Datei "Ethernet.h" gemacht...
#ifndef ethernet_h
#define ethernet_h
#include <inttypes.h>
//#include "w5100.h"
// Folgende Zeile hinzu gefuegt, damit kann erst mal ein W5100.init() angeschubst werden...
#include "utility/w5100.h"
#include "IPAddress.h"
#include "EthernetClient.h"
#include "EthernetServer.h"
#include "Dhcp.h"
...
Dann sieht der Scetch im setup() wie folgt aus...
...
uint16_t i;
// ein bissl warten...
for(i = 0; i < 1000; i++) {
delay(1);
}
// fuer folgende Zeile wurde der Eintrag (#include "utility/w5100.h") in die Datei "Ethernet.h" eingefuegt
// Damit erst mal der W5100 Chip initialisiert wird, BEVOR das Ethernet gestartet wird!!
W5100.init();
// noch mal ein bissl warten...
for(i = 0; i < 1000; i++) {
delay(1);
}
Ethernet.begin(mymac, myip, gwip, netmask);
server.begin();
...
Wie schon oben erwähnt, funktioniert es damit (nach dem Anlegen der 5V) einwandfrei. Wie mir scheint, tritt das Problem auch nur auf, wenn man die Einheit mit 5V versorgt, nicht aber, wenn man über Pin 30 oder den Schraubklemmen auf der Netzwerkkarte mit 12V versorgt.
...Gruß, Sky