First, I am using the W5200 with a PIC24FJ256GB210 and the HW TCPIP Library Driver ver.1.2 with the microchip_solutions_v2013-06-15. I am trying the setup a class one EIP connection which requires opening and closing a UDP socket at port 2222. I am getting Gratuitous ARPs whenever my device tries to send a UDP message. From what I have read, the UDP needs to send out an ARP to know where it is going, I don’t believe this is happening correctly. I was able to get it working by inputing the MAC of my computer directly into the registers then using the MAC_SEND version. However, since I can’t hardcode the desination MAC for other computers this is not a viable solution. I cannot find where the W5200_UDP.c version assembles the header information compared to the Microchip stack version in UDP.c UDPFlush(). The W5200 version of UDPFlush() only puts them in the Sn_DIPR0 reg, it doesn’t add it to the TX buffer.
I will attach the wireshark trace to help clarify.
Thanks in advance for your help.
Firmware Engineer for Powell Industries
EIPARPProblem.rar (1.18 KB)