I am using an Ethernet Shield V2 with a Mega 2560 board. I am trying to send UDP messages without using an ARP request, so I extended the Arduino library to set the destination MAC and use the SEND_MAC command on the W5500 chip instead of SEND.
It appears this works sometimes and is dependent on initial power up. I am wondering if this command is somehow faulty. It appears that when I get a “bad” power up, it consistently fails to transmit. I am not seeing any reported errors in this state – per the code, the SEND_OK flag is set in the socket interrupt register without SEND_TIMEOUT. But when I get a “good” power up, I consistently do not see an issue.
I have tried using a hard reset of the chip and processor, and I did not see this remedy the issue.