|This is what real work looks like|
In order to debug I used the following:
- ICSP Programmer. I use the UsbTinyISP programmer from Adafruit.
- Network Serial Port. I use a BrainBox ES246 network serial adapter so I can access the serial console while on Wifi since I like to debug while lying in bed.
- Current Limiting Bench Power supply
- Fluke 87v DMM
- Rigol Oscilloscope
Before I could even get started debugging, I needed to create a custom boards.txt and pins_arduino.h files so the Arduino programming environment would know how to map things like the friendly "LED_BUILTIN" to the actual I/O register.
To keep thing simple, I started with the timeless "Led Blink" sketch.Wiznet W5100 Debug
|Programmer, Serial Port, and Ethernet Hooked Up|
I discovered a short on the 1.8V LDO output of the W5100. After some rework with the hot air and some solder wick I managed to repair the short. It looks like I made the pads extend under the device a little too far making it very difficult to clear a solder bridge under the IC.
After that, it was smooth sailing...well not exactly. The 3.3v and 1.8Vdd and 18.Vda rails all were outputting the correct voltage, and much to my surprise the Link and Activity lights on the RJ45 mag jack were lit, so at least the chip was alive.
|Oscilloscope and Hot Air Rework Station|
I probed around the SPI bus a bit, I discovered the SlaveSlect signal was not toggling. It turned out that the SlaveSlect pin was hard coded in the Arduino Ethernet library. Having it configured with a header or constructor would have been much better. Nevertheless, another quick hack and the Arduino Ethernet tutorial I was using was fully operational. Hello World!