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.

DP83TD510E-EVM: Starting TDR gives me TDR_Fail

Part Number: DP83TD510E-EVM
Other Parts Discussed in Thread: USB-2-MDIO,

I am configuring the PHY via the MDIO USB Tool like:

begin
0301 2404
030D 5F25
0303 053E
030E 0536
0304 000A
030F 0008
0302 3E80
0310 0036
end

...and then start the TDR process by setting bit 15 of register 0x001E.

Reading the 001E always gives me 0x0003, which corresponds to TDR_Fail =1b and TDR_Done = 1b while the PHY is not actively connected to a link partner.

What can I do to get a valid TDR measurement?

  • Hi Dominik,

    Looks like you are writing the correct values to the correct registers. Can you please make sure that you have the "Extended Registers" tab set to "Yes" when you run the initial script?

    Otherwise, how are you powering the EVM? With the USB power or external?

    Thanks,

    Lysny

  • Hello Lysny,
    Thank you for your reply. When running the initialization script, the "Extended Registers" tab is set to "Yes". The EVM is powered via USB.

  • Hi Dominik, has resistor R24 been replaced with a 0 Ohm resistor?

    Also, is the device able to link? Are there any issues writing to the registers? Are you able to read back some of the TDR program registers and verify that they are being written correctly?

    Thanks,

    Lysny

  • Hi Lysny, yes R24 is shorted and the device is able to connect. Reading back the TDR registers gives me the correct values.

  • Hi Dominik,

    I'll look into this and get back to you in a couple of a days. In the meantime, if you have an external MSP430, you could try to connect directly to the MDIO and MDC pins on the EVM  and communicate with USB-2-MDIO and try the same process to see if there are any different results.

    Thanks,

    Lysny

  • Hi Dominik,

    I have a few follow up questions. For the "not actively connected to a link partner," I wanted to make sure it is not physically connected to the partner device. If it is and that device is powered and not set to halt idle transmissions, this could cause TDR failure.

    Second, could you please provide what type of cable you are using and the length?

    Also, could you verify the version of silicon you have on board? This can be checked by sharing register 0x3.

    Here is an alternative TDR script that has proved successful. Please try this script out as well. :)

    For PHY addr = 00 & Extended Registers = "Yes"

    001F 8000 // hard reset

    Extended Registers = "No"

    begin

    000D 0007 //set mmd

    000E 0200 // set addr

    000D 4007

    000E 0000 //data -> disable ANEG

    000D 0001 //set mmd

    000E 0834 // set addr

    000D 4001 

    000E 4000 //data -> config Host mode

    end

    Extended Registers = "Yes"

    0301 2403 //tdr

    0303 043E //tdr

    030E 2520 //tdr

    001F 4000 //soft reset

    Then complete the same procedure above with PHY addr = "01"

    And, enable the TDR like you did previously.

    Thanks,

    Lysny

  • Hi Lysny,
    the device is not physically connected to a partner. For evaluation purposes i am using a 5m unshielded twisted pair cable, with an open end.
    Register 0x3 contains 0x0181.

    Thank you for the provided script. After running it, register 0x001E gives me 0x0002, which corresponds to TDR_Fail =1b. The TDR_Done flag is set false. Strangely enough, after executing your script and the TDR start, the register 0x030C contained a non-zero value. For a 5m long cable 0x030C equals 0x0C19. This probably means that a measurement has taken place although TDR_Done is false. How is that possible?

    Then complete the same procedure above with PHY addr = "01"

    if I am not mistaken, the DP83TD510E-EVM does only have a PHY at addres "00" and "05" so i did the same procedure with PHY addr= "05".

    Maybe you can help me clarify.

    Thanks,
    Dominik

  • Hi Dominik,

    You're right. The 822 is address 05! 

    Could you try a few different things, and I'll keep looking into this?

    Could you try running the TDR without a cable connected and let me know the results in 0x001e and 0x30c?

    If you have another length of cable or type of cable, try the TDR process and report the same registers?

    Also, how long are you approximately waiting after starting TDR to read the TDR result values? If the reads are in the same script as the writes the device might not be actually completing the TDR process. 

    Also, before running any scripts could you share the value of 0x1e? And, could you also share the value after running the scripts, but before writing TDR_START?

    Thank you!

    Lysny

  • Hello Lysny,

    the register values, before and after running the scripts you provided, in 0x001E and 0x030C are both 0x0000. I have tried TDR_Start without cable or with a 5m and a 10m cable. After every cable change, i did a full reset. No matter what cable length, 0x001E returns me 0x0002 and 0x030C is always equal to 0x0C19. I don't use a script to read the values from the registers, so I wait a few seconds before reading the registers.


    Thank you,

    Dominik

  • Hi Dominik,

    Looks like there was an error in the app note! 0x2 means TDR was successfully completed without any errors. This is the register description from the datasheet:

     

    I am revising a few other small errors in this app note, so I will make sure this is fixed with the next update.

    One other thing to note, the Host and Client section of the script, is only needed if the test procedure need a link to first be applied, followed by a cable break. The "Extended Registers" = "No" should be able to be omitted.

    Also, it is expected for cables under 25m to report a value indicating a cable length of about 25-30m. This is due to the accuracy specs of TDR. 

    Please let me know if you have further questions!

    Thanks,

    Lysny

  • Hello Lysny,

    Thanks for your answer, now the register values make sense to me!

    This is due to the accuracy specs of TDR. 

    Where can I find the accuracy specification of TDR, in terms of minimum cable length. I have not found anything in the data sheet. Also, can you let me know when the revised version of the application note has been released, that would be great?

    Greetings,
    Dominik

  • Hi Dominik,

    The latest app note has been submitted and will be live with the next TI.com update.

    The TDR accuracy varies slightly from cable to cable and has different accuracy specs at various lengths. This is the primary reason this info is not listed in the datasheet. Testing is required to properly calibrate TDR, so we encourage users to determine the accuracy based off their measurements.

    At distances below ~25-30 m, TDR usually displays that distance. If you have any further questions, please open a new thread. :) This one is marked resolved already.

    Thanks,

    Lysny