Schematic review for odd behaviour

Hello everyone,

I am using the W5500 chip in a client project. I lifted the schematic mostly from the Arduino Ethernet shield and also the recommended schematic for the chip. I had a small amount of boards already produced that uses this and the ESP32 as the main controller.

I am currently experiencing a weird hardware issue where the chip itself intermittently communicates with the ESP32 and intermittently communicates with my MQTT server.

I say intermittently because I have tested this on at least 4 different networks and what happens is that the board loses communication/connection and after sometime it comes back. Sometimes the ESP32 is unable to detect the chip, other times, the W5500 is unable to connect out. And while the board is sitting there, connection is mysteriously restored and after sometime, it is lost again.

Now, I am really confused as to why this is happening, I have checked back with my schematic and everything seems to be in order. Maybe I am missing something really simple.

Could I get a second pair of eyes to look over the schematic for the ethernet controller chip is see if everything is in order?
EthernetController.pdf (52.6 KB)

Also, I forgot to include the power sub-system for the device

Either power problem, or clock problem. You power circuit must be able to provide appropriate power level, however it depends on the 5V source - therefore checking with scope is anyway very advisable.
Why did you choose 10 pF capacitors for pierce oscillator? There’s specific methodology on calculating the resistor values, as well as having serial resistor Rd which is missing here (and in all the WIZnet datasheets).

Hello Eugeny,

thank you for your feedback. I have had this happen to me when connected to a bench power supply outputting 5V as needed.

As for the 10pF capacitors, this was pulled from the schematic of the Arduino Ethernet Shield V2. I am using the same crystal oscillator as they are doing and their schematic can be found here:

However, you do bring up a good point because the datasheet has an example circuit that uses 18pF. So that is something that I can test on to see if it makes a difference.

Can you explain more about the serial resistor Rd? If we are referring to Figure 3 in the datasheet, I do have R16 as 1M. Are you referring to R17? If so, I took that as a 0 ohm resistor and for my own application, I just connected it directly with the wire.

Unless stated otherwise, if there’re not explanations, you should assume there’s no guarantee that something will work in your circumstances. Many people just do copy-paste of the circuit diagrams without getting into the details, and the associated risks show when they must not materialize. I do not say this one is wrong, I say if there’s no explanation you must check yourself (or ask an expert).

First. there’s a guide from WIZnet. Second, search through the internet for material on Pierce Oscillator, for example this one.

WIZnet chip may become unresponsive through SPI only in two cases IMHO: it is in reset condition, or its clock is having problems. I have tested (with W5100) that if clock stops and then continues, chip continues its operation. If your chip stops and continues to work with previous settings without configuration, then I would consider clocking problems. Unless there’re problems with SPI in general (bad contact, incorrect SPI controller programming etc). Would be good if you assess the quality of parts you have used (through checking sources).

Ok, so using the app note provided above, I checked and verified that the crystal selection is good.

The only other questionable part are the load capacitors (CL1, CL2). I used 10 pF, the datasheet says 18pF. So I am currently running a test with 18pF caps.

After replacing the caps, the device was able to connect to the network. I am not considering this solved because in the past, the device would connect and run for 2 hours. But after a series of power disconnect events, eventually, the device would fail to connect and comm with the ethernet controller was not possible.

I am going to let it sit and see if it eventually loses connection, and later repeat some other test.

Ensure crystal is grounded and sits as close to respective pins as possible. You circuit diagram shows only 3 pins of the crystal and having two pins number 1.

Hello Eugeny,

Thank you for your feedback. For the crystal, there are 2 pads that are to be grounded. In the footprint, I set this up so that the 2 pads are connected to 1 pin.

The device was working pretty good yesterday with the corrected capacitor values. It was able to work as it should in 3 different locations. I let it sit overnight (turned off) and this morning, I am unable to get the device to function again. No matter what I do, it (ethernet controller) is not able to communicate with the ESP32 nor is it able to communicate with the internet.

Using a scope, I verified that the clock is NOT working correctly. There is no clock signal coming from the crystal.

Here is a pic of my layout in case my layout has issue.

You can see layout here. Yours definitely can be improved (via is a big detriment), but I do not think current one should impact operation to such an extent. Are all components involved of correct value? Some people were soldering 49.9k resistors instead of 49.9 Ohm.
Is board 2-layers only?

I do have the 49.9 ohm resistor where it should be. The board itself is a 4 layer board (in the screenshot, I only show 2 layers that are relevant to that area. I can get a 4 layer screenshot of the entire ethernet circuitry in a little bit

Should I try different feedback resistor values? From the link that you provided, it looks like there is a range of values that work from 500k up to 5M

No, leave this resistor as 1M. Did you perform calculations for the capacitors/Rd given the documentation and crystal datasheet?

Eu uso modulos no meu projeto, ja fiz varias placas e sempre tudo ok, mas em alguns lotes de modulos tenho o mesmo problema, as vezes o esp32 nao reconhece, e desligo e ligo ele varias vezes para reconhecer. Mas sempre substituo o modulo e volta a funcionar.

Power level during power on, reset sequence and timing. And could be in initialization algorithm. You must give more information.

São somente alguns módulos w5500 lite. 99% funcionam, alguns não… Esses que não funcionam, ligo e desligo ele várias vezes até voltar a funcionar.