Link LED starts flashing when ethernet cable connected, but no network activity

Ok, will check. One thing that I just thought of is if my 25MHz clock is incorrectly oriented (i.e. ground could be swapped with XO and XI). Do you think that could cause the kind of trouble I’ve witnessed?

Quartz oscillator is non-polarized device, there’s no + or -. Ground on your circuit diagram is third pin of the crystal - its body - if this pin is present in your package.

Ok, interesting update…

While probing with an oscilloscope I checked the crystal on the W5500, and it turns out it was oscillating at around 135MHz! It is a 25MHz crystal, so something went majorly wrong. I used 12pF as the capacitance to ground next to XO and XI, so I wonder if this was too high.

I made a new board with new components, but this time I changed the crystal capacitors to 10pF (I don’t have any smaller) and it seems to be operating at 25MHz now. I also changed the RX line AC coupling capacitors to 6.8nF from 10nF.

The problem is still there, though :unamused:. Interestingly, though, the code stops at a different point. Now I can read back my MAC address by using the registers, but this time it seems like the code loops forever waiting for a reply after sending a broadcast looking for a DHCP server. My switch - to which the RJ45 is attached - does not flash to indicate any activity. This makes me suspect that there’s an issue still with my board and not the software. The blinking LED on the RJ45 socket is still going at ~0.5Hz.

Rooting around further, I realise I used 51R pull-up and pull-down resistors on the TX and RX lines, instead of the reference schematic’s 49R9. I didn’t think this would matter, but I read here that “The individual trace impedance of Tx+/Tx- and Rx+/Rx- must be kept below 50 ohms, and the differential characteristic impedance of the pair must be 100 ohms.”

It’s a long shot, but perhaps swapping out those resistors will fix it…? I don’t have any to hand, unfortunately.

The person in this thread appears to have had the same issue and desoldered some damping resistors - I’ll give that a go.

Withhold hardware modifications until you identify that it is not programming/software issue. As your device can now send DHCP discover packet (which is broadcast one), anyone on the same net will be able to see this packet if it was sent. Thus your next step is so use Wireshark to see if W5500 gives anything onto the network. If yes, then what is it (look into contents of the packet) and troubleshoot why there’s no response; if it does not send anything (while says to its software what it does), then time to look into hardware (and software).

There are no LEDs lighting up on the switch that I connect my board to (the other end of the ethernet cable). This I think indicates no electrical activity on the line. I did check my router to see if there was a DHCP request and there wasn’t, so I think it’s time to experiment with swapping resistors.

1 Like

I am looking to your circuit diagram and to the W5500 reference circuit diagram.
It seems jack-magnetics part you use, RB1-125BAGB1, is having pin 3 towards PHY as common; however in W5500 circuit RCT and TCT are separate, with TCT being pulled up, but RCT not being pulled up.
Are you sure magnetics you use is appropriate for W5500?

The model I use is listed as one of the reference schematics here. See “RJ45 with integrated Transformer and connected CT”.

Hi - just a caution if you aren’t using the designated SS pin on the ATMega micro and have instead chosen another pin to perform that function. If you have done that, make sure the ATMega designated SS pin is set “Output” and set “High”. Otherwise the SPI port doesn’t function in master mode correctly.

From the datasheet:
If SS is configured as an input, it must be held high to ensure Master SPI operation. If the SS pin
is driven low by peripheral circuitry when the SPI is configured as a Master with the SS pin
defined as an input, the SPI system interprets this as another Master selecting the SPI as a
Slave and starting to send data to it.

Update: thanks for all your help. As it turned out, the 25MHz clock I originally used was indeed the issue. The loop must just not have been stable enough with that tiny crystal. I designed a new board using a bigger crystal package, and it worked. Interestingly, the 16MHz crystal I used on my ATmega32U4, which has the same package as my original 25MHz crystal, works fine.

1 Like

Hi, need help. I do not want to create a new topic.

why in the circuit are installed resistors R16 R17 150R?
why connect R16. R17 and R13, R18 ?

w5500-ref-externalmag_20140808.pdf (113,6 КБ)

I ran exactly into the same issue recently - when connecting cable, or powering device on, it flahes ACT LED, turns RX LED on almost steadily, and can not communicate (sometimes can, but unreliably). However switch W5100 is connected to shows zero activity.

I have decided that the causes are:

  1. As you found, a crystal, and quality of its circuitry. Here’s the new crystal selection guide document developed by WIZnet which should help selecting proper crystal and value of caps;
  2. Malfunctioning chip. Sometimes, after replacing caps, I still have board “storming” and keeping resetting its PHY. After chip replacement issue got solved. I think the cause of chip manfunction is that I solder by hand with tip temp @ 380 C, which it too high for even very short soldering cycle (given the small size of the chip and density of its pins). I lowered temp to 310-320 C, and chips seem not dying any more. BTW, I was not able to use 260 C for hand soldering. This temp is appropriate for wave soldering, not for hand soldering.

Hah, good to know that the issue wasn’t just something to do with my circuit! And that crystal selection guide looks useful. Thanks for the update.