Monday, March 21, 2016

Wiznet W5500 returns 255.255.255.255 on Ethernet.localIP(); call

I spent a good day trying to figure out why my W5500 Ethernet module would not work on my Arduino.

W5500 on Arduino

Voltage Divider


I had used a bread board shield to configure a wireless module before and that worked fine.

Then I used the same shield to drive the W5500. The wireless module was driven by a voltage divider to drop the levels suitable for it. The value for R1 was 10K and R2 was 15K.   The module plugs in a socket and next to socket are posts. I used the posts to wire up the Ethernet module.

Using a logic analyser, everything seemed fine, and later I found out it was because I connected the analyser to the 5V side and not the voltage divided side. 

Out of desperation I read the data sheet for the W5500, I knew it ran on 3.3V and that is why I used the divider, but I found out that it could tolerate 5V levels. So I wired it up directly and it worked!!

It appears that the divider did not provide enough current to drive the W5500. You can use level shifters , maybe a lower resistance divider, or directly drive with 5V.

Hope this can save time for somebody else.