Nano m. Ethernetshield ENCJ28J60

Hallo zusammen,

nach vielem herumgegoogle traue ich mich nun auch mal meine erste Frage im Forum zu stellen.
Meine Erfahrungen mit dem Arduino würde ich irgendwo zwischen Anfänger und Fortgeschritten bezeichnen. Ich habe einige Nanos und zwei Unos bei mir herumliegen und schon ein paar kleinere Projekte realisiert.

Für mein aktuelles Projekt möchte ich einen Arduino Nano zusammen mit einem Ethernetshield verwenden, um dem Logic-Level an einem bestimmten Pin per TCP/IP im Netzwerk abfragen zu können.

Als Hardware verwende ich einen original Arduino Nano zusammen mit einem passenden Ethernet Shield für den Nano von Funduino. Das Shield basiert auf dem ENCJ28J60. Daher verwende ich dafür die Bibliothek UIPEthernet.h. Zur Inbetriebnahme habe ich erst die untenstehende Anleitung und anschließend auch das Beispiel „TcpServer“ verwendet.

Zuerst habe ich beide Komponenten zusammengesteckt, später habe ich für die Verbindung ein Breadboard verwendet. Leider ist das Verhalten immer das Gleiche: Sobald die Verbindung MISO(D12) zum Shield geschlossen wird, „hängt“ sich das Programm auf. So bekomme dann keine IP-Adresse mehr über den Serial Monitor angezeigt und kann auch keine LED mehr zum Blinken bringen.

Mit dem Oszilloskop habe ich festgestellt, dass der MISO-Ausgang des ENCJ28J60 (Pin 6) ein Signal ausgibt. Dieses sollte dann auf zwei Eingänge eines AND-Bausteins (74HCT08D) gehen. Dessen Ausgang wiederum geht auf den MISO-Ausgang des Shieldes. Bereits am Eingang des AND-Gliedes kann ich aber schon kein Signal mehr messen.

Meine Vermutung ist, dass die Bibliothek wartet bis ein Signal vom Shield zurückkommt. Aus irgendeinem Hardware-Fehler wird aber kein Signal zurückgegeben.

Aber vielleicht hat noch jemand anderes eine andere Idee? Häufig sind es ja die ganz einfachen Dinge, die man übersieht. Ich probiere jetzt schon seit einer ganzen Weile herum und mir fehlt ein guter Ansatzpunkt um weitermachen zu können.

Viele Grüße und schon mal vielen Dank für eure Antworten.

Der ENCJ28J60 ist alles andere als optimal.
Da er keine eingene Intelligenz hat muß der Arduino viel in der Bibliothek im Sketch machen. Dadurch ist ein NANO schnell überfordert.
Vergiß den ENCJ28J60 und numm nimm ein auf W5100 bzw W5500 basierendes Ethernetshield.
Muß es ein Kabel sein odr könnte WIFI auch funktionieren? Dann nimm einen ESP8266 oder ESP32. Der kann alles und es braucht keinen NANO.
Grüße Uwe

Hallo Uwe,
danke für die Antwort.
Ich habe auch schon mit dem ESP8266 geliebäugelt. Allerdings muss die Anbindung in diesem Fall übers LAN-Kabel erfolgen.
Zum Bauteil ENCJ28J60 habe ich inzwischen auch schon einiges Kritisches gelesen. Wenn ich nicht weiterkomme plane ich das Ethernetshield von Robodyn (s. Link unten) zu verwenden. Aber das ist teurer und nicht so schnell verfügbar. Aber eigentlich muss es ja auch in dieser Form funktionieren. Der jetzige Sketch und auch meine zukünftige Aufgabe sind ja sehr triviale Programme, die den Nano nicht überfordern sollten.

https://www.robotshop.com/de/de/nano-v3-ethernet-shield-w5500-v2.html

Ich habe früher viel mit dem ENC rumprobiert, es aber nie langzeitstabil hinbekommen. Mit keiner Lib. Dazu dan noch die RAM-Anforderungen der Lib, habs dann gelassen und vervende die W5100 Module

Muss es denn unbedingt der Nano sein ?
Ein Uno mit einem Ethernet W5100 passt perfekt zusammen und funktioniert bei mir auch schon einige Jahre.

Hi,
der Nano m. Shield soll später in einem größeren System verbaut werden. Da die Aufgabe des Arduinos relativ klein ist, wäre es schön dafür wenig Bauraum zu verwenden. Klasse an der Kombi ist auch, dass man Nano und Shield einfach in die größere Platine einstecken kann.
Ein Kollege hat mir jetzt den Tipp gegeben, dass die SPI Schnittstelle nicht gleichzeitig mit dem Serial-Monitor läuft. Und Pin D13 scheint ja gleichzeitig SCK und LED zu sein. Möglicherweise hat sich der Controller also gar nicht aufgehängt, sondern kommuniziert einfach nur nicht über die LED und den Serial Monitor. Den Tipp werde ich mit einer externen Spannnungsversorgung ausprobieren.

Serial und SPI gleichzeitig ist kein Problem.

wennschondannrichtig:
Hi,
der Nano m. Shield soll später in einem größeren System verbaut werden.
.....

Und in dem größeren System ist nicht genug Platz ?
Sicherer wäre es mit der Uno-Kombie.

Hi

Da Uno und Nano 'unter der Haube' gleich ticken - sehe ich keine Vorteile - egal für wen.

Problem SPI und D13:
Selber hatte ich 'nur' das Problem, daß ich die LED an Pin 13 NICHT befehligt bekam, so lange SPI aktiv war (für ein CAN-Modul in meinem Fall) - wollte über die LED einen Fehler-Code vorblinken und dann resetten (per WDT).
Bis auf das Blinken klappte Das auch :slight_smile:
Glaube, combie war's, Der die Erkenntnis brachte (man möge mich korrigieren), daß die SPI-Hardware eben den Pin kontrolliert und ich an den Ports rumschreiben kann, wie ich will - im SPI-Betrieb hat der Ausgangs-Treiber des Pin D13 keine Verbindung zum Beinchen.

Das hatte allerdings NICHTS mit fehlerhafter Kommunikation zu tun - einzig das Blinken der Onboard-LED ließ sich nicht im Sketch realisieren - es sei ... man 'klemmt SPI ab' - eben durch SPI.end(); (oder so ... sinngemäß).
In meinem Fall muß SPI danach nicht wieder aktiviert werden können (kA, ob's aktivierbar wäre) - nach einem Reset geht der Sketch ganz normal Seinen Weg und aktiviert SPI für das CAN-Modul ... bis zum nächsten Reset.

MfG

Glaube, combie war's,

Mich erinnert.

Danke für eure Hinweise. Die Variante mit der externen Spannungsversorgung schaffte keine Abhilfe.
Ich habe mir jetzt das W5500 Shield von Robodyn (s. Link) bestellt. Ich hoffe das lässt sich problemloser ansteuern. Von der Nano + Ethernetshield Kombination lasse ich mich nicht so schnell abbringen. Für meinen einfachen Anwendungsfall ist diese Variante einfach zu verlockend (Kompakt und einfach in eine andere Platine einsteckbar).

https://www.robotshop.com/de/de/nano-v3-ethernet-shield-w5500-v2.html

Hallo zusammen,

nun konnte ich den Fehler identifizieren. Das DK ectronics NANO Ethernet Shield V1.0 weist einen Layoutfehler auf: Unterhalb des Spannnungsreglers wird der Pin D12 durchkontaktiert und auf den Spannungsregler gelegt. Wenn der Regler ausgelötet und die Verbindung aufgetrennt wird, lässt sich das Shield verwenden.

Viele Grüße!

Danke für die Rückmeldung!

Das ist ja mal ein irrer Fehler...