Cannot communicate with the W5500 using SPI

I’m working on a project that is using the W5500 chip for communication (not internet connection). I’ve installed the ioLibraryDriver into my project, but those functions don’t seem to do anything. For instance, when I try to set the source IP address (setSIPR(ip)) and then read it, I always get zeros. This happens with every register, I’m assuming it’s because no data is actually being read into the chip.

On the hardware side I am using the Particle BSoM with the M.2 eval board. I’ve posted in particle’s forum but no luck. Particle’s Device OS isn’t built for our specific use case. I’ve started SPI (through particle’s device os) in order to communicate with the W5500 directly. No luck again.

I’m new to TCP connections and the Wiznet API’s. Any advice would be greatly appreciated.

Issue has no relation to TCP or any API. This is hardware or low level software problem. You need oscilloscope with at least two channels (ideally 4) to connect one probe to clock and another probe to each signal and identify what is going on the wires when you write register and read register, and compare to the guidelines in the datasheet.

You can read register with known value VERSIONR, or better watch MISO when sending command to the chip through SPI - it must reply with 0x01, 0x02 and 0x03 to each byte sent, see here. If you do not get these bytes during operation, something is electrically or logically wrong.