Ethernet Shield über Kabel an Arduino Uno anschließen

Hallo zusammen,

Ich arbeite gerade an einem Projekt, bei dem ich einen ESP32 via LAN mit meinem Netzwerk verbinden möchte.
Ich besitze bereits ein originales Arduino Ethernet Shield 2 (W5500) welches ich gerne verwenden möchte.
Um zu testen ob dieses funktioniert habe ich es auf meinen (ebenfalls originalen) Arduino Uno gesteckt und das Bsp.-Programm "WebClient.ino" geladen. Funktioniert ohne Probleme.

Dann habe ich das Shield mit meinem ESP32 verbunden und getestet. Hat nicht funktioniert - das Shield wurde nicht erkannt.

Um den Fehler einzugrenzen habe ich das Shield mit meinem Arduino Uno verbunden. Diesmal allerdings mit Kablen an allen ICSP-Pins, Pin 10 und Pin 4. Gleicher Fehler wie beim ESP32.
Wenn ich das Shield wieder direkt aufstecke funktioniert es wieder ohne Probleme.

Dann habe ich statt den ICSP-Pins die Pins 10 - 13 genommen und die Stromversorgung und den Reset auch über andere Pins angeschlossen. Wieder der Fehler.

Langsam weiß ich nicht mehr weiter.

Vergesse ich irgedwelche Pins?
Das Shield nutzt doch nur:

SCK -> Pin 13 oder ICSP
MISO -> Pin 12 oder ICSP
MOSI - > Pin 11 oder ICSP
SS Ethernet -> Pin 10
SS SD -> Pin 4
Stromversorgung (5V, GND)

So habe ich es immer angeschlossen.

Jemand eine Idee an was das liegen könnte?
Meine Kabel sind nicht länger als 20 cm. Das passt doch für SPI oder?

Wäre über eure Hilfe sehr dankbar!
Grüße jjw2202

Du solltest dabei berücksichtigen, dass der UNO mit 5 Volt Datenpins arbeitet, der ESP allerdings mit 3,3 Volt an den Datenpins. Das funktioniert nicht direkt zusammen. Da müssen Levelshifter rein.
Bewährt hat sich da ein HEF4050.

Ja.
Aber nicht auf dem Shield siehe Schematic.
Das Shield benutzt MISO/MOSI/SCK am ICSP-Header.
Die Pins 11,12,13 sind nicht damit verbunden.

Also UNO: 11 -EthernetShield ISP usw. Dann geht das auch.

Dank für den Hinweis!
Aber am Uno sollte es ja passen.

Am Shield muss ich den ICSP-Header nutzen, aber am Uno ist es meine ich egal.
Habe beide Wege ausprobiert, geht aber beides nicht.

Ja, am Uno passt es. Am ESP32 wäre ich dennoch vorsichtig, obwohl das Schaltbild was anderes sagt.
Ein Levelshifter ist ja nicht so teuer. :wink:
Hast du auch darauf geachtet, dass am ESP32 nicht alle Pins frei genutzt werden können ?

ESP32 hat 2X SPI bezeichnet als SPI und VSPI , andere Sache wurde schon verrucht SS auf anderen Pin umstellen bei Uno ?

Das macht mich allerding stutzig.

Hier tippe ich auf defekte Kabel oder sehr schlechten Kontakt der Steckverbindungen.

Der W5500 ist ein 3,3V Chip.
Zudem sollte das Shield mit beiden Spannungen arbeiten.

Vorschlag:
IOref auch richtig verbinden, denn das ist eigentlich für die 3,3V 5V Unterscheidung zuständig.

Das habe ich schon gesehen.
Den SS habe ich auch bereits umgestellt, aber ohne Erfolg.

Ich habe alle durchgemessen und keine Probleme festgestellt.

Stimmt, ich hatte es in Post #6 auch schon relativiert.

Also wen auf ISP funktioniert und mit loser Verbindung nicht dann machst du ein Fehler Reset auch verbunden?

Gibt es denn in der IDE beim Flashen irgend eine Meldung ?

Oref auch richtig verbinden, denn das ist eigentlich für die 3,3V 5V Unterscheidung zuständig.

Wenn ich den auf 3,3V lege kann ich mir dann die Levelshifter sparen?

Ja Reset ist ja auch im ICSP mit drin. Die Pins habe ich alle verbunden.

Nein. Es wird ohne Meldung kompiliert und hochgeladen.

Ja, die darfst du hier weg lassen.

Ok :+1:

Mein Aufbau mit einem W5100 funktioniert.

Das Ethernetshield liegt auf dem Kopf.
Anschlüsse:
unten links - sw / GND
mitte links - bn / 11
oben links - rt / 5V
unten rechts - frei
mitte rechts - or / 13
oben rechts - ge / 12
gn ist auf der anderen seite angepinnt