I found few technical inaccuracies in the WizNet docs. What made it hard was the poor translation to English. This is increasingly a problem. It is truly amazing to me that so many Asian companies are too cheap to do this right - gosh, it can’t be that expensive as compared to the development engineering costs for the product. I see it too in big-company products.
But I got it all working well, and it’s reliable, and I very much like the four-socket interface and the small amount of code needed on my microprocessor side to do all the application protocols. This comes from having TCP/IP/UDP/ARP all off-loaded, plus a socket driver.
the w5100 or w5300? the w5300 has 8 sockets. in a couple hours i’ll get to spend some more time on it. late last night i encountered an issue with my makefile not building one of my dependencies as needed on my x86_64 system. works perfectly on my 32bit.
I used the 812MJ plug and play module. Onboard that is a '5100.
the socket RAM buffers are on the module and thus don’t take RAM from the host micro.
My implemention is to allocate RAM in the Micro’s memory only when an IP packet arrives, then release that RAM when processing is done. And vice-versa for outgoing, e.g., HTTP server responses. The WizNet’s RAM is used for arriving and departing packets, if you will.
the w5300 seems to be rather unstable if you start sending packets immediately after the HW reset is finished and before the link is fully up. after a few packets, udp forgets how to arp and starts doing immediate arp timeouts. i.e. ARPto is about 3/4 of a second regardless of what RTR and RCR are set to. doing a socket restart doesn’t work, doing a software reset doesn’t fix it, you have to do a HW reset. currently i’m waiting just shy of three seconds after HW reset & link in order to get a rock solid packet sending.
Had a similar issue, my timeout after reset is 3 seconds as well.
Hmm, +1 for doing it yourself instead of using a 3rd party module then I suppose…
never had issues with the W5100 based 812MJ modules.
i redid my logic, i do a while(!link up) via digital input. if i wait until then to send my first packet, i can hammer as hard as i want. if you send packets prior to this, then the w5300 is very likely to forget how to do ARP.