W5500 ARP Table

I use the W5500 to connect a embedded device with a PC application using UDP protocol. I’m using a switch to connect the PC and the embedded device to the same IP network.

The connection works fine. But if I disconnect this PC and connect other PC with the same IP address (MAC is different), the connect doen’t work well anymore.

The problem is that W5500 sends the UDP packets to the old MAC address although this MAC is not available anymore (the old PC is disconnected from the switch). The W5500 doesn’t send a new ARP request.

What is the time live of the ARP entries in the ARP table of the W5500?. Can I force this ARP table to be erased?

I suspect that if you close UDP socket, and then reopen it, W5500 will send new ARP request. In other words, you should restart your application driving W5500 socket. Try it and let us know.


The w5500 has a force ARP mode.
It is a mode to transmit ARP request every packet transmission.
You can enable/disable Force ARP mode using the MR register.
I recommend a disable it after updating the MAC address.


1 Like

The problem is that I’m receiving data from the remote system and I don’t know when the remote system is not receiving data. I cannot close de UDP socket periodically.

I will try to activate this bit each 15 seconds, send a packet and then deactivate it again.

Then in general your protocol is not reliable, and there’s no guarantee that packet will reach the server. Consider using TCP, or make PC application sending a kind of ACK UDP packet, this way your embedded device will know that PC received data (and if not, retry, then force ARP, then reopen socket).

Yes, you are right. I need to redesign the protocol.

This work for me. Each 15 seconds, before sending an UDP packet, I activate bit FARP in MR register. After it, I send the UDP packet and then deactivate bit FARP. It is not necessary to close the UDP socket.

Now, using WireShark, I can see an ARP request every 15 seconds.

Glad to hear that.
If you have any more problem, just let me know.
Have a nice day, thank you