I’m doing a development based on the W5500 for industrial environment, which is an update of the same design based on the W5100. The previous board based on the W5100 has been running 24/7 for more than two years without any incident, while the prototype of the new version did not get it to work properly for more than a week or week and a half, and we are nearing the deadline of the design phase.
Hardware development is based on the W5500 datasheet and application note. We have developed four different versions of prototypes and several copies of each version, the last of them is almost a clone of the schematic of the W5500 Ethernet Shield v1.1, none of them works well. The same tests with chinese modules, the official wiznet shield, and with the Arduino Ethernet Shield 2 work correctly. The control is done with an ATmega2560 and the Arduino Ethernet v2.0.0 library. The application opens two TCP ports as two servers, and a total of two connections to each port are opened (for some reason five sockets are occupied).
The faults are different for each board and not always the same. Each prototype board fails differently, even those that are the same PCB. I am finding several strange bugs, which occur in an indeterminate period from the start of the program, which can be from minutes to more than a week:
- Closure of one of the open sockets, with the ability to reopen them.
- Closure of all open sockets, cannot be reopened without reset.
- Loss of communication with the W5500, requires reset.
- Random ethernet data corruption, with different incidence.
- Link failure
- IP badly assigned, (one is assigned and reads a totally different one).
- Always indicates the cable is not connected, when it is connected and the communication is satisfactory.
- Combinations of the above
In my system there are no other SPI devices that can affect communication or other tasks in the firmware. There are also no IP or MAC conflicts.
I am not able to isolate the source of the problem, because things that work for some boards do not work for others, there being no common nexus and none of the faults correlate with the assembly of the prototype. None of this has happened to me before when working with the version that used the W5100 and we don’t understand what’s at issue. The manufacture of these prototypes is done manually and I believe that due to ESD or inadequate temperature curves the chips fail. But I’m also not able to locate what the fault is, and I need to make sure that in the production phase everything works.
I find it very rare that none of my prototypes have worked as long as several third-party boards based on the same chip did so in the same test environment. I believe that all our faults should be solved by PCBA manufacturing, but information on this is very welcome.
If you need any extra information, such as our schematic or PCB, ask me what you need and I will provide it to you without problem.