We designed a device which uses a W5500 for its network capabilities (basically it’s a very easy protocol which is transported via TCP). The communication and protocol usually work flawlessly, even for days or weeks with the exception of one moment - the startup.
In some cases - it’s unreproducible at the moment - after power is applied to the device, the W5500 cannot be pinged. The LINK LED comes up as expected and the ACT LED shows some activity which could be related to the ping but the host (the computer which pings the W5500) doesn’t get a response. It shows that the interface is up and running, but no response. What I do during startup is:
- Bring RESET line low for 5ms
- Bring RESET line high, wait for 5ms
- Execute a software reset through ctlwizchip
- Setup MAC and IP, then wait a little (100ms)
Usually from now on, the device will be accessible through the network interface except for some rare cases where it simply appears not to respond.
Now I was wondering if there was any register I could read to determine if a real connection could be made or if there has been some issue. If I read the network info after setup, it is correct in all cases, even if I cannot ping the IC.
I have a feeling that this is somehow related through capacitors being charged/uncharged during startup. The power supply has a low ripple. The reset of the IC is triggered after the mein microcontroller has come out of POR (and this is only after the power supply has stabilized above 3.16V at which time it already is at 3.3V). So I see no direct problem with the reset sequence.
Any idea what I could look at?