Merci @al1fch pour ton essai.
En fait c'est plus clair j'ai désinstaller et reinstaller l'ide avec ces librairies, et j'ai un peut de mieux.
Le programme :
/*
This sketch shows how to use lan8720 with esp32 with minimal/standard configuration
You can set the parameter in begin function or at start with define before the import
of ETH.h file, this way is preferible.
by Renzo Mischianti <mischianti.org>
*/
// I²C-address of Ethernet PHY (0 or 1 for LAN8720, 31 for TLK110)
#define ETH_PHY_ADDR 1 // DEFAULT VALUE IS 0 YOU CAN OMIT IT
// Type of the Ethernet PHY (LAN8720 or TLK110)
#define ETH_PHY_TYPE ETH_PHY_LAN8720 // DEFAULT VALUE YOU CAN OMIT IT
// Pin# of the enable signal for the external crystal oscillator (-1 to disable for internal APLL source)
#define ETH_PHY_POWER -1 // DEFAULT VALUE YOU CAN OMIT IT
// Pin# of the I²C clock signal for the Ethernet PHY
#define ETH_PHY_MDC 23 // DEFAULT VALUE YOU CAN OMIT IT
// Pin# of the I²C IO signal for the Ethernet PHY
#define ETH_PHY_MDIO 18 // DEFAULT VALUE YOU CAN OMIT IT
// External clock from crystal oscillator
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT // DEFAULT VALUE YOU CAN OMIT IT
#include <ETH.h>
static bool eth_connected = false;
void WiFiEvent(WiFiEvent_t event) {
Serial.println(event);
switch (event) {
case ARDUINO_EVENT_ETH_START:
Serial.println("ETH Started");
ETH.setHostname("esp32-mischianti-eth");
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 testClient(const char *host, uint16_t port) {
Serial.print("\nconnecting to ");
Serial.println(host);
WiFiClient client;
if (!client.connect(host, port)) {
Serial.println("connection failed");
return;
}
client.printf("GET / HTTP/1.1\r\nHost: %s\r\n\r\n", host);
while (client.connected() && !client.available())
;
while (client.available()) {
Serial.write(client.read());
}
Serial.println("closing connection\n");
client.stop();
}
void setup() {
Serial.begin(115200);
WiFi.onEvent(WiFiEvent);
ETH.begin();
}
void loop() {
if (eth_connected) {
testClient("mischianti.org", 80);
}
delay(10000);
}
Par contre j'ai un probleme réseau, le module LAN8720 démarre et voit si le cable ethernet est branché.
Mais il ne se connecte pas au réseau, il ne m'affiche ni l'adresse mac du module, ni ip locale.
Voici le retour console :
17:47:47.931 -> ETH Connected
17:52:12.969 -> ets Jun 8 2016 00:22:57
17:52:12.969 ->
17:52:12.969 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
17:52:12.969 -> configsip: 0, SPIWP:0xee
17:52:12.969 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
17:52:12.969 -> mode:DIO, clock div:1
17:52:12.969 -> load:0x3fff0030,len:1344
17:52:12.969 -> load:0x40078000,len:13964
17:52:12.969 -> load:0x40080400,len:3600
17:52:12.969 -> entry 0x400805f0
17:52:14.731 -> 18
17:52:14.765 -> ETH Started
17:52:14.765 -> 20
17:52:14.765 -> ETH Connected
Pour pouvoir utiliser le GPIO17 et non le GPIO0, j'ai relier la broche enable /disable de l'oscilateur à la masse, comme on peut le voir dans certains tuto, pour désactiver oscillateur du LAN8720.
Encore une fois je reviens vers vous pour savoir ce qui peut clocher