Page 1 of 1

ESP32 + LAN8720A: problem on boot, goes into download mode

Posted: Mon Jul 13, 2020 10:17 am
by ha0x2328
Hello,

I have an device with ESP32 and LAN8720A. It works fine, but sometimes after an power on reset the device is waiting for download instead boot normally. The GPIO0 has an pullup with 4.7K and is connected over 33R1% to PIN14 (INT/REFCLK0) on the LAN8720A. The oscillator output goes on the the same point between the pullup 4.7K and the 33R1%. The oscillator enable comes from ESP32 GPIO5 with pulldown 4.7K, wich only works after a normal reset.

So how does the ESP32 get into the wrong mode of operation?

Can I disable the "Waiting for download" mode via efuse? I can download everytime via OTA.

What can I do?

Best regards and Thank you

Re: ESP32 + LAN8720A: problem on boot, goes into download mode

Posted: Mon Jul 13, 2020 1:09 pm
by deimos
GPIO5 is propably not the best solution as it is driven high on bootup, which will enable the oscillator which possible pulls the GPIO0 low and enters the download mode.
So use a GPIO, which is not a strapping pin or do not use an oscillator at all and use the clock out mode on GPIO17 as clock for the LAN8720A.

Re: ESP32 + LAN8720A: problem on boot, goes into download mode

Posted: Mon Jul 13, 2020 8:38 pm
by ha0x2328
Thank you, do you have an working example schematic without external oscillator?

Re: ESP32 + LAN8720A: problem on boot, goes into download mode

Posted: Tue Jul 14, 2020 5:08 am
by deimos
ha0x2328 wrote:
Mon Jul 13, 2020 8:38 pm
Thank you, do you have an working example schematic without external oscillator?
https://github.com/alexreinert/PCB/blob ... RF-ETH.pdf

Re: ESP32 + LAN8720A: problem on boot, goes into download mode

Posted: Tue Jul 14, 2020 8:29 am
by ha0x2328
Your reply is very helpful. Thank you!

Re: ESP32 + LAN8720A: problem on boot, goes into download mode

Posted: Thu Jul 16, 2020 2:19 pm
by giannifp
Thanks for the design reference. I was also looking for options on how to connect this ETH_CLK for the LAN8270. I plan to use the ESP32-PICO which uses IO17 for internal Flash memory. There are no many other options available in which the ESP generates the clock with the CLK_OUT_180(O) signal. Question, can the IO0 be used as CLK_OUT(O) as indicated in the datasheet and invert the signal? How critical is propagation delay?

An option would be to have the external CLK and since the only input is IO0 then you would need some delay logic which disables the OSC and keeps the LAN8270 in reset while the system boots.

Thanks again and in advance!