I’ve created a PCB with the W5500, the schematic is according to the reference schematic.
Now I can access and write all of the registers on the W5500, the Duplex and Speed LEDs work if I set the mode manually and the Crystal seems to be oscillating at 25.0007MHz (though my oscilloscope is not great, so I don’t now if that measurement is accurate). I can see the link pulses from my switch arriving on the TX and RX pins of the W5500, probably due to the AutoMDX feature.
However, I don’t get a link. I’ve poked around the board a bit and I have 1.2V on the TOCAP and 1V2 pins and 3.3V on the respective input pins, but 0V on the Exres pin. What could be the cause for this?
My lines to the RJ45 jack are a bit longer than usual (approx. 2 - 3 cm), but I don’t think that this should bring down the link entirely. I rather feel that something might not be correctly set up or supplied.
Any ideas what might be the reason? Any input is appreciated!
What does it mean? Link LED does not turn on? Switch does not see port connected?
All of those: Switch does not detect device, LED not on, bit in register not set.
Other than that, the PHYCFG register does not have any unexpected contents.
Furthermore I don’t see any link detection pulses from the W5500 in any mode. I think, the PHY is not working, also because of the missing voltage on the resistor…
What does it have exactly when cable is connected and when it is disconnected?
If I use autonegotiation, it has 0xF8, which makes sense to me:
Reset inactive, Autonegotiation all capable, duplex and speed not (yet) set, no Link.
Is there any procedure I have to follow? Right now I am doing the following:
HW Reset, wizchip_init(), setting netinfo, configuring PHY, 300ms pause, PHY reset, 300ms pause
BTW, the Wiz5500io board works with the same cable and switch setup (without anything connected to the SPI, i. e. only automatic configuration by the companion processor)
Link must get up even if chip is not configured. I think the only requirement is no chip reset and no PHY reset conditions.
Thus if you prove cable and switch are not issues, then there’s something wrong with your circuitry: wrong resistor soldered, small mistake in the circuit diagram, wrong pinout used for magjack etc. Sometimes removing damping resistors help; some people put 49.9 kOhm instead of 49.9 Ohm.
I’ll upload my schematics in a minute, maybe you can have a quick look at it; I’ve double and triple checked most of the things (including solder connections), though and the signal from the switch gets through well, there’s just no signal coming from the W5500 pins. The missing voltage on the resistor and at the respective pin on the chip hints at something being wrong with the PHY.
Nevertheless I appreciate all suggestions and will gladly try out all of them!
DMXInterface.pdf (230,7 KB)
This is my schematic, the RJ45 connector footprint has been provided by the manufacturer. The missing 1M resistor on the oscillator has been added as a THT part. Let me know if you see something unusual. Thanks!
In my understanding electrically if device senses the link it turns link LED on. Thus if switch does not light the link LED then there’s nothing from W5500, if W5500 does not light its link LED, then it does not see anything from the switch.
I do not see anything wrong in the circuit. RJ-45 pinout in the circuit is correct, please check the layout to ensure that you connect proper pins on the board level.
Note that W5500 does not support auto-MDIX:
W5500 does not support auto-MDIX feature.
Thus, user should use straight-through cables to connect to other switches or routers and crossover cables to connect to devices such as servers, workstations or another W5500. However, user can use either type of cable to connect to other devices with auto-MDIX enabled, and the interface automatically corrects for any incorrect cabling.
Must work with your switch though, but you may try changing cables and try another switch to see if there will be a difference.
Hi, thanks for checking my design!
The Layout should be okay as well, since pulses get through and furthermore the connections seem to be the way they should be when measuring them.
Maybe I didn’t esplain my problem well:
It should be sufficient if one endpoint, e. g. the switch supports auto-MDX.
The switch, not the W5500, is trying to auto-negotiate using auto-MDX, so it sends Links pulses down both wire pairs. I can only see those pulses on the board when the switch is present.
At the same time, the W5500 apparently ´doesn’t see or understand those pulses (which look good to me) nor does it send anything back on either line, so the switch does not turn its link LED on, which leads me to believe that the PHY just does not work as intended, but I don’t know why that might be.
The Wiz5500io seems to have 1.2V on the ExRes pin, while my design has 0V, other than that, the levels seem okay. Any idea what might cause this difference?
Attached you will find the Link Pulses I see on the lines.
osc.zip (5,2 KB)
I’ve already tried with different cables and endpoints (switch, router, laptop, etc…), but to no avail.
As I said, it seems to generally work with the W5500 when I use the Wiz5500io breakout board from WizNet.
I’ve also used both 33R and 0R as damping resistors, currently I am using the latter, since this seems to have worked for some people and EMV should only be a minor issue while on my desk.
Ok, thank you for summary. You configure PHY using PHYCFGR, and you said it is F8. What are the states of PMODE wires? What resistors are soldered in?
Reading the datasheet:
When W5500 is reset by POR or RSTn PIN, PHY operation mode is configured with PMODE[2:0] PINs by default. After POR or RSTn reset, user can re-configure PHY operation mode with OPMDC[2:0]. If user wants to re-configure with PMDC[2:0], it should reset PHY by setting the RST bit to ‘0’ after the user configures this bit as ‘1’ and OPMDC[2:0] .
I read it as that you must perform two writes, first one setting the PHYCFGR[5:3], and second with PHYCFGR reset (and 5:3 set the same way as in previous write) to reset PHY.
A while ago, I had the mode wires in Autonegotiation mode, but soldered them to 10M half duplex since I thought this would work. Didn’t help.
But the W5500 does accept the reconfiguration, which is performed according to the datasheet: After configuring and then resetting the PHY with the API functions, the Duplex and Speed LED light up accordingly and the register reflects the new values. The configuration does not seem to make any difference for the outcome though. The PHYCFG register indicates that the PHY is turned on, but there never is any reaction on the lines…
I am out of ideas, only guessing remains. Maybe you can post picture of the board? By the way, pin 8 of the magjack should be grounded.
Same here, all I seem to know that something seems to have brought down the PHY. I’m not sure whether it’s broken, though I don’t know why that would be, but I’ve already replaced it once and I am not keen on putting in a third chip since they are not really cheap and I suppose it might harm the board, too.
I will, as soon as I am home. Or would a rendering also be sufficient?
True! I’ve used a resistor leg to solder it to the case pins a few weeks ago, but that did not make a difference. Once I figure out what the problem is here, I’ll probably make a new version where I adress the minor issues like this, too
I would say not much. There’re layout guidelines, but bad layout must not cause no link. It may work badly, but not fail completely. Exactly as you said in your original post.
Then it is not a chip, but something else. This is good news…
Check L1. Is it in place? What is the voltage at 3V3A?
L1 is indeed in place and the voltage is 3.3V. I have used this part. Is it suitable? But I think that on a stable supply it should not make a huge difference.
EDIT: I think the impedance at 100MHz might be a bit to high
Should be suitable one. You can test just shorting it (shorting 3V3D and 3V3A). If link will not go up, it is not the ferrite bead.
I’ve tried bridging the ferrite bead as you suggested, but it didn not make a difference.
Would it be possible that while using my oscilloscope probe I slipped and shorted something that wasn’t supposed to be shorted? Usually, most chips can handle that, afaik…
And other than Exres1, all levels (3.3V, 1.2V, ToCap, VBG) are okay…
Measured voltage on the RSET_BG pin of the W5100. It has 12.3 kOhm 1% resistor connected to it, I guess it serves the same purpose as EXRES1 for W5500. The voltage is 1.2V. But when I touch resistor with both probes to measure voltage on it - chip goes crazy putting link down, or turning the RX LED on and ACT LED constantly flashing.
Please check that you really installed 12.4 kOhm 1% resistor (or several resistors in series like I do - 12k 1% + 300 Ohm 1%), and that it is not shorted to ground.
Hi, I’ve done that already! Resistance from EXRES1 pin to GND is 12.4kOhms +/- 100 Ohms (I’ve usedthe respective resistor, this one specifically), which is below 1%. Anyways, I think the voltage that I see there should be way higher than 0V, rather around 1.2V as you’ve mentioned.
Is there any way to verify whether the PHY section of the W5500 is broken?