Custom w5500 and esp board shows no Phy link

Hi guys I am developing a custom board with ESP 32 C6 and w5500 I have use the reference schematics on wizent''s documentation page with internal transformer type I am using a Chinese alternative for the transformer, the hr911105a which seems to be quite popular on w5500 modules but right now I am unable to get the physical LINK UP whenever I read the register phycfgr the link status shows link down what could be the issue I have tried several things, I changing the termination resistors on the differential lines my several damping resistors used software reset and hardware reset still no luck.

The schematics please.
And the testing sketch please.

What does that mean ?

I started with a w5500 module and got that working perfectly before i started with a custom board.

I did the same as well. it works flawlessly but the chip on my board doesnt read the phy side


this is the schematics

i dont think he sketch matters that much because the actled and linkled doesnt respond as well but here it is
check_5500.ino (7.3 KB)

Ok so i compared it to what i have and there is quite a few differences some if which probably have significant impact.

I will list them in the order of what i think is most important.

  • Pin 10 (Expres1)on the w5500 is not listed in your schematic. It needs to have a 12.4K 1% resistor to GND on it.
  • The capacitor rail AVDD (C19 - C23) uses 0.1uF Capacitors, i use 1uF. I can't look at the PCB but they need to be close to the pins that they are actually connected too. You can't just shove them to a corner (don't know if you did or not ?)
  • I have !INT & !RST pullup up through 10K and use !INT to soft-reset the board.
  • 82R as dampening resistors looks like a lot. I used 33R
  • The pulldown resistors for RXN & RXP should be 82R (not 49R) btw 49R i haven't found i use 51R for 49R spec.
  • My Crystal only has 2 legs, and the value is missing. Should be 25MHz, i guess it probably is.

Those are the differences i found. I looked at the design recommendations and compared with the Module i had (which has no dampening resistors at all) and then came to some kind of conclusion about what to do.

Thank you so much for the review. I appreciate it a lot. But i forgot to mention it earlier the following,

  • I am using 82 Ohms pull down resitors on RX lines after taking a look at w5500 module schematics.
  • I do have a 12.4k resitor its on the left most part of the schematics.
  • I tried 0 ohms, 33 Ohms and finally 82 Ohms daming resistors. Right now they are 0 Ohms.
  • On the board i have soldered INT and RST to VDD(3v3) through a 10k resisitor.
  • Yes, I am using a smd crystal with a value of 25Mhz and 10 ppm with 10pf capacitence.
  • The capacitor rail in schematics is just for reading ease, but on the PCB they are actually connected and are close to the pins, but yes i have used 100nF caps. I will try with 1uF caps.

Can you please elaborate more on soft reset and i would truly appreciate if you could share some snippet for the same.

Basically i pulldown !INT (!RST has it's own 10K pullup) momentarily after i power up the whole thing (being an ESP32 and the W5500)

  pinMode(W5500_RST_PORT, OUTPUT);
  digitalWrite(W5500_RST_PORT, LOW);
  delayMicroseconds(500);
  digitalWrite(W5500_RST_PORT, HIGH);
  delay(2);

I had issues during power-up, and this fixed them for me.

Thankyou so much. Apart from this, do you have any other suggestions for me?

Not really, is it still not working ? Picture of the PCB ? screenshot of the layout.
If it works with the module, it should work like this.

Hmm other than the power traces to the ESP32 are really quite thin, i can't see anything obvious.
U5 is a 7805 ? You do not present me with the power supply details. What are you using for Vin ? At 12v you should find it will need to dissipate quite a lot of heat. I am assuming you are using appropriate capacitors.
What did you use to create the Gerbers / Schematic, is it Kicad ?

Can you verify the physical rotation of the W5500 using a picture of the actual board.
(i had to fiddle and verify a bit to get it right. Mine is also on the back, and the footprint's rotation was not the same as what the manufacturer was using)

As for the ESP32 programmatic side, which pins are you using for the SPI ? Probably the same you had working with the module i suppose.

Also just to confirm again. You have 2 pulkups for both !RST & !INT and !INT is linked to the ESP to provide the option of a soft-reset.

Edite: Also you did run the DRC?

I think the crystal connections are wrong!
Pin 2 & 4 should be connected to GND
Pin 1 & 3 are the actual pins of the crystal that should be connected to XO,XI

1 Like

You may be correct ! Without the actual part we can not be sure. It anyway looks strange because the 2 pins that not connected to the crystal are connected to the housing. and should both be connected to GND. If you can connect 3.3v on one side that is anyway no good.
I have no experience with SMD crystals bu t from here It does show that pins 1 & 3 are the actual Crystal pins. That would be an easy rotation to correct, but the 3.3v trace should be cut as well or you will have a short circuit.

The Crystal was the culprit guys. Thank you so much. I took a break and redid the design from scratch and this time i took extra precaution with everything. Most of the design turned out to be the same just the crystal was messed up. I still dont get it how the SPI communication was working since it shares the clock with the crsytal cirucut according to the datasheet. Since it was working it never occured to me that it could be the crystal. Thanks again guys, you have been a great help!!

1 Like

As a slave wouldn't it just share the clock with whatever the master is providing on SCLK ?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.