Page 1 of 1

Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Thu Jul 05, 2018 4:44 pm
by cnlohr
I'm working with a LAN8720, and trying to get it to operate with the ESP32 with GPIO0 out functionality. So far, I've had extremely good luck getting the system to wake up, link, talk to the PHY and receive packets, however, I cannot seem to get the ESP32 to send ANYTHING out the ethernet at all.

I've also tried other clock settings, all have exactly the same symptoms.

I can see the TXEN line going high any time a packet is sent, like DHCP requests, but I get nothing on the other side.

I've modified the example ethernet test program to customize bootstrapping options to minimize external part count by manually resetting/un-resetting the ethernet.

Image

Any recommendations would be welcome! I've been stuck on this for about 20 hours.

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Sat Jul 07, 2018 4:15 pm
by fejess
Hello,

Im working on it too. Just without GPIO00.
Setup
ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
ETH_POWER_PIN -1
ETH_TYPE ETH_PHY_LAN8720
ETH_ADDR 1
ETH_MDC_PIN 23
ETH_MDIO_PIN 18

Also builded an ETH module, and its working.
I don't really understand this Clock modes, but maybe we can make one good solution.

In few days I will upload my .sch and .brd and code to my git.
If you are interested in, hit a reply on this.

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Sun Jul 08, 2018 6:27 pm
by cnlohr
I also tried GPIO 16 and then GPIO 17 as output in a previous board rev and had exactly the same problems. I could RX packets all day long but couldn't TX anything.

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Sun Jul 08, 2018 7:25 pm
by WiFive
Does lan8720 support a 1:2 ratio on the tx magnetics?

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Tue Jul 10, 2018 4:55 pm
by cnlohr
I've tried it both ways, I have a number of different magnetics, and so far, no dice. I have used the LAN8720 before with success on other processors like the STM32F407, and I really like it. Glad you guys included support for it.

P.S. Related links:
My issue on github: https://github.com/espressif/esp-idf/issues/2164
Someone else who got it working:
https://github.com/espressif/esp-idf/pu ... -340727923

Still trying to figure out what's going on.

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Tue Jul 10, 2018 6:19 pm
by cnlohr
Just FYI - I was able to get it working using GPIO17, inverted output. It looks like there may be phase issues with my board. Currently experimenting.

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Mon Jul 16, 2018 10:34 am
by PeterR
Hi,
I have had similar problem with the OLIMEX ESP32-EVB (which uses the LAN8720), see viewtopic.php?f=2&t=6261
I can see data come in but EMAC TX seems frozen.
I have used the LAN8720 before without issue along side an NXP435x whilst developing a PTP driver.

I can influence the ESP32-EVB issue just by making small changes to the program.
Adding a delay after boot before initializing the Ethernet also seems to help.

I have parked the issue for the moment as I am expecting our own custom hardware and want to see how that performs first.
Please post when you know what the issue is.

Re: Can't TX, ESP32 + LAN8720 with GPIO0 Clock Out

Posted: Sat Nov 13, 2021 3:55 pm
by itoooitooo
Hi there, waking up this thread :D

I'm having the exact same problem: RX works fine, TX'd packets are not received and no error is reported.

The TXD0, TXD1 and TX_EN signals look good (when a packet is sent from ESP, I can observe data on TXDx while TX_EN is high).
PHY Clock is supplied by ESP32 GPIO17. (I don't have PSRAM so GPIO17 is fine for me)
PHY registers are in good shape, didn't see any oddity there.

Can you tell if/how you managed to have this working? What where the items you focused on?

Thanks!