Help with debugging 10/100/1000Base-T PHY problem

Hi all,

I have a design with a tri-speed Base-T PHY, which exhibits some weird behaviour. For some reason sometimes the PHY doesn't establish the link with another PHY (typically in a PC) after the auto-negotiation. Some of my boards almost never fail, while others fail much more frequently.

I was wondering how people debug this kind of problems. Is there anything I can look up with a basic 500 MHz scope? Is there a low level protocol tester I could rent?

Thanks, /Mikhail

Reply to
Loading thread data ...

An obvious first step would be to read the PHY's status registers through MDIO.

You need to check whether the capabilities you are advertising are compatible with the PHY at the other side and whether the other side is negotiating at all. You also need to check you are setting your PHY to operate in accordance with the AN resolution function. Check that speed and full/half-duplex have been set appropriately after AN completes.

Full/half-duplex needs the MAC to be configured properly.


Reply to

Hi Arthur,

Thank you for your help. I have two scenarios. In one I read all ones from all the MDIO registers, so in other words the chip seems to be in some bad state, and nothing can be done to revive it through software. This condition seems to depend on power-up and it could be a separate problem. In another scenario I can read/write MDIO registers fine however the link is not established. I know that the problem is on my side because a) the same card might work/not work without changing anything on the other side, and b) I can take another of my cards from the same batch and it will work...


Reply to

If you are reading all ones, MDIO is not connected at all. The serial MDIO line is pulled high by default.

If you can read the status registers then you should have enough information to discover why you have a problem. First compare your advertised ability with your link partners ability. This will tell you if there is a compatible mode of operation. If there is not then the link will not come up. If there is check you are configuring to match it. For example if your link partner is requesting 100Meg operation make sure you are not operating at 1G.

Reply to
Marris Forums website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.