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?
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, am Uno passt es. Am ESP32 wäre ich dennoch vorsichtig, obwohl das Schaltbild was anderes sagt.
Ein Levelshifter ist ja nicht so teuer.
Hast du auch darauf geachtet, dass am ESP32 nicht alle Pins frei genutzt werden können ?
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