I've got a circuit board with the ENC28J60 and a mega644 talking to each other through a buffer chip due to the voltage differential (5V mega -> 3.3V ethernet).
The board works great and returns pings as I expect. Trouble is, the ethernet chip decides to shut down after 10 to 60 minutes (pretty random). I have a few identical boards and they all share this problem. I can solve this by resetting the ENC28J60 via the mega644 bringing its reset line high every 30 seconds or so which is not ideal but does keep things going but I'd really like to find out what's going on. My mega644 keeps working just fine and continues to do other non-related things no problem.
I thought it might be my 3.3V regulator which feeds the Ethernet chip so I scoped it during a test ping session and there were no fluctuations outside a 50mV window when the Ethernet chip stopped working. I also have a big 470uF electrolytic next to the ethernet chip along with a 100nF as well. Everything looks stable.
All the components relating to the ethernet chip appear to match the spec on its datasheet (49.9 ohm +/- 1%, etc...)
I'm thinking about adding a serial interface to my mega644 and adding commands to query the ethernet chip about what's going on but that will take a lot of code and might not even help. Just looking for some other tests to try.