I need to interface with a 3rd party device, which accepts UDP packets sent to its IP address over an ethernet cable. It’s not a well engineered product, and as a result won’t send a response to ARP requests.
The problem I have is that the W5100s requires at least one ARP response before it will send UDP packets to a new IP address.Because of this I always get a SOCKET_TIMEOUT response when I try to send data.
The instructions for sending commands to the product state that I must send a UDP packet to a specific IP, but doesn’t provide a MAC address alternative which would allow me to circumvent ARP using the SEND_MAC command instead.
Is there any way to avoid the need for ARP when sending a UDP packet to a defined IP address?
I noticed the datasheet says "If previous Destination and current Destination are the same, the ARP Process is skipped. " Is there perhaps a way to trick the W5100s into thinking it’s already sent to the address?
Why not using SEND_MAC which is specifically built for this purpose?
As I said, SEND_MAC appears to need a Hardware MAC address to function, which I do not have.
I think possibly the UDP multicat may work without a MAC address, but nothing in the documentation says this will circumvent ARP.
If you do not have hardware (MAC) address, how do you think UDP will work? It requires this MAC address, and the way to acquire it is ARP request. Thus you either put MAC address manually, must use ARP, or implement some other custom protocol in MAC raw mode.
Can you set up some other device to send ARP responses on behalf of this device?
This contents means the ARP Process is skipped because WIznet Chip has the Mac address through previous communication.
If you operate any network communication,it is impossible without MAC.
It must need MAC address for network communication.
As Eugeny said, you either put MAC address manually, must use ARP, or implement some other custom protocol in MAC raw mode.