This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3559 - KSZ9031 Temperature Issue

Has anyone experienced temperature issues with a KSZ9031RNX connected the RGMII interface on the AM3559?

At ambient temp (~21Deg) the Gigabit phy (at 100MBps) connects fine, pings both ways, but as the temperature rises on the thermal via's to ~40DegC the communications drops out, and link light starts flashing at approx 1second interval. Cooling the IC down with coolant spray, and it recovers, only to rise to 40DegC & fail again.

Plugging into a PC directly, when still warm, results in a Auto Negotiated connection at 10Mbps, Which again fails when(if) it reaches ~40DegC (self heating is less at 10MBps).

The Micrel Data sheet for the KSZ9031 states in text that the default delay of 1.2ns for the Rclk line. But it also states the default clock skew register  value is 0x01EF but get 0x3DEF ? Is this significant or just make sure it writes back the same value to the Reserved Bits?

Timing Analysis of board is below:- (I was expecting it to work with the defaults for RGMII 2.0)

[Signal Tracks are 0.2mm wide, 0.2mm from Ground Plane 1oz copper on FR4]

Iss B board Track Lengths delay diff
THOU meters mm ps/mm ps ps
Rclk 858 0.0217932 21.7932 5.79 126.182628 41.325546
Rcntl 762 0.0193548 19.3548 5.79 112.064292 27.20721
RD0 691 0.0175514 17.5514 5.79 101.622606 16.765524
RD1 628 0.0159512 15.9512 5.79 92.357448 7.500366
Rd2 601 0.0152654 15.2654 5.79 88.386666 3.529584
Rd3 577 0.0146558 14.6558 5.79 84.857082 0
Tclk 609 0.0154686 15.4686 5.79 89.563194 4.706112
Tcntl 802 0.0203708 20.3708 5.79 117.946932 33.08985
TD0 1043 0.0264922 26.4922 5.79 153.389838 68.532756
TD1 874 0.0221996 22.1996 5.79 128.535684 43.678602
TD2 805 0.020447 20.447 5.79 118.38813 33.531048
TD3 577 0.0146558 14.6558 5.79 84.857082 0
Rclk 858 0.0217932 21.7932 5.79 126.182628 41.325546
Rcntl 762 0.0193548 19.3548 5.79 112.064292 27.20721
RD0 691 0.0175514 17.5514 5.79 101.622606 16.765524
RD1 628 0.0159512 15.9512 5.79 92.357448 7.500366
Rd2 601 0.0152654 15.2654 5.79 88.386666 3.529584
Rd3 577 0.0146558 14.6558 5.79 84.857082 0
Tclk 609 0.0154686 15.4686 5.79 89.563194 4.706112
Tcntl 802 0.0203708 20.3708 5.79 117.946932 33.08985
TD0 1043 0.0264922 26.4922 5.79 153.389838 68.532756
TD1 874 0.0221996 22.1996 5.79 128.535684 43.678602
TD2 805 0.020447 20.447 5.79 118.38813 33.531048
TD3 577 0.0146558 14.6558 5.79 84.857082 0
  • Hi Oliver,
     
    Have you checked Errata Advisory 1.0.10? The AM335X needs an external delay of 1.8ns +/- 300ps to be provided on both the RCLK and TCLK lines for RGMII mode.
  • Temperature changes could easily affect already small timing margins. Since the Micrel PHY allows for delay adjustments to both TX and RX, the easiest way to be sure on the timing it to just scope the interface and adjust these as needed.

  • Hi Oliver,

    Were you able to get the KSZ9031RNX Ethernet PHY working with the AM335x processor?

    It will be good to know as we are also planning to use the same PHY in our design.

    Regards,

    Shareef

  • Hi Oliver,

    Were you able to get the KSZ9031RNX Ethernet PHY working with the AM335x processor?

    we are facing the same issue and kindly ask if you get any progress.

    regards, Mike
  • Yes its working now - we changed our design from a reference design using a KSZ9021 to the KSZ9031. The Linux Driver needs slightly tweaking to recognize it during start up, but as default it does not need any delay in the RCLK and TCLK lines.

    The biggest issue was the ISet resistor should be a 12K1 resistor - the KSZ9021 uses a ~5K resistor and it makes all the difference!

    You can also adjust the timings + or - in the device making pcb layout easier, although we kept all the tracks the same length as differential pairs and have not had any issues.