I am trying to get a W5500 running with your stack. I can see on Wireshark that a DHCP lease request goes out successfully. It all looks like it should etc. The issue is that my code gets stuck in the function “sendto”. In particular…
tmp = getSn_IR(sn); Always returns 0, hence the stuck in the loop
if(tmp & Sn_IR_SENDOK)
//else if(tmp & Sn_IR_TIMEOUT) return SOCKERR_TIMEOUT;
else if(tmp & Sn_IR_TIMEOUT)
//M20150409 : Fixed the lost of sign bits by type casting.
//len = (uint16_t)SOCKERR_TIMEOUT;
#if WIZCHIP < 5500 //M20150401 : for WIZCHIP Errata #4, #5 (ARP errata)
From what I can tell it never sees the packet finish sending so keeps on waiting. I think its an interrupt issue. I think that the IMR bits are never set/cleared in the code. I’m new to Wiznet but its my understanding that they must be in order to see the interrupt. Though if that’s the case I don’t understand how the code works.
Also, I don’t think the INT pin on the W5500 is being used? It certainly doesn’t do anything in my code. Is this an error?