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.

TLK2541 - How to ouput IEEE802.3 IDLE pattern

Guru 19785 points

Hello Team,

I have questions about using TLK2541. I am not much familiar to this device so I would be happy if you could explain in detail.

[Question]
When user would like to output IEEE802.3 IDLE  pattern from DOUTTX, what is the conditions or settings needed for TLK2541 ? Could the signal applied to the TXDx pins be all "0" from the host ? Or, would you need K28.5 D5.6 or K28.5 D16.2 to be applied to TXDx ?

[Qustion]
In the mid part of the below paragraph says "TLK2541 is to be used to generate valid Ethernet IDLE patterns while using the ON BOARD 8b/10b encoder".  Is this statement about using an external 8b/10b encoder ? When should the CTRL pins be set as CTRL0=Low, CTRL1=High ?

I have been reading the datasheet description, however, I am not clear about the below descriptions. I am understanding that when TLK2541 internal 8b/10b encoder is used, the device will automatically choose D5.6 or D16.2 code based on running disparity.

Best Regards,

Kawai

  • Hello Kawai,

    The GigEther mode works with the two IDLE codes defined in the Ethernet standard. These are K28.5,D16.2 and K28.5,D5.6.

    The Ethernet standard specifies that K28.5,D5.6 should be sent as the first idle in a burst of idles if the running disparity is + to flip the running disparity to -. All remaining idles in the burst would be K28.5,D16.2. If the running disparity was – at the beginning of the burst only K28.5,D16.2 idles should be sent.


    A user of the TLK2541 has no way of knowing what the current running disparity is so we included the GigEther mode. In this mode, the actual idles sent on the serial lines will always follow the rules described above as long as the parallel data is either K28.5,D16.2 or K28.5,D5.6. It really doesn’t matter which of these two D codes is sent since the TLK2541 will always choose the correct one based on current running disparity. I would choose K28.5,D16.2.


    If the customer is using the GigEther mode in full rate they can set TXD[17:0]=18’b01_01010000_10111100.


    In half rate mode, the idle is still composed of two bytes that need to be interleaved on the TXD bus. TXD[16,7:0] needs to alternate between 9’b110111100 and 9’1101010000 with 9’b110111100 always being sent first because the K28.5 must always be in the LSB position of a compliant data stream.

    Regards,
    Luis
  • Hello Luis-san,

    Thank you for the explanation. Please clarify my understanding.

    To use TLK2541 internal 8b/10b encoder (CTRL0=0, CTRL1=1), your recommendation is to input TXD[17:0]=18'b01_01010000_10111100 (K28.5,D16.2), to output IDLE pattern. Then, TLK2541 will automatically choose D5.6 or D16.2 based on running disparity. Am I correct ?

    Best Regards,
    Kawai

  • Hi Kawai-san,

    Yes, you are right. According to the Ethernet standard, the device will use the correct one based on running disparity.

    Regards,
    Luis
  • Hi Luis-san,

    Thank you for the answer.

    Best Regards,
    Kawai
  • Hi Luis-san,

    To use the internal encoder, CTRL0=0, CTRL1=1 should be used. I had modified my previous post as I had typo.

    Regards,
    Kawai
  • Hello Luis-san,

    I have additional question on this topic.

    When used in CTRL0=0, CTRL1=0 (RAW 10bit coded data), I am understanding that the data which you should apply to TXDxx is a repetitive signal pattern of K28.5 and D16.2 (First K28.5 then D16.2).

    Could you please give me the specific input data pattern example of TXDxx ?

    Is it the correct with the following data pattern ?

    TXD[9:0] = 10'b001111 1010(K28.5)
    TXD[9:0] = 10'b011011 0101(D16.2)

    Best Regards,
    Kawai
  • Hello Luis-san,

    Could you please give us your help supporting this device ?

    Best Regards,
    Kawai
  • Hi Kawai-san,

    Sorry for the delay. Yes you are right, you have to generate the comma pattern (K28.5) on the parallel side prior to sending raw data.

    Best Regards,
    Luis