From a8ed7f44bbfbf033e3b9b464eca09567dbeeb6a8 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_lan8720.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/esp_eth/src/esp_eth_phy_lan8720.c b/components/esp_eth/src/esp_eth_phy_lan8720.c index 5c4563079b..5c1fa7df6a 100644 --- a/components/esp_eth/src/esp_eth_phy_lan8720.c +++ b/components/esp_eth/src/esp_eth_phy_lan8720.c @@ -266,7 +266,8 @@ static esp_err_t lan8720_reset_hw(esp_eth_phy_t *phy) gpio_pad_select_gpio(lan8720->reset_gpio_num); gpio_set_direction(lan8720->reset_gpio_num, GPIO_MODE_OUTPUT); gpio_set_level(lan8720->reset_gpio_num, 0); - ets_delay_us(100); // insert min input assert time + /* assert nRST signal on LAN8720 a little longer than the minimum specified in datasheet */ + ets_delay_us(150); gpio_set_level(lan8720->reset_gpio_num, 1); } return ESP_OK;