Problems with DHCP using W5500

I have been using the W5500 IC for a control board design that connects over wired ethernet to allow communications with a cloud server. I have several units out in the field and started noticing that oftentimes, the control boards have issues getting an IP address via DHCP on the networks it connects to. I’m hoping someone here could take a look at the schematic for this portion of the circuit to confirm that I am not doing something wrong on the hardware side. On the software side, I’m using the Arduino Ethernet library to initialize the chip in DHCP mode with a given MAC address like:

byte mac[] = { 0xA8, 0x61, 0x0A, 0xAF, 0x19, 0x30 };  
Ethernet.init(SS_PIN);
Ethernet.begin(mac, 60000);

The problem is that for some networks and routers, it connects right away (or after a few seconds) and for other networks, it never connects at all, even though the DHCP service is known to be working fine for other computers and devices that attach to it.

What are the network settings/requirements for this chip to be able to successfully connect over DHCP? What are the limitations or known problems?

I have also attached the schematic for the ethernet controller, which is designed to match the Arduino Ethernet shield as closely as possible. If someone could please review it and tell me if there is an issue there, that would be extremely helpful.

Thank you!
Jason O

I do not think circuit diagram is an issue. Analyzing behavior of the W5100 in various DHCP server environments I can tell you some of servers may require additional information in the DCHP packet in addition to naked request. There’re a number of additional DHCP options DHCP server may want you to supply - for example, host name. I advise, to be most compatible and successful, look at the respective RFC and include as much information about W5500 board as possible. Any tiny bit may count towards the successful DHCP address provision.