Hello everyone.
I am using ESP32-WROVER-IE + LAN8720 to debug ethernet functionality on an existing board with LAN8720 pin4, pin5 external 25Mhz crystal.LED2/nINTSEL pulldown, 50MHz output from nINT/REFCLKO to GPIO0 of esp32.I using basic example, and get the ip.
But there is a problem, the board often goes into download mode when powered up. This should be related to the voltage of GPIO0, 1 corresponds to spi flash boot, 0 corresponds to download mode boot.
The actual GPIO0 voltage measured with a multimeter is 1.6v (without pull-up). After adding the pull-up, the voltage of GPIO0 was 1.69v, which was basically unchanged.
To verify the problem, I used the ESP-WROOM-32 board and the LAN8720 Eth Board to test the connection, still using the GPIO0 input CLK to the esp32, and tested the GPIO0 voltage.
At this point I disconnected GPIO0 from the lan8720 nINT/REFCLKO and tested GPIO0 at 3.3v when floating and nINT/REFCLKO at 1.6v.
The voltage is 1.6v, so it should not be a problem with the esp32.
Other verification methods:
1. use the blink example to pull up and pull down GPIO0, the voltage change range is 2.3V~1.2V when the pull-up resistor is not added, after adding 10k pull-up resistor, the voltage change range is 2.7V~0.8V.
2.7V~0.8V, which can indicate that there should be no problem on the esp32.
2. Using the ESP-WROOM-32 board and the LAN8720 Eth Board, the esp32 uses GPIO16 or GPIO17 to output RMII_CLK to XTAL1/CLKIN of the lan8720, and the basic example can also run, at this time, because GPIO0 is only connected to the boot button, so the voltage is 3.3v, power up can always enter spi flash boot mode.
However, since the ESP32-WROVER-IE has PSRAM, GPIO16 and GPIO17 cannot be used to output RMII_CLK, so only GPIO0 input mode can be used.
Has anyone come across this problem? How should I solve it?
ESP32-WROVER-IE + LAN8720 ethernet ,GPIO0 voltage is only 1.6v, can't enter spi flash boot mode normally
-
- Posts: 211
- Joined: Fri May 07, 2021 10:35 am
Re: ESP32-WROVER-IE + LAN8720 ethernet ,GPIO0 voltage is only 1.6v, can't enter spi flash boot mode normally
Hi,
this issues has been discussed multiple times. The issue is the GPIO0 is boot strap pin. When you connect RMII REF_CKL which is active during boot time, you have 50:50 chance that the ESP32 is set to download mode. The reason is the CLK signal is there and it changes the state of GPIO0 between high and low. The solution is to enable REF_CLK only after the ESP32 boots. You can do it by several methods:
- enable oscillator from your application once ESP32 boots
- have a RC circuit to delay the the oscillator enable
See below links to get more info:
https://github.com/espressif/arduino-esp32/pull/6188
https://www.crowdsupply.com/silicogniti ... reset-saga
Ondrej
this issues has been discussed multiple times. The issue is the GPIO0 is boot strap pin. When you connect RMII REF_CKL which is active during boot time, you have 50:50 chance that the ESP32 is set to download mode. The reason is the CLK signal is there and it changes the state of GPIO0 between high and low. The solution is to enable REF_CLK only after the ESP32 boots. You can do it by several methods:
- enable oscillator from your application once ESP32 boots
- have a RC circuit to delay the the oscillator enable
See below links to get more info:
https://github.com/espressif/arduino-esp32/pull/6188
https://www.crowdsupply.com/silicogniti ... reset-saga
Ondrej
Re: ESP32-WROVER-IE + LAN8720 ethernet ,GPIO0 voltage is only 1.6v, can't enter spi flash boot mode normally
Thanks for your reply,ESP_ondrej wrote: ↑Wed Dec 07, 2022 11:47 amHi,
this issues has been discussed multiple times. The issue is the GPIO0 is boot strap pin. When you connect RMII REF_CKL which is active during boot time, you have 50:50 chance that the ESP32 is set to download mode. The reason is the CLK signal is there and it changes the state of GPIO0 between high and low. The solution is to enable REF_CLK only after the ESP32 boots. You can do it by several methods:
- enable oscillator from your application once ESP32 boots
- have a RC circuit to delay the the oscillator enable
See below links to get more info:
https://github.com/espressif/arduino-esp32/pull/6188
https://www.crowdsupply.com/silicogniti ... reset-saga
Ondrej
I read the links and it looks like they all work on the enable pin of the 50MHz crystal, which will stop the 50MHz output at the beginning of the power up, wait for the GPIO0 state to be read and then output 50MHz again. there doesn't seem to be a solution for connecting a 25MHz crystal.
Then based on this solution it looks like I need to modify the current hardware.Any other suggestions?
-
- Posts: 211
- Joined: Fri May 07, 2021 10:35 am
Re: ESP32-WROVER-IE + LAN8720 ethernet ,GPIO0 voltage is only 1.6v, can't enter spi flash boot mode normally
I am afraid you have no other option... The LAN8720 outputs REFCLKO even if it is in reset...
Re: ESP32-WROVER-IE + LAN8720 ethernet ,GPIO0 voltage is only 1.6v, can't enter spi flash boot mode normally
Thank you for your replyESP_ondrej wrote: ↑Wed Dec 07, 2022 4:04 pmI am afraid you have no other option... The LAN8720 outputs REFCLKO even if it is in reset...
It seems to be the only solution to this problem, which was previously solved by removing lan8720 when Ethernet was not in use.it’s a legacy issue.
Who is online
Users browsing this forum: No registered users and 86 guests