CABOFF bit always 0 on custom board W5100s


I have a custom board with the W5100s chip, and I am having some issues. After powering up and configuring the chip, I read the PHY Status Register (0x003C) as a sanity check, and it always returns 0x06. It does not matter if I plug an ethernet cable into the RJ45 jack or if there is a router on the other end – the CABOFF bit is always ‘0’, and the LNK bit is always ‘0’. I have two identical boards and both exhibit this issue. I have tested the same ethernet cable connected to the same router with other development boards based on W5100 and W5500, and they do not have any issues.

Here is the schematic:

Note that the LNKn and ACTn LEDs are misconfigured.

The controlling MCU pulls RSTn low for 1 ms, then sets it high. After 100 ms, it sets the CLKSEL bit in MR2 to ‘1’ and verifies the CLKSEL bit. Then it reads the PHYSR register and sends the result over serial to a computer. I have checked that all 1V2 and 3V3 voltages are correct.

I found your “Crystal Selection Guide Application Note” and calculated that the gain margin of our xtal is too low (part no.: ABRACON, ABM3-25.000MHz-D2Y-T). I have measured its output and can see that it is producing a good 25 MHz output signal. Could too low gain margin cause the issues I’m seeing? If not, what else can I do to debug this?

Let me know if you need any additional information. Any help is greatly appreciated.

Best regards,

We swapped the xtal for one with sufficient gain margin (H130B-25.000-18-F-1030-EXT-TR), but it did not help. I am running out of ideas here, and would really appreciate some help.