From 5e7df077d6a2f73ab74cc6c930b54641978fcf99 Mon Sep 17 00:00:00 2001 From: Frank Sautter Date: Mon, 1 Nov 2021 22:03:30 +0100 Subject: [PATCH] Increased LAN8720 ETH-PHY reset assertion time (IDFGH-6018) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Increase reset assertion time from 100µs (as specified minimum in the datasheet) to 150µs. Some specimen of the LAN8720 need the reset signal asserted longer than 100µs to initialise properly. Otherwise they are in a zombie state where they are establishing and loosing an Ethernet link once in a seconds interval. --- components/esp_eth/src/esp_eth_phy_lan87xx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/esp_eth/src/esp_eth_phy_lan87xx.c b/components/esp_eth/src/esp_eth_phy_lan87xx.c index e6465501f0..2f09cba631 100644 --- a/components/esp_eth/src/esp_eth_phy_lan87xx.c +++ b/components/esp_eth/src/esp_eth_phy_lan87xx.c @@ -337,7 +337,8 @@ static esp_err_t lan87xx_reset_hw(esp_eth_phy_t *phy) esp_rom_gpio_pad_select_gpio(lan87xx->reset_gpio_num); gpio_set_direction(lan87xx->reset_gpio_num, GPIO_MODE_OUTPUT); gpio_set_level(lan87xx->reset_gpio_num, 0); - esp_rom_delay_us(100); // insert min input assert time + /* assert nRST signal on LAN87xx a little longer than the minimum specified in datasheet */ + esp_rom_delay_us(150); gpio_set_level(lan87xx->reset_gpio_num, 1); } return ESP_OK;