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.

DP83867IR: DP83867 1000-BASETX Configuration

Part Number: DP83867IR

Hi,

  I am trying to perform  ethernet loopback test. That too near end loopback (digital loopback) for RGMII(1G).

From one of your document "DP83867 Troubleshooting Guide" I found the following steps to configure the PHY registers:

"Digital loopback is available for all operational speeds (10/100/1000). To enable Digital loopback for
1000BASE-T operation in RGMII mode, use the following sequence of register writes:
1. Write register 0x001F to 0x8000 to apply a software reset.
2. Write register 0x0000 to 0x0140 to force 1000BASE-T operation.
3. Write register 0x0032 to 0x00D3 to enable RGMII.
4. Write register 0x0016 to 0x0004 to enable digital loopback.
5. Write register 0x001F to 0x4000 to apply a software restart."

But the problem is I am unable to configure the register 0x001F with the value 0x8000 (meant for software reset).

And if I skip the first step(software reset) and configure the rest all register the I am getting a constant value on Rxd (RGMII) lines as "1100".

i.e Rxd(0) = 0

    Rxd(1) = 0

    Rxd(2) = 1

    Rxd(3) = 1

Please help me to resolve the issue at the earliest as the need is of urgency.

with regards

Nitin Patil

  • Hi Nitin,

    Are you putting data into the DP83867 when you're in loopback mode?

    The constant value on RXD lines may be the RGMII in-band status.  While RX_CTRL is low for multiple RX_CLK cycles, the RXD lines will show link duplex, link speed, and link status.  1100 indicates full duplex, 1000M, link down.

    From the RGMII spec, here is the in-band status decoding.

    Best Regards,

  • Hi,

    " Are you putting data into the DP83867 when you're in loopback mode? "
    : Yes I am putting UDP packet on the Tx line and expecting to receive it on Rx line as I am doing loopback.

    1. Is the software reset compulsory? (i.e putting 0x8000 value on register 0x001F)
    Can I skip it and just perform software restart after configuring registers 0x0000, 0x0032 and 0x0016 ? How difference will it make?

    2.The alternate method which is provided in document "DP83867IR/CR Robust, High Immunity 10/100/1000 Ethernet Physical Layer Transceiver", should I go for the below option?
    i. Address 0x00FE, should be set to 0xE720.
    ii. Auto-Negotiation should be disabled before selecting the Near-End Loopback mode.
    iii.Auto-MDIX should be disabled before selecting the Near-End Loop back mode.

    Please do the needful at the earliest.


    Regards
  • Hi Nitin,

    1. The software restart (putting 0x8000 value in register 0x001F) will return the registers 0x0000, 0x0032, and 0x0016 to default state and STOP your loopback.

    2. If you are using a digital loopback, i would recommend the following
    i. Address 0x0016 = 0x0004
    ii. Address 0x0000 = 0x0140
    iii. Address 0x001F = 0x4000

    Best Regards,
  • Hi,

    As per your suggestion configured
    i. Address 0x0016 = 0x0004
    ii. Address 0x0000 = 0x0140
    iii. Address 0x001F = 0x4000,

    but yet the output is same(1100).

    Is there anything else i need to take care?
    The MAC IP which I am using supports RGMII interface.
    What about the LOOPCR register(0x00FE) configuration? do I need to set it to 0xE720?

    Regards
    Nitin
  • Hi,

    i. Address 0x0016 = 0x0004
    ii. Address 0x0000 = 0x0140
    iii. Address 0x001F = 0x4000
    With these configuration I am getting RXD output as 1101(0xD).

    After register configuration I am sending one UDP packet but I am receiving 1101 on the receiver line.
    Earlier I was getting 1100 but now with these new configuration as per your suggestion I am getting 1101.
  • Hi Nitin,

    0b1101 indicates your link is up. I think this is your RGMII in-band status as we discussed.

    I am curious why the DP83867 is not looping back your packet.

    Are you sending the UDP packet into the TX RGMII side? Or are you sending the UDP packet on the cat5e cable to the PHY? Can you share a schematic of your PHY?

    Best Regards,
  • Hi Rob,

    Thanks for your support.
    Now the signal is getting looped back.
    Along with the registers you told to configure, I also configured LOOPCR register for loopback.

    Now its working fine.


    Thanks and regards
    Nitin
  • I am glad you found your issue. Thank you, nitin.

    Best Regards,