├── README.md └── lan8720.py /README.md: -------------------------------------------------------------------------------- 1 | # ESP32 + LAN8720 ethernet 2 | 3 | Connect unmodified LAN8720 module. 4 | 5 | #GPIO00 - EMAC_TX_CLK : nINT/REFCLK (50MHz) 6 | #GPIO16 - SMI_MDC : MDC (relocateable) 7 | #GPIO17 - SMI_MDIO : MDIO (relocateable) 8 | #GPIO19 - EMAC_TXD0 : TX0 9 | #GPIO21 - EMAC_TX_EN : TX_EN 10 | #GPIO22 - EMAC_TXD1 : TX1 11 | #GPIO25 - EMAC_RXD0 : RX0 12 | #GPIO26 - EMAC_RXD1 : RX1 13 | #GPIO27 - EMAC_RX_DV : CRS 14 | #GND : GND 15 | #3V3 : VCC 16 | 17 | ESP32 will be unreliable to start but after 18 | few attempts of power OFF/ON or reset 19 | it will boot and respond to ping and allow 20 | REPL etc over wired ethernet. 21 | 22 | Start it just as this (can be put in main.py) 23 | 24 | import lan8720 25 | 26 | It will request IP address by DHCP. 27 | Edit file "lan8720.py" to set fixed IP. 28 | 29 | import network 30 | from machine import Pin 31 | lan = network.LAN(mdc=Pin(16), mdio=Pin(17), power=None, id=None, phy_addr=1, phy_type=network.PHY_LAN8720) 32 | lan.active(True) 33 | # by default (no parameters), ifconfig() will request IP from DHCP 34 | lan.ifconfig() 35 | # set fixed IP (address, netmask, gateway, dns) 36 | #lan.ifconfig(('192.168.0.190', '255.255.255.0', '192.168.0.1', '192.168.0.1')) 37 | -------------------------------------------------------------------------------- /lan8720.py: -------------------------------------------------------------------------------- 1 | # LAN8720 MODULE 2 | 3 | #GPIO00 - EMAC_TX_CLK : nINT/REFCLK (50MHz) 4 | #GPIO16 - SMI_MDC : MDC (relocateable) 5 | #GPIO17 - SMI_MDIO : MDIO (relocateable) 6 | #GPIO19 - EMAC_TXD0 : TX0 7 | #GPIO21 - EMAC_TX_EN : TX_EN 8 | #GPIO22 - EMAC_TXD1 : TX1 9 | #GPIO25 - EMAC_RXD0 : RX0 10 | #GPIO26 - EMAC_RXD1 : RX1 11 | #GPIO27 - EMAC_RX_DV : CRS 12 | #GND : GND 13 | #3V3 : VCC 14 | 15 | # press RESET or power ON/OFF ESP32 several times until it boots 16 | # speed: ftp get from ESP32 flash is 300KB/s (3Mbps) 17 | 18 | # some free pins recommended for ESP32 to be used as JTAG programmer 19 | 20 | #GPIO23 JTAG_TDI 21 | #GPIO34 JTAG_TDO (was 19) 22 | #GPIO18 JTAG_TCK 23 | #GPIO5 JTAG_TMS (was 21) 24 | 25 | import network 26 | from machine import Pin 27 | lan = network.LAN(mdc=Pin(16), mdio=Pin(17), power=None, id=None, phy_addr=1, phy_type=network.PHY_LAN8720) 28 | lan.active(True) 29 | # by default (no parameters), ifconfig() will request DHCP 30 | lan.ifconfig() 31 | # set fixed IP (address, netmask, gateway, dns) 32 | #lan.ifconfig(('192.168.18.190', '255.255.255.0', '192.168.18.254', '192.168.18.254')) 33 | --------------------------------------------------------------------------------