WizNet W5100 code does not work with some switches?!?
ags
Posts: 386
I just lost about 30 hours of my life that I want back!
I'm using the W5100_SPI code and the DHCP code. Very nice work!
The good news is that I now know pretty much exactly how that code works - because I've been staring at it looking for bugs for two days with little sleep. The bad news is that there are no bugs (that I found). The problem I've had turns out to be with a switch that I was using to gain another port on my LAN.
I inserted the Linksys EZXS55W (v2.0) "5-Port Workgroup Switch" between my development machine and my router, and then connected the W5100 to that switch. No link light (just a pulse once approximately every 5 seconds). Could not get DHCP response. Backed down to just brute-force IP assignment, still no luck. Since it's a brand-new board and brand-new code (to me) I assumed coding errors. I tried different cables. I tried different MAC & IP addresses. I modified the code. I made a big mess.
Finally, I just disconnected my development machine from the router and connected the W5100 directly to it. And I was amazed to see my Serial Terminal print out all the things I'd been looking for for almost three sleepless days. Sent DHCP Discovery; Received DHCP Offer; Sent DHCP Request; Received DHCP Grant.
So then I went out and bought a more "modern" switch (a NETGEAR FS105) and inserted it in the exact same topology as the Linksys that didn't work. Now I have my development machine and my W5100 blinking happily away.
Does anyone know what the heck is going on with this? Is there some new protocol (it didn't look like ARP was doing anything with the W5100) or standard that the "old" Linsys doesn't comply with?
I guess the reason I'm interested in understanding what was wrong is that if there are older implementations that don't work, knowing what is going wrong might allow making the W5100 code more robust for additional applications (that, and I want my three days back!).
Anyone have any ideas or interest in this?
Al
I'm using the W5100_SPI code and the DHCP code. Very nice work!
The good news is that I now know pretty much exactly how that code works - because I've been staring at it looking for bugs for two days with little sleep. The bad news is that there are no bugs (that I found). The problem I've had turns out to be with a switch that I was using to gain another port on my LAN.
I inserted the Linksys EZXS55W (v2.0) "5-Port Workgroup Switch" between my development machine and my router, and then connected the W5100 to that switch. No link light (just a pulse once approximately every 5 seconds). Could not get DHCP response. Backed down to just brute-force IP assignment, still no luck. Since it's a brand-new board and brand-new code (to me) I assumed coding errors. I tried different cables. I tried different MAC & IP addresses. I modified the code. I made a big mess.
Finally, I just disconnected my development machine from the router and connected the W5100 directly to it. And I was amazed to see my Serial Terminal print out all the things I'd been looking for for almost three sleepless days. Sent DHCP Discovery; Received DHCP Offer; Sent DHCP Request; Received DHCP Grant.
So then I went out and bought a more "modern" switch (a NETGEAR FS105) and inserted it in the exact same topology as the Linksys that didn't work. Now I have my development machine and my W5100 blinking happily away.
Does anyone know what the heck is going on with this? Is there some new protocol (it didn't look like ARP was doing anything with the W5100) or standard that the "old" Linsys doesn't comply with?
I guess the reason I'm interested in understanding what was wrong is that if there are older implementations that don't work, knowing what is going wrong might allow making the W5100 code more robust for additional applications (that, and I want my three days back!).
Anyone have any ideas or interest in this?
Al
Comments
I wish it were that easy (actually, not - then I'd really be angry at myself for wasting so much time). The (bad) Linksys has an auto MDI/MDIX uplink port, which was connected to my router. My dev machine and the WizNet were connected to two other ports. My dev box worked, the Wiz did not. I even swapped out cables.
Have you tried connecting the Spinneret to the Linksys uplink port just to see if you'll get link?
I don't remember what the device was, but I had something that would not work on my network. But, if I added another switch in between the device and my network it worked fine. I also had something (going back further) that would only work if I put a 10mb hub in between it and the rest of the network (a switch would not work).
Paul
[FONT=Arial,Arial]This is configurable with OPMODE{2:0] pins, which are tied low on the WIZ812MJ module, and even then, it is not possible to disable MDI/MDIX auto detection, only speed and half/full duplex operation. And, I have straight and crossover cables, which I tried, so I think we can rule out MDI/MDIX as being the cause of the problem. It has to be something else specific to the Linksys EZXS55W switch (and perhaps others). Not understanding the specific cause of the problem makes the "and perhaps others" sidenote troublesome for me, as by not understanding why it's not working, that means it is unpredictable when it might not work in other situations - until you're in the middle of them.[/FONT]
Paul