Problem writing in the Sn_DIPR registers


I’m trying to connect as a client to a server with W5200.

I use a Ethernet Shield V2.0 from and the chip version that i can read in 0x001F register is 0x03.

I can initialize W5200 successfully (with a private ip address and i can ping from my pc to W5200 successfully), and I can open the socket properly and then the socket is in the INIT state.
Then, when I try to write the server’s address in the SnDIPR register, the W5200 does not agree, and when I read these registers to verify that the server ip is entered correctly, tells me that the IP is

I am quite sure that the registers are written correctly through SPI. and i don´t know why when I read them again the W5200 responds with 0

the same is true with the Sn_DPORT register
What’s the matter?

Hi, jbc.

Try one more after connection established.

DIPR and DPORT register value are not changed immediately.
They are changed after connection established.

Best regards.

thank you very much for the reply.

I solved the problem. I did two things:

1.- write the DIPR and DPORT registers before opening the socket (I’ve read in another post).
2.- read those registers for verificartion after conexion stablished.

I think this information should be updated in the datasheet for futures issues.