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.

DP83826E: How to enable external loopback

Part Number: DP83826E

I have tried enabling external loopback by writing 0x3010 to register 0x16. But there is no output from the PHY. What are the proper steps to enable the external loopback shown in this picture:

  • Hi Michael,

    I'm more than happy to assist with your query. First could you help me understand what you are trying to debug using the loopback modes?

    From the register write you provided, Reg 0x16 = 3010, PRBS Generator is enabled and so is Reverse loopback. The PRBS Generator sends packets out of the MDI side (cable side) by default and Reverse Loopback takes data received from the cable and sends it back through the cable. These two modes are not compatible with each other.

    Regards,

    Alvaro

  • Thanks Alvaro,

     I want to use external loopback where the local PHY sends data to the remote PHY. The remote PHY is configured to echo that data back to the local PHY. I then want the local PHY to confirm the data matches what was sent.

  • Hi Michael,

    Thanks for clarifying. In your case the DP83826 is the local PHY, there is no need to use a loopback mode then (Reg 0x16 = 3000). The BIST generator will send data through the cable where the remote PHY will receive and echo back (remote PHY is in Reverse Loopback). The errors can be checked in Register 0x1B of the local PHY.

    Regards,

    Alvaro

  • Thanks Alvaro,

     I am still having some trouble. I have tried writing 0x2100 to register 0x00 and 0x3100 to 0x16. I read back:

    Reg: 0x16 data: 0x3b00
    Reg: 0x1b data: 0x7d

    The error count is always 0 regardless of whether the external loopback adapter is connected. Why doesn't it detect errors when the loopback is missing?

  • Hi Michael!

    So I went into lab to check PRBS functionality on our DP83826EVM, here's what I found.

    1. For PRBS packets to be sent, valid link must be up first.
      1. By writing Reg 0x0 = 2100, you are disabling Auto-Neg and forcing 100 Mbps
        1. Valid link will only be established if the Link Partner is also in a Force 100 Mbps mode
        2. Read register 0x1 to confirm link status
      2. We recommend keeping Auto-negotiation enabled. If a certain speed is desired, writing to Reg 0x4 and de-advertise unwanted speed
    2. PRBS Error Counter (Reg 0x1b)
      1. This register will only increment if errors are returned
        1. So if the link partner is not looping back data, this counter will not increase
        2. If the link partner IS looping back data and the counter is still not increasing, it means that the connection is good
        3. Reg 0x25 on the DP83826 can be configured to blink on TX/RX activity, can help confirm if packets are being sent

    Regards,

    Alvaro