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.

TLK10031: Reading of few specific set of registers no working

Part Number: TLK10031

Greetings for the Day,

We are facing issues in accessing few registers of TLK10031(Specifically Vendor Specific registers)

We are using TM4CDNCPDT microcontroller with TLK10031 transceiver for 10G repeater application. We are implementing bit-banging to access TLK10031 registers using MDC/MDIO lines.

We can able to read the content of registers belongs to Auto negotiation, PMA/PMD and PCS device type. But we are not able to read the registers belongs to Vendor Specific Device Registers (0x1E). And tried writing data to Vendor Specific Device Registers but we are not sure whether it is working or not as we won't get any response from TLK.

ST and MODE_SEL pins made low.

PD and PRBSEN pins are made HIGH.

MDC clock = 1.25MHz

Is there any specific settings we need to implement for accessing Vendor specific registers? please help us to resolve this issue.

Thank you.

  • Hi,

    See the note below from the product datasheet,

    7.5.2 Vendor Specific Device Registers
    Below registers can be accessed directly through Clause 22 and Clause 45. In Clause 45 mode, these registers can be accessed by setting device address field to 0x1E (DA[4:0] = 5’b11110). In Clause 22 mode, these registers can be accessed by setting 5 bit register address field to same value as 5 LSB bits of Register Address field specified for each register. For example, 16 bit register address 0x001C in clause 45 mode can be accessed by setting register address field to 5’h1C in clause 22 mode.


    Rodrigo Natal

  • Thank you Rodrigo Natal for your response,

    We have tried as per datasheet only, but still its not working. 

    We are using Clause 45 format, and DA[4:0] address we have used is 0x1E only, but still TLK is not responding to our read request. 

    As I have motioned earlier in the thread, we getting response from registers whose DA[4:0] address is 0x07,0x01 and 0x03 but we are not getting response from registers belongs to DA[4:0] address 0x1E.

    I hope my question is clear and we are hoping for a solution from your side. 

    Thank You. 

  • I will look into this. Not sure why things are not working on your side. This is an old legacy product that should work without issue.


    Rodrigo Natal

  • Hi Rodrigo Natal,

    It will be very helpful if you find out the solution for our issue.

    As you are telling it's an old legacy product and it works fine without any issue. So is there any working code for it(like accessing internal registers code)?

    If it's there means, can you please provide us. 

    Thank you.

  • Hi Rodrigo Natal,

    The TLK registers reading issue is resolved, we are able read/write all TLK registers. It started working after changing 32 preambles to 33 preambles.

    Thank You.