Falke07
February 27, 2024, 11:40am
1
Hallo zusammen,
Ich habe eine ESP32-POE-ISO-EA-IND, welchen ich mit LAN betreiben will.
Leider bezieht sich der ESP keine IPv4- Adresse (im LAN ist IPv6 deaktiviert)
Als Test Sketch habe ich von Github folgenden Sketch geladen:
/*
This sketch shows the Ethernet event usage
*/
#include <ETH.h>
static bool eth_connected = false;
void WiFiEvent(WiFiEvent_t event)
{
switch (event) {
case ARDUINO_EVENT_ETH_START:
Serial.println("ETH Started");
//set eth hostname here
ETH.setHostname("esp32-ethernet");
break;
case ARDUINO_EVENT_ETH_CONNECTED:
Serial.println("ETH Connected");
break;
case ARDUINO_EVENT_ETH_GOT_IP:
Serial.print("ETH MAC: ");
Serial.print(ETH.macAddress());
Serial.print(", IPv4: ");
Serial.print(ETH.localIP());
if (ETH.fullDuplex()) {
Serial.print(", FULL_DUPLEX");
}
Serial.print(", ");
Serial.print(ETH.linkSpeed());
Serial.println("Mbps");
eth_connected = true;
break;
case ARDUINO_EVENT_ETH_DISCONNECTED:
Serial.println("ETH Disconnected");
eth_connected = false;
break;
case ARDUINO_EVENT_ETH_STOP:
Serial.println("ETH Stopped");
eth_connected = false;
break;
default:
break;
}
}
void setup()
{
Serial.begin(115200);
WiFi.onEvent(WiFiEvent);
ETH.begin();
}
void loop()
{
Serial.print("ETH MAC: ");
Serial.print(ETH.macAddress());
Serial.print(", IPv4: ");
Serial.println(ETH.localIP());
delay(2000);
}
Im Seriellen Monitor kommt folgende Meldung:
12:39:02.230 -> ETH MAC: E (441038) esp_eth: esp_eth_ioctl(348): ethernet driver handle can't be null
12:39:02.230 -> 00:00:00:00:00:00, IPv4: 0.0.0.0
12:39:04.230 -> ETH MAC: E (443038) esp_eth: esp_eth_ioctl(348): ethernet driver handle can't be null
12:39:04.230 -> 00:00:00:00:00:00, IPv4: 0.0.0.0
Kann mir jemand helfen, was ich da falsch mache oder beachten muss?
Gruß
Falke07
Tommy56
February 27, 2024, 11:46am
2
Gib uns bitte einen kompletten kompilierbaren Sketch.
Gruß Tommy
Edit: Einen Link zum Board und zur Eth-Lib wären auch sinnvoll.
fony
February 27, 2024, 12:03pm
3
Falke07:
ESP32-POE-ISO-EA-IND
Wenn das ist einer vom OLIMEX dann habe was für dich, mit Beispielen. Damit sollten auch die Interne Pins stimmen
J-M-L
February 27, 2024, 12:13pm
4
Funktioniert dieses Beispiel für Sie?
/*
* Simple demo to demonstrate functionality of Ethernet and WiFi simultaneously
* If successful upon initializatoin on the terminal will be shown the IP adresses
* of each connection. The output will be something like this:
* ---------------------------------------------------------------------------------
* Connecting to <SSID>
* ETH Started
* ....
* WiFi connected
* IP address:
* 192.168.0.204
* ETH Connected
* ETH MAC: 3C:71:BF:0D:89:5B, IPv4: 192.168.0.152, FULL_DUPLEX, 100Mbps
* ---------------------------------------------------------------------------------
* every 3 seconds:
* 1) ethernet tries to connect to google.com
* 2) WiFi tries to connect to data.sparkfun.com
* For the WiFi you should edit the variables
* "ssid" and "password" with the ones of your access point.
*/
This file has been truncated. show original
Falke07
February 27, 2024, 12:43pm
5
Hallo,
Das ist der komplette Sketch nur : "Im Seriellen Monitor kommt folgende Meldung:" gehört da nicht hin.
Das ist eine Standart Lib: \esp32\2.0.11\libraries\Ethernet\src\ETH.h
Ja, das ist er und ich habe auch dort den Sketch geladen nur den void testClient() entfernt. Zudem habe ich noch keinen PIN angeschlossen. Will den ESP ersteinmal nur ins LAN bringen
https://github.com/OLIMEX/ESP32-POE/blob/master/SOFTWARE/ARDUINO/ESP32_PoE_Ethernet_Arduino/ESP32_PoE_Ethernet_Arduino.ino
Wifi ja, LAN nein. Das war mein erster Versuch.
Nur nochmal zur Sicherheit:
Es geht nur um LAN- Anbindung
fony
February 27, 2024, 12:57pm
6
Jetzt sehe dass das der gleicher Beispiel ist.
in Readme steht das:
Diese Demo basiert auf der Standard-Demo des espressif-Pakets "ETH_LAN8720", die für das Olimex-Board ESP32-PoE rev.B angepasst wurde.
Es implementiert das Erfassen einer IP-Adresse und die Nutzung von Ethernet-Ereignissen, die auf dem Terminal sichtbar sind.
Normaler weise sollte eine Verbindung zu Router statt finden. Sind im Router die LAN Ports freigegeben? Bei meinen kann das blocken.
Falke07
February 27, 2024, 1:13pm
7
OK, ich habe rev L, an einem TP-Switch TL-SG1005P
Muss ich dann noch eine Lib für den LAN8720 einbinden? wenn ja, wo finde ich diese? In Aduino IDE ist diese nicht (zumindest nicht gefunden)
fony
February 27, 2024, 4:32pm
8
https://sautter.com/blog/ethernet-on-esp32-using-lan8720/
der schreibt so was (Übersetzt mit Deepl.
"Es implementiert die LAN8720-Bootstrap-Konfiguration auf dem Waveshare-Board
Der LAN8720 auf dem Waveshare-Board ist so gebootstrapt, dass er die I²C-Adresse 1 verwendet. Sie müssen also den ESP-IDF so konfigurieren, dass er auf das LAN8720 als PHY1 zugreift config.phy_addr = PHY1;. die Erfassung einer IP-Adresse und die Nutzung von Ethernet-Events, die auf dem Terminal sichtbar sind. "
Habe das Ding nicht. Kann nur schreiben was gefunden habe
Falke07
February 28, 2024, 8:41am
9
Hi zusammen,
ich habe die Lösung gefunden.
Hier für alle, welche sich auch damit rumschlagen:
(Ohne Gewähr; bei mir hat es mit der rev. L funktioniert)
Ab der ESP32 Version 3.0.0-alpha3 müssen 2 GPIO PINS anders deklariert werden.
#define ETH_PHY_POWER 12
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
Anmerkung: die Definierung muss vor #include <ETH.h> gesetzt werden.
Danke an alle, welche sich hierzu beteiligt haben
Gruß
Falke07
1 Like
system
Closed
August 26, 2024, 8:42am
10
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.