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.

How to perform TLK110 cable diagnostics?

Other Parts Discussed in Thread: TLK110

Hello,

        I am trying to perform cable diagnostics for a CAT5e ethernet cable plugged into a TLK110CUSEV development board's RJ-45 jack, using the TLK110's internal mechanisms, but with no success by now.

       An ARM7 microcontroler is being used for the communication link ( MDC, MDIO ) with TLK110, which works fine and i have had success writing and reading back the standard and extended set registers as well.

      The following code is what i have tried so far:

    Transmit_S_Frame( OP_WRITE, "00001", BMCR, "0000000000000000" );  // Write 0x0000 to BMCR
    TimeDelayMS( 50 );                  
    
    Transmit_S_Frame( OP_READ, "00001", BMCR, NULL );     // Read the BMCR
    TimeDelayMS( 50 );

    Transmit_E_Frame( OP_WRITE, "00001", CDSCR, "0100111000000000" );   // Write 0x4E00 to CDSCR
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDSCR, NULL );     // Reading back the CDSCR confirms what's been written previously.
    TimeDelayMS( 50 );  
    
    Transmit_E_Frame( OP_WRITE, "00001", CDCR, "1000000000000000" );   // Write 0x8000 to CDCD to start the diagnostics
    TimeDelayMS( 60000 );                                                                     // Allow 60 seconds for the diagnostics to be completed
    
    Transmit_E_Frame( OP_READ, "00001", CDCR, NULL );         // Reading the CDCR at this point always returns 0x0000 - which means

                                                                                                                   // the diagnostic has not finished,  nor there is error.
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDLRR1, NULL );   // All the following registers contain 0x0000 ...
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDLRR2, NULL );  
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDLRR3, NULL );    
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDLRR4, NULL );   
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDLRR5, NULL );   
    TimeDelayMS( 50 );      
    Transmit_E_Frame( OP_READ, "00001", CDGRR, NULL );   

    I could use some advice on what i am doing wrong or any idea i could try next. Thanks!

Darko

  • Hello,

    we have a preliminary App note (attached) which describes the steps to operate both the TDR and ALCD.

    I understand you were trying to operate the TDR and neither you got indication that the test failed nor that it finished (from reg CDCR).

    1. there is no need to write BMCR (reg0X0) prior to operating the TDR.
    2. for now, don't write CDSCR (reg 0x170). 

    Regards,

    Aviad

    5280.2011-07-13_TDR_ALCD_AppNote_Rev_0_2.pdf

     

  • Hello Aviad, thanks for the reply.

           I have skipped the writes to BMCR and CDSCR at the start of the program as you suggested, but still with no success - the test hasn't failed nor finished.

           Is there any specific time delay which should be given for the measurement to be completed? I use 60 seconds so i suppose it is enough.

           The application note (the part for the TDR measurement) doesn't seem to correspond with the TLK110 datasheet - the addresses of the registers mentioned there do not exist in the register map of the TLK110 datasheet? This is a reserved address space, and i could neither find those configurations bits in other registers.

    Regards

    Darko

          

  • Hi Darko,

    1. 60 seconds is really a long time. you need not wait more than 2 seconds.
    2. the App note does not correspond to the datasheet as this TDR is still a preliminary version, once we verify the relevant registers we will fully update the Data sheet
    3. i would like to perform a small sanity check regardless of the cable dianostic. after powering up the device please read values of reg 0x0, reg 0x1, reg 0x4, reg 0x1e, reg 0x96. please tell me what you have read.

    you can email me directly at: aviad@ti.com

    Thanks,

    Aviad