More LAN8720 IP issues

spencer
Posts: 5
Joined: Tue May 15, 2018 7:48 pm

More LAN8720 IP issues

Postby spencer » Tue May 15, 2018 8:37 pm

This has come up before and I've searched for everything I can find about it but still haven't found a working solution. I've been having issues similarly to what others have described trying to use a LAN8720 breakout with an ESP32 WROOM...the PHY seems to be working, it detects the ethernet cable being plugged in but I never get an IP address.

I (3483) emac: emac start success !!!
I (7483) eth_example: ~~~~~~~~~~~
I (7483) eth_example: ETHIP:0.0.0.0
I (7483) eth_example: ETHPMASK:0.0.0.0
I (7483) eth_example: ETHPGW:0.0.0.0
I (7483) eth_example: ~~~~~~~~~~~
I (7493) emac: eth link_up!!!
I (9483) eth_example: ~~~~~~~~~~~
I (9483) eth_example: ETHIP:0.0.0.0
I (9483) eth_example: ETHPMASK:0.0.0.0
I (9483) eth_example: ETHPGW:0.0.0.0
I (9483) eth_example: ~~~~~~~~~~~

Setup info:
I have 3 different variants of LAN8720 breakout, original Waveshare and 2 different kinds of cheap clones.
Testing on WROOM dev boards from two sources and a custom board.

I am using the esp-idf ethernet example: LAN8720 selected, PHY Address 1, clock mode: GPIO0 input, MDC: io16, MDIO: io17

Connected as described here: https://sautter.com/blog/ethernet-on-es ... g-lan8720/

Interestingly on one older wroom dev board I have, the link is established and I receive an IP. No other ESP modules seem to work though and I can't figure out what could be different. The one that works is older than the rest, not sure if anything internally is different.

Clock signal integrity seems to be a common cause for this, but my 50MHz signal looks clean and in some of my test setups the connections are clean and short (otherwise I'm using jumpers to connect breakout to dev board, including on the one setup that actually works).

I feel a bit stuck at the moment, does anyone have other ideas of things I should look into?

Thanks!

spencer
Posts: 5
Joined: Tue May 15, 2018 7:48 pm

Re: More LAN8720 IP issues

Postby spencer » Wed May 16, 2018 8:28 pm

Here's a bit more info.

The working setup is using an ESP32 Core Board V2: https://www.adafruit.com/product/3269

Non-working setups are using this dev board from http://www.doit.am: http://www.smartarduino.com/esp32-development-board-wifi-bluetooth-ultra-low-power_p95103.html and my board with more ideal connections using modules from GridConnect (https://gridconnect.com/wireless-wifi-bluetooth-module-esp-wroom-32.html)

I've confirmed that the LAN8720 boards work with the one good dev board...and triple checked the connections on everything else.

Image

Here's what my clock looks like through the long jumper:
Image
Last edited by spencer on Thu May 17, 2018 1:16 am, edited 1 time in total.

WiFive
Posts: 1683
Joined: Tue Dec 01, 2015 7:35 am

Re: More LAN8720 IP issues

Postby WiFive » Thu May 17, 2018 1:07 am

Your image links are bad or private.

Doit has external pullup on gpio0

spencer
Posts: 5
Joined: Tue May 15, 2018 7:48 pm

Re: More LAN8720 IP issues

Postby spencer » Thu May 17, 2018 1:25 am

WiFive wrote:Your image links are bad or private.

Doit has external pullup on gpio0

Oh thanks, should be fixed.

It should have an external pullup on gpio0 so that it doesn't get stuck in the bootloader on startup.
Last edited by spencer on Thu May 17, 2018 6:52 pm, edited 1 time in total.

spencer
Posts: 5
Joined: Tue May 15, 2018 7:48 pm

Re: More LAN8720 IP issues

Postby spencer » Thu May 17, 2018 6:14 am

WiFive wrote:Doit has external pullup on gpio0

Wow, removing the external pullup on my board and the doit dev board fixed them both. thank you!

I'm confused because espressif's Core Board v2 is working and its schematic shows a 5k pullup on io0 too. Frank Sautter's post (https://sautter.com/blog/ethernet-on-esp32-using-lan8720/) mentions needing an external pullup also...

mikemoy
Posts: 63
Joined: Fri Jan 12, 2018 9:10 pm

Re: More LAN8720 IP issues

Postby mikemoy » Thu May 17, 2018 11:30 am

Just a quick question to confirm. I don't see how you are enabling / disabling the 50mhz clock on the Ethernet board. Are you really following the instructions from https://sautter.com/blog/ethernet-on-es ... g-lan8720/

You board should have a jumper from the OSC en pin to the NC pin on the header, and did you add the resistors as well that he talks about. I do not see them on your board.

WIN_20180517_06_24_27_Pro.jpg
WIN_20180517_06_24_27_Pro.jpg (310.75 KiB) Viewed 172 times


WIN_20180517_06_24_41_Pro.jpg
WIN_20180517_06_24_41_Pro.jpg (269.92 KiB) Viewed 172 times

spencer
Posts: 5
Joined: Tue May 15, 2018 7:48 pm

Re: More LAN8720 IP issues

Postby spencer » Thu May 17, 2018 6:51 pm

Initially I intended to switch power to the module with a transistor instead of toggling the oscillator enable pin so that I didn't have to modify every LAN board, but even with no power supplied to the VCC, io0 would still get pulled down. To remove the variable of booting correctly while troubleshooting the IP problem I was just booting first then plugging in the module or io0 jumper later. (plugging the module in after booting isn't a good idea, by the way. It has the same behavior of saying ETH link up and never getting an IP. )

The pull down on the OSC enable makes sense, but now I'm unsure about the pull up on the OSC output since adding a 4.7k external pull up to io0 seemed to break it. I'll investigate that more.

mikemoy
Posts: 63
Joined: Fri Jan 12, 2018 9:10 pm

Re: More LAN8720 IP issues

Postby mikemoy » Sun May 20, 2018 11:28 pm

I have found some boards present the same issues you talk about. The main problem is sending the 50MHZ signal over these long wires.
I found that doing the following eliminated all my issues.
Hopefully the wires you have come in a ribbon cable style like this, which you peel each one off.

WIN_20180520_18_22_59_Pro.jpg
WIN_20180520_18_22_59_Pro.jpg (218.48 KiB) Viewed 61 times


Peel off 3 as a set. (I.E. do not peel off each one separately, but 3 at one time.)
There are 2 GND pins on the LAN board. Connect the 2 outside wires to both GND pins on the LAN board, and the other ends to GND on the ESP32 board. Use the center wire for the RETCLK.
This will help shield it.

Who is online

Users browsing this forum: No registered users and 1 guest