diff --git a/esp3d/src/include/esp3d_defines.h b/esp3d/src/include/esp3d_defines.h index 8c54f2f3..06260978 100644 --- a/esp3d/src/include/esp3d_defines.h +++ b/esp3d/src/include/esp3d_defines.h @@ -328,25 +328,7 @@ typedef uint ESP3DSettingIndex; #define TYPE_ETH_PHY_W5500 7 #define TYPE_ETH_PHY_KSZ8851 8 -//SPI pis for ethernet -#ifndef ETH_PHY_CS -#define ETH_PHY_CS 15 -#endif // ETH_PHY_CS -#ifndef ETH_PHY_IRQ -#define ETH_PHY_IRQ 4 -#endif // ETH_PHY_IRQ -#ifndef ETH_PHY_RST -#define ETH_PHY_RST 5 -#endif // ETH_PHY_RST -#ifndef ETH_SPI_SCK -#define ETH_SPI_SCK 14 -#endif // ETH_SPI_SCK -#ifndef ETH_SPI_MISO -#define ETH_SPI_MISO 12 -#endif // ETH_SPI_MISO -#ifndef ETH_SPI_MOSI -#define ETH_SPI_MOSI 13 -#endif // ETH_SPI_MOSI + // Host path #define ESP3D_HOST_PATH "/" diff --git a/esp3d/src/include/esp3d_pins.h b/esp3d/src/include/esp3d_pins.h index 8cc5d39a..21ab923e 100644 --- a/esp3d/src/include/esp3d_pins.h +++ b/esp3d/src/include/esp3d_pins.h @@ -478,6 +478,27 @@ #define ESP_SD_DETECT_PIN -1 #endif // ESP_SD_DETECT_PIN +//SPI pis for ethernet +#ifndef ETH_PHY_CS +#define ETH_PHY_CS 15 +#endif // ETH_PHY_CS +#ifndef ETH_PHY_IRQ +#define ETH_PHY_IRQ 4 +#endif // ETH_PHY_IRQ +#ifndef ETH_PHY_RST +#define ETH_PHY_RST 5 +#endif // ETH_PHY_RST +#ifndef ETH_SPI_SCK +#define ETH_SPI_SCK 14 +#endif // ETH_SPI_SCK +#ifndef ETH_SPI_MISO +#define ETH_SPI_MISO 12 +#endif // ETH_SPI_MISO +#ifndef ETH_SPI_MOSI +#define ETH_SPI_MOSI 13 +#endif // ETH_SPI_MOSI + + #if defined(PIN_RESET_FEATURE) && !defined(ESP3D_RESET_PIN) #define ESP3D_RESET_PIN -1 #endif // PIN_RESET_FEATURE diff --git a/esp3d/src/modules/ethernet/ethconfig.cpp b/esp3d/src/modules/ethernet/ethconfig.cpp index 1125998d..8ae9484b 100644 --- a/esp3d/src/modules/ethernet/ethconfig.cpp +++ b/esp3d/src/modules/ethernet/ethconfig.cpp @@ -25,13 +25,21 @@ #include "esp_eth.h" #endif // ARDUINO_ARCH_ESP32 -#ifdef ARDUINO_ARCH_ESP8266 -#endif // ARDUINO_ARCH_ESP8266 #include "../../core/esp3d_commands.h" #include "../../core/esp3d_settings.h" #include "../../core/esp3d_string.h" #include "../network/netconfig.h" #include "ethconfig.h" +#ifdef ETHERNET_SPI_USE_SPI +#define ETH_SPI SPI +#endif // ETHERNET_SPI_USE_SPI +#if ETHERNET_SPI_USE_SPI2 +#define ETH_SPI SPI2 +#endif // ETHERNET_SPI_USE_SPI2 +#ifndef ETH_SPI +#define ETH_SPI SPI +#endif // ETH_SPI +# #if defined(GCODE_HOST_FEATURE) #include "../gcode_host/gcode_host.h" @@ -71,30 +79,44 @@ bool EthConfig::begin(int8_t& espMode) { bool res = false; ipMode(true); end(); - if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_LAN8720) { - esp3d_log_d("ETH PHY Type %d", ESP3D_ETH_PHY_TYPE); - _started = ETH.begin(); - } else { - if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_TLK110 || - ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_RTL8201 || - ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_DP83848 || - ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8041 || - ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8081) { - esp3d_log_d("ETH PHY Type %d", ESP3D_ETH_PHY_TYPE); - _started = ETH.begin(ESP3D_ETH_PHY_TYPE, ESP3D_ETH_PHY_ADDR, ESP3D_ETH_PHY_POWER_PIN, - ESP3D_ETH_PHY_MDC_PIN, ESP3D_ETH_PHY_MDIO_PIN, ESP3D_ETH_CLK_MODE_PIN); - } else { - if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_W5500) { - esp3d_log_d("ETH spi PHY Type %d", ESP3D_ETH_PHY_TYPE); - SPI.begin(ETH_SPI_SCK, ETH_SPI_MISO, ETH_SPI_MOSI); - _started = ETH.begin(ESP3D_ETH_PHY_TYPE, ESP3D_ETH_PHY_ADDR, ETH_PHY_CS, - ETH_PHY_IRQ, ETH_PHY_RST, SPI); - } else { - esp3d_log("Ethernet PHY type not supported"); - return false; - } - } +#if ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_LAN8720 + esp3d_log_d("ETH PHY Type %d", ESP3D_ETH_PHY_TYPE); + _started = ETH.begin(); +#endif // ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_LAN8720 +#if ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_TLK110 || \ + ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_RTL8201 || \ + ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_DP83848 || \ + ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8041 || \ + ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8081 + eth_phy_type_t phytype = ETH_PHY_TLK110; + if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_RTL8201) { + phytype = ETH_PHY_RTL8201; } + if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_DP83848) { + phytype = ETH_PHY_DP83848; + } + if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8041) { + phytype = ETH_PHY_KSZ8041; + } + if (ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8081) { + phytype = ETH_PHY_KSZ8081; + } + esp3d_log_d("ETH PHY Type %d", phytype); + _started = ETH.begin(phytype, ESP3D_ETH_PHY_ADDR, + ESP3D_ETH_PHY_POWER_PIN, ESP3D_ETH_PHY_MDC_PIN, + ESP3D_ETH_PHY_MDIO_PIN, ESP3D_ETH_CLK_MODE_PIN); +#endif // ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_TLK110 || ESP3D_ETH_PHY_TYPE == + // TYPE_ETH_PHY_RTL8201 || ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_DP83848 || + // ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_KSZ8041 || ESP3D_ETH_PHY_TYPE == + // TYPE_ETH_PHY_KSZ8081 +#if ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_W5500 + esp3d_log_d("ETH spi PHY Type %d", ESP3D_ETH_PHY_TYPE); + ETH_SPI.begin(ETH_SPI_SCK, ETH_SPI_MISO, ETH_SPI_MOSI); + _started = ETH.begin(ETH_PHY_W5500, ESP3D_ETH_PHY_ADDR, ETH_PHY_CS, + ETH_PHY_IRQ, ETH_PHY_RST, ETH_SPI); + + +#endif // ESP3D_ETH_PHY_TYPE == TYPE_ETH_PHY_W5500 if (_started) { if (ESP3DSettings::isVerboseBoot()) {