ntruchsess / arduino_uip

UIPEthernet: A plugin-replacement of the stock Arduino Ethernet library for ENC28J60 shields and breakout boards. Full support for persistent (streaming) TCP-connections and UDP (Client and Server each), ARP, ICMP, DHCP and DNS. Build around Adam Dunkels uIP Stack. Further developed version can be found on https://github.com/UIPEthernet/UIPEthernet
489 stars 212 forks source link

ENC28J60 stops working after some time - depending on switch connected - TL-SG1008D Revision 3.0 #171

Open torben-boer opened 7 years ago

torben-boer commented 7 years ago

Hello,

I was investigating the often reported behaviour of an arduino which uses an enc28j60 chip and the uip-library not responding after some time. Only network stopped responding, TFT and keyboard were running well. After three weeks of investigation including search for possible memory leeks, updating everything to the newest version, taking another enc28j60 and even another arduino mega 2560 I found the problem: Having connected the components to my TP-Link Switch TL-SG1008D Revision 5.1 next to my personal computer everything was fine. Having it connected to my TL-SG1016D everything was fine. Same with the TL-SG1005D. But, having it connected to my TL-SG1008D Revision 3.0 it stopped working very soon. I could even enforce it by using the ab command from Apache utils. Send 1000 request (10 parallel at a time) I was even able to kill it in a few seconds. Only restarting the arduino or reinit the ethernet component brought it back to life. Now, using the new revision 5.1 in "production environment" as well, everything is fine. The only thing I am still wondering about is the fact that the old combination of an arduino uno with an W5100-shield and the standard arduino ethernet library still works like a charm connected to the same port of the TL-Sg1008D revision 3.1. Do you have any idea what the difference could be and what I should take care of when buying another switch?

Thank you and have great 2017!

samiralavi commented 7 years ago

Hi, I think I had the same problem like your's. My problem was this : when I connected my enc28j60 module to raspberry pi, after some seconds, my module didn't make any response, but when a switch was in between, there wasn't any problem. I searched a lot and finally reached to the problem. The problem is about errata 12 of IC and there was a branch in this project that has fixed it but not in the master branch. I have updated the master branch with this upgrade. You can find it in the pull request I have made with this title : fixing errata 12 on master branch #172