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.

DP83867CR: PHY will die after 6+, 10+ hours running

Part Number: DP83867CR
Other Parts Discussed in Thread: AM3352

Hi experts,

I have a boards designed with 2 DP83867CRRGZ Gigabit PHY, and they are all connected with TI AM3352.

- One is connected with a 100M net work, it always worked well;

- The other one is connected with Gigabit network, it will work well like 5 hours, 10 hours, or even 20 hours, but some how it will stop working. I measured two boards:

For #1, 

- When network is down, RJ45 link LED is on and activity LED is off

- 1.0V, 2.5V, 3.3V and Bias (1V) are all stable

- RXCLK is always low, output of PHY and input of proc.

- RXCTRL is always low.

- GTXCLK is 25MHz, this is driven from MAC to PHY.

- TXCTRL is a 6us pulse every about 1 second.

- CLKOUT of test point is a stable 25MHz.

For #2 board

- When network is down, both RJ45 Link LED is on and RJ45 ACT led is blinking.

- 2.5V, 1.0V, 3.3V and Bias are all clean.

- RXCLK is 125MHz, from PHY to MAC

- RXCTL is 1us width pulse, every less than 1 second

- TXCLK is 25Mhz, MAC to PHY.

- TXCTL is always low,

- CLKOUT is a stable 25MHz.

Meanwhile in Linux of AM3352, MDC/MDIO bus can't detect this phy, all the registers read back from these 2 boards are "FF", while the other two devices in the same MDC/MDIO bus are working well.

Any suggestion?

Thanks

Chris

  • Hi Chris,

    Kindly confirm the following for further debug :

    1. Board #1 and board #2 are same boards (same schematics, layout and components).

    2. Both of these boards worked fine after power up and only after some hours the packet transfer stops.

    3. Can you make a block diagram of test setup? Is packet transfer ok/not ok the test?

    4. Is there a difference in the input clock source (crystal/external clock) of the phy used in 100M and phy used in 1G mode?

    5. For board #2, can you measure frequency difference between clkout 25MHz of phy and gtxclk 25MHZ of MAC?

    6. For board #2, are rx_d0, rx_d1,rx_d2 and rx_d3 lines also toggling?

    --

    Regards,

    Vikram

  • Hi Vikram,

    Thanks for your response.

    For 1/, yes, they are two boards in the same batch.

    For 2/, yes, some boards can even work for 16 hours or 20 hours.

    For 3. all the packets are transferred well at the very beginning, I draw a diagram below.

    For 4/, no difference, both boards source external oscillator.

    For 5/, what kind of difference do you want to me to measure, is there a fixed phase difference between these two clcok, I can only measure with oscilloscope.

    For 6./, I can make measurement and update tomorrow.

    There are two DP83867 and a switch connected with the same MDC/MDIO bus,

    - DP83867-1 is connected with public Gigabit network, and and it would be down after 6 hours or 10 hours.

    - DP83867-2 is connected with 100M network, at least I didn't find it down during days of testing.

    - The switch is also working well.

    Today I wrote some scripts inside linux of AM3352, so it will keep reading registers of DP83867-1, I'm using register 0x0003, it must be 0xA231 per datasheet page59, while in 10000 times reading, I found there would be about 30 times with value like 0x0110, or others, I'm one hundred percent of sure that the MDC/MDIO bus is pretty clean, no signal integrity problem, MDC is 1MHz, and MDIO will change in the falling edge of MDC.

    So my question is, given a device under MDC/MDIO bus, should I read 0xA231 all the times? Is it driver related issue?

    Thanks

    Chris

  • Hi Chris,

    For 5 : Lets measure the frequency difference between the clocks that is how much is the ppm differnece between them?

    For 6 : What is your observation?

    Regarding MDC/MDIO : Yes it should read correct value every time. What is the phy address of 867-1? Can you share the straps connected to pins to make this phy address possible? Also is MDC clock running continuously or does it stop after every read?

    Also do you think that there can be glitches in 25MHz reference clock to the phy (turning on and off) because of some system level loop? May be you can look at the external oscillator's schematic and see if there is any signal which can potentially turn-off the clock to phy.

    Also when this problem of phy ID or data loss occurs, does toggling resetn or writting register 0x001F=8000 recovers the issue?

    --

    Regards,

    Vikram