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.

DP83867IS: Register Settings for loopback modes

Part Number: DP83867IS


I am attempting to use the near-end loopback modes of this PHY to prove out my code.  I have these resources: 

SNLS504B 03/2017  data sheet
SNLA246A 04/2016  troubleshooting guide

I use the register settings from the troubleshooting guide but the PHY does not go into loopback.

What is the register write sequence to set the MII loopback, the digitial loopback, the analog loopback.

I would like to kno what the role of register 0XFE is and do I need to set this register at all.  The troubleshooting guide makes no mention of this register at all but the data sheet does.

Thanks,
Ed

  • Hi,

    MII loopback shall happen using register 0x00.


    All other loopbacks shall get configured using register e BISCR (register address 0x16)

    On register 0x00FE, let me check and get back.

    Regards,
    Geet
  • Geet,
    I can now get to register FE, I discovered there is an "extended register set" and is accessed using registers 0x0d and 0x0e, as shown below.

    As for loopback modes, here is the answer:

    // set up the PHY for MII loopback
    PhyWrite(0, 0x4140 );
    PhyWrite(0x16, 0 );
    PhyWrite(0x0d, 0x1f );
    PhyWrite(0x0e, 0xFE );
    PhyWrite(0x0d, 0x401f );
    PhyWrite(0x0e, 0xe720 );
    PhyWrite(0x1f, 0x4000 );

    // set up the PHY for Digital loopback loopback
    PhyWrite(0, 0x140 );
    PhyWrite(0x16, 4 );
    PhyWrite(0x0d, 0x1f );
    PhyWrite(0x0e, 0xFE );
    PhyWrite(0x0d, 0x401f );
    PhyWrite(0x0e, 0xe720 );
    PhyWrite(0x1f, 0x4000 );

    // set up the PHY for analog loopback
    PhyWrite(0, 0x140 );
    PhyWrite(0x16, 8 );
    PhyWrite(0x0d, 0x1f );
    PhyWrite(0x0e, 0xFE );
    PhyWrite(0x0d, 0x401f );
    PhyWrite(0x0e, 0xe720 );
    PhyWrite(0x1f, 0x4000 );

    This works on a xilinx eval board model KCU116.

    BTW, I discovered that when using analog loopback mode, you need to remove the eth cable if it is connected to a link partner. If you dont, you get lots of corrupted packets, etc.

    Thanks for getting back to me....
    Ed