PHY failure on power-up with cape connected

Hi,

first of all: I have seen the thread that discusses the PHY-failure which normally happens very, very rarely.

Now my problem is: I have a relatively complex cape connected to my BeagleBone Black/Green. With this cape I see this PHY hardware initialisation failure quite often. It happens randomly but about once per four power-ups. I can bring back the PHY by pressing the reset-button, but in some (seldom) cases I have to reset the board up to 6 times. Resetting the AM3358 by software (by writing 0x00000002 to address 0x44E00F00) does not solve the problem. Here the SYS_RESETn should be pulled to LOW too, but it seems the time is not long enough for the PHY.

This behaviour is reproducible caused by my own cape: I tested it with several BeagleBone Black and Green, they all show this behaviour when connected to my cape but work properly when nothing is connected or when some other capes are plugged. During design of the cape I followed strictly the rules listed at http://elinux.org/Beagleboard:BeagleBoneBlack#Expansion_Header_Pin_Usage . And the problem appears in both cases, when the board us USB-powered only and when an external power supply is connected.

So my question: what could cause such a behaviour? What is the PHY sensisitve for?

I know, my information regarding the cape are quite inaccurate (because I can’t give many details easily here), but any idea and any rough guess is welcome!

Paul

Without information about your cape, it is going to be very difficult to help you. Without this information, can you give us an oscilloscope image of the 5v, 3v3 and sys_reset lines during power up? My guess is your cape is loading/delaying one or more of these lines and that is causing the behavior you are seeing. Compare the ramp rate of these lines with and without your cape installed. If you are affecting these line, then I suggest you use your own switching regulator powered directly from the 5V rail, but enabled from the 3v3 line. Also, you might want to buffer the sys_reset line (enabled with the 3v3 line) so as not to load that line. That is the best I can do without knowing more about your cape.

Regards,
John