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.

TLK10081: One to One Operation

Part Number: TLK10081
Other Parts Discussed in Thread: TLK10232

Tool/software:

Good Day,

i have got problems, to get run the TLK10081 in the 8:1 mode. To symplify the problem, i have tried to operate in the 1:1 mode first, but without success. Below you can find my simplified setup.

No matter, what i have tried in register configurations, i was not able to get run the setup.

Here would be my register configuration:

Just one hint: If i have activated the 8b/10b decoder/encoder, i have activated it on the Lowspeed and Highspeed side.For the deactivation this means the same, Lowside and Highside.

PTAD_PTAD1 = 0; //20ms Reset Phy and TLK10081
Cpu_Delay100US(200); //20ms Delay

//I have also tried Bit Interleave Mode

(void)mdio_write(PHY_ADDR_TLK,CHANNEL_CONTROL_1,0x000C);//Adress 0x01, 1 Channel, Byte Interleave

(void)mdio_write(PHY_ADDR_TLK,HS_SERDES_CONTROL_2,0x6A4E); //Adress 0x03 HS Tx,Rx Quarter Rate,660mVdfpp

(void)mdio_write(PHY_ADDR_TLK,BIT_LM_CONTROL,0x04C8); //Adress 0x18 Disable Lane Marker detection Rx Ls Lane. Normalmode

//I have also tried with FIFO Standard 000

(void)mdio_write(PHY_ADDR_TLK,LS_TXFIFO_CONTROL,0xE2BC); //Adress 0x19 Lowspeed TX FIFO auf Max

//I have also tried with CTC on

(void)mdio_write(PHY_ADDR_TLK,LN_DATA_SRC_CONTROL,0x1000); //Adress 0x1B Disable CTC Rx/Tx

//I have also tried with 8b/10b disabled and Standard FIFO 000, also tried with 8b/10b enabled Standard Setup

(void)mdio_write(PHY_ADDR_TLK,LS_CH_CONTROL_1,0x700C); //Adress 0x1C Disable 8B/10 Encoder/Decoder Lowspeed Rx,Tx, Lowspeed RX FIFO Max

//I have also tried with 8b/10b disabled and Standard FIFO 000

(void)mdio_write(PHY_ADDR_TLK,HS_CH_CONTROL_1,0x770C); //Adress ox1D Disable 8B/10 Encoder/Decoder Highspeed,Marker Search/Replacement off, Rx0/Rx1,Tx FIFO Max

//I have also tried with Lowspeed 8b/10b enabled

//(void)mdio_write(PHY_ADDR_TLK,HS_CH_CONTROL_1,0x0000); //Enable 8B/10 Encoder/Decoder Highspeed,Marker Search/Replacement off

//I have also tried with and without Reset Rx/Tx path

(void)mdio_write(PHY_ADDR_TLK,RESET_CONTROL,0x0008); //Adress 0x0E Reset Tx und Rx Data Path

Below would be the Dump from the Status Register 0x0F,0x13,0x14:

No matter what register change i would do, the Status Dump would allways be the same. The Register reading would be correct, i think, the status change from unlocked to locked, from unsynced to sync and from invalid word decode to valid. The problem would be allways the FIFO Overflow.

Channel Status 1 Register
HS_PLL_Lock: locked
LS_PLL_Lock: locked
LT_RX_STATUS: Receiver Training in Progress
LT_FRAME_LOCK: Training Frame delineation not detected
BIT_LMDONE: Valid Marker Pattern not found
HS_TX0_FIFO_OVERFLOW: CTC No Overflow
HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
HS_DECODE_INVALID: Valid Decode Word
HS_CHANNEL_SYNC: Sync achieved
HS_AGC_LOCKED: locked
HS_AZ_DONE: Auto Zero complete
HS_LOS: No Signal loss
HS_TRAINING_FAIL: Training not failed
HS_TP_STATUS: Alignment not achieved

LS Status 1 Register
LS_RX_FIFO_OVERFLOW: Overflow
LS_RX_FIFO_UNDERFLOW: No Underflow
LS_TX_FIFO_OVERFLOW: Overflow
LS_TX_FIFO_UNDERFLOW: No Underflow
LS_CH_SYNC_STATUS: Synced
LS_RX_LOS_DETECT_LH: No LOS Pattern detected
LS_LOS: No LOS
LS_INVALID_DECODE: Valid decode
LS_RX_LOS_DETECT: No LOS Pattern detected
LS_TP_STATUS: Alignment not achieved

HS Status 1 Register
HS_RX0_FIFO_OVERFLOW: Overflow
HS_RX0_FIFO_UNDERFLOW: No Underflow
HS_RX1_FIFO_OVERFLOW: No Overflow
HS_RX1_FIFO_UNDERFLOW: No Underflow
TX0_LANE_ALIGN: TX0 not aligned
TX1_LANE_ALIGN: TX1 not aligned
RX0_LANE_ALIGN: RX0 not aligned
RX1_LANE_ALIGN: RX1 not aligned
TX2_LANE_ALIGN: TX2 not aligned
TX3_LANE_ALIGN: TX3 not aligned
RX2_LANE_ALIGN: RX2 not aligned
RX3_LANE_ALIGN: RX3 not aligned

 

  • Hi Markus,

    I see in your status register dumps that receiver link training is in progress. Did you intend to use link training in this setup?

    For debug purposes, I recommend disabling link training by writing LT_ENABLE=0 (register 0x01 bit 14). Make sure LT is also disabled on your PHY. Can you dump the status registers in this case?

    Best,

    Lucas

  • Hi Lucas,

    no, the link training was disabled. The bit LT_RX_STATUS: Receiver Training in Progress does not change, if the link training is disabled. You can see this in the status dumps below. It seems that i have to use the 8b/10b mode, because without this mode there are problems on the highspeed side to sync, if i unplug and plug again the fiber optic cable. With this feature on resync is no problem and works stable. I can see this in the register dumps.

    8b/10b Encoder Decoder on, Link training on, fiber optic cable plugged:

    Channel Status 1 Register
    HS_PLL_Lock: locked
    LS_PLL_Lock: locked
    LT_RX_STATUS: Receiver trained
    LT_FRAME_LOCK: Training Frame delineation not detected
    BIT_LMDONE: Valid Marker Pattern not found
    HS_TX0_FIFO_OVERFLOW: CTC No Overflow
    HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
    HS_DECODE_INVALID: Valid Decode Word
    HS_CHANNEL_SYNC: Sync achieved
    HS_AGC_LOCKED: locked
    HS_AZ_DONE: Auto Zero complete
    HS_LOS: No Signal loss
    HS_TRAINING_FAIL: Training not failed
    HS_TP_STATUS: Alignment not achieved

    LS Status 1 Register
    LS_RX_FIFO_OVERFLOW: Overflow
    LS_RX_FIFO_UNDERFLOW: No Underflow
    LS_TX_FIFO_OVERFLOW: Overflow
    LS_TX_FIFO_UNDERFLOW: No Underflow
    LS_CH_SYNC_STATUS: Synced
    LS_RX_LOS_DETECT_LH: No LOS Pattern detected
    LS_LOS: No LOS
    LS_INVALID_DECODE: Valid decode
    LS_RX_LOS_DETECT: No LOS Pattern detected
    LS_TP_STATUS: Alignment not achieved

    HS Status 1 Register
    HS_RX0_FIFO_OVERFLOW: Overflow
    HS_RX0_FIFO_UNDERFLOW: No Underflow
    HS_RX1_FIFO_OVERFLOW: No Overflow
    HS_RX1_FIFO_UNDERFLOW: No Underflow
    TX0_LANE_ALIGN: TX0 not aligned
    TX1_LANE_ALIGN: TX1 not aligned
    RX0_LANE_ALIGN: RX0 not aligned
    RX1_LANE_ALIGN: RX1 not aligned
    TX2_LANE_ALIGN: TX2 not aligned
    TX3_LANE_ALIGN: TX3 not aligned
    RX2_LANE_ALIGN: RX2 not aligned
    RX3_LANE_ALIGN: RX3 not aligned

    8b/10b Encoder Decoder on, Link training on, fiber optic cable unplugged:

    Channel Status 1 Register
    HS_PLL_Lock: locked
    LS_PLL_Lock: locked
    LT_RX_STATUS: Receiver Training in Progress
    LT_FRAME_LOCK: Training Frame delineation not detected
    BIT_LMDONE: Valid Marker Pattern not found
    HS_TX0_FIFO_OVERFLOW: CTC No Overflow
    HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
    HS_DECODE_INVALID: Valid Decode Word
    HS_CHANNEL_SYNC: Sync not achieved
    HS_AGC_LOCKED: locked
    HS_AZ_DONE: Auto Zero complete
    HS_LOS: No Signal loss
    HS_TRAINING_FAIL: Training failed
    HS_TP_STATUS: Alignment not achieved

    LS Status 1 Register
    LS_RX_FIFO_OVERFLOW: No Overflow
    LS_RX_FIFO_UNDERFLOW: No Underflow
    LS_TX_FIFO_OVERFLOW: No Overflow
    LS_TX_FIFO_UNDERFLOW: No Underflow
    LS_CH_SYNC_STATUS: Synced
    LS_RX_LOS_DETECT_LH: No LOS Pattern detected
    LS_LOS: No LOS
    LS_INVALID_DECODE: Valid decode
    LS_RX_LOS_DETECT: No LOS Pattern detected
    LS_TP_STATUS: Alignment not achieved

    HS Status 1 Register
    HS_RX0_FIFO_OVERFLOW: No Overflow
    HS_RX0_FIFO_UNDERFLOW: No Underflow
    HS_RX1_FIFO_OVERFLOW: No Overflow
    HS_RX1_FIFO_UNDERFLOW: No Underflow
    TX0_LANE_ALIGN: TX0 not aligned
    TX1_LANE_ALIGN: TX1 not aligned
    RX0_LANE_ALIGN: RX0 not aligned
    RX1_LANE_ALIGN: RX1 not aligned
    TX2_LANE_ALIGN: TX2 not aligned
    TX3_LANE_ALIGN: TX3 not aligned
    RX2_LANE_ALIGN: RX2 not aligned
    RX3_LANE_ALIGN: RX3 not aligned

    8b/10b Encoder Decoder on, Link training off, fiber optic cable plugged:

    Channel Status 1 Register
    HS_PLL_Lock: locked
    LS_PLL_Lock: locked
    LT_RX_STATUS: Receiver Training in Progress
    LT_FRAME_LOCK: Training Frame delineation not detected
    BIT_LMDONE: Valid Marker Pattern not found
    HS_TX0_FIFO_OVERFLOW: CTC No Overflow
    HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
    HS_DECODE_INVALID: Valid Decode Word
    HS_CHANNEL_SYNC: Sync achieved
    HS_AGC_LOCKED: locked
    HS_AZ_DONE: Auto Zero complete
    HS_LOS: No Signal loss
    HS_TRAINING_FAIL: Training not failed
    HS_TP_STATUS: Alignment not achieved

    LS Status 1 Register
    LS_RX_FIFO_OVERFLOW: Overflow
    LS_RX_FIFO_UNDERFLOW: No Underflow
    LS_TX_FIFO_OVERFLOW: Overflow
    LS_TX_FIFO_UNDERFLOW: No Underflow
    LS_CH_SYNC_STATUS: Synced
    LS_RX_LOS_DETECT_LH: No LOS Pattern detected
    LS_LOS: No LOS
    LS_INVALID_DECODE: Valid decode
    LS_RX_LOS_DETECT: No LOS Pattern detected
    LS_TP_STATUS: Alignment not achieved

    HS Status 1 Register
    HS_RX0_FIFO_OVERFLOW: Overflow
    HS_RX0_FIFO_UNDERFLOW: No Underflow
    HS_RX1_FIFO_OVERFLOW: No Overflow
    HS_RX1_FIFO_UNDERFLOW: No Underflow
    TX0_LANE_ALIGN: TX0 not aligned
    TX1_LANE_ALIGN: TX1 not aligned
    RX0_LANE_ALIGN: RX0 not aligned
    RX1_LANE_ALIGN: RX1 not aligned
    TX2_LANE_ALIGN: TX2 not aligned
    TX3_LANE_ALIGN: TX3 not aligned
    RX2_LANE_ALIGN: RX2 not aligned
    RX3_LANE_ALIGN: RX3 not aligned

    8b/10b Encoder Decoder on, Link training off, fiber optic cable unplugged:

    Channel Status 1 Register
    HS_PLL_Lock: locked
    LS_PLL_Lock: locked
    LT_RX_STATUS: Receiver Training in Progress
    LT_FRAME_LOCK: Training Frame delineation not detected
    BIT_LMDONE: Valid Marker Pattern not found
    HS_TX0_FIFO_OVERFLOW: CTC No Overflow
    HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
    HS_DECODE_INVALID: Invalid Decode Word
    HS_CHANNEL_SYNC: Sync not achieved
    HS_AGC_LOCKED: locked
    HS_AZ_DONE: Auto Zero complete
    HS_LOS: No Signal loss
    HS_TRAINING_FAIL: Training not failed
    HS_TP_STATUS: Alignment not achieved

    LS Status 1 Register
    LS_RX_FIFO_OVERFLOW: No Overflow
    LS_RX_FIFO_UNDERFLOW: Underflow
    LS_TX_FIFO_OVERFLOW: Overflow
    LS_TX_FIFO_UNDERFLOW: No Underflow
    LS_CH_SYNC_STATUS: Synced
    LS_RX_LOS_DETECT_LH: Valid LOS Pattern detected
    LS_LOS: No LOS
    LS_INVALID_DECODE: Valid decode
    LS_RX_LOS_DETECT: No LOS Pattern detected
    LS_TP_STATUS: Alignment not achieved

    HS Status 1 Register
    HS_RX0_FIFO_OVERFLOW: No Overflow
    HS_RX0_FIFO_UNDERFLOW: Underflow
    HS_RX1_FIFO_OVERFLOW: No Overflow
    HS_RX1_FIFO_UNDERFLOW: No Underflow
    TX0_LANE_ALIGN: TX0 not aligned
    TX1_LANE_ALIGN: TX1 not aligned
    RX0_LANE_ALIGN: RX0 not aligned
    RX1_LANE_ALIGN: RX1 not aligned
    TX2_LANE_ALIGN: TX2 not aligned
    TX3_LANE_ALIGN: TX3 not aligned
    RX2_LANE_ALIGN: RX2 not aligned
    RX3_LANE_ALIGN: RX3 not aligned

    Best Regards

    Markus

  • Hi Markus,

    I'm looking into this and will get back to you with more feedback by the end of this week.

    Best,

    Lucas

  • Hi Lucas,

    i have switched on CTC. Now, on the LS Side, at both link partners, the overflow, at Rx,Tx, vanished. At the HS Side, at one link partner, the Rx0 overflow is still present.

    Best Regards

    Markus

  • Hi Markus,

    That's good that you were able to resolve the LS side FIFO overflow issue.

    Can you check your reference clock and confirm it meets datasheet specifications?

    Best,

    Lucas

  • Hi Lucas,

    i have checked my reference clock and it should be ok. Rise and fall time +-150mV, 150ps (measured), Total Stability +-50ppm, Phase Jitter max. 1ps (max Value Datasheet TLK). I have also changed this oscillator with a better one. Rise and fall time +-200mV, 135ps (measured), Total Stability +-20ppm, Phase Jitter max. 70fs. But the problem is the same. Overflow HS Rx0. At the moment the FIFO depth at Lowside and Highside would be value 4. If i reduce the FIFO at Lowside, to value 0, i get Overflow on the Lowside. I can not find informations about the FIFO depth and watermark. What does these values mean and what the mechanism behind them? There is a listing in a schematic about the FIFO depth. 8,12,16,24,32. Relates this to value 000,001, and so on in the register?

  • Hi Markus,

    I'm looking into this and will get back to you with more feedback tomorrow.

    Best,

    Lucas

  • Hi Markus,

    Thank you for checking your reference clock, it looks like there are no issues there.

    I recommend you read "Appendix A: Provisionable XAUI Clock Tolerance Compensation" in the TLK10232. The CTC feature on this device is identical to TLK10081. This section explains how to program FIFO depth and watermark. I recommend experimenting with different values for these parameters.

    https://www.ti.com/lit/ds/symlink/tlk10232.pdf?ts=1732233748470&ref_url=https%253A%252F%252Fwww.google.com%252F

    Best,

    Lucas

  • Hi Lucas,

    i have tried all values out of the table from the appendix, but the problem still remains the same. Highspeed RX0 Fifo overflow.

    Channel Status 1 Register
    HS_PLL_Lock: locked
    LS_PLL_Lock: locked
    LT_RX_STATUS: Receiver Training in Progress
    LT_FRAME_LOCK: Training Frame delineation not detected
    BIT_LMDONE: Valid Marker Pattern not found
    HS_TX0_FIFO_OVERFLOW: CTC No Overflow
    HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
    HS_DECODE_INVALID: Valid Decode Word
    HS_CHANNEL_SYNC: Sync achieved
    HS_AGC_LOCKED: locked
    HS_AZ_DONE: Auto Zero complete
    HS_LOS: No Signal loss
    HS_TRAINING_FAIL: Training not failed
    HS_TP_STATUS: Alignment not achieved

    LS Status 1 Register
    LS_RX_FIFO_OVERFLOW: No Overflow
    LS_RX_FIFO_UNDERFLOW: No Underflow
    LS_TX_FIFO_OVERFLOW: No Overflow
    LS_TX_FIFO_UNDERFLOW: No Underflow
    LS_CH_SYNC_STATUS: Synced
    LS_RX_LOS_DETECT_LH: No LOS Pattern detected
    LS_LOS: No LOS
    LS_INVALID_DECODE: Valid decode
    LS_RX_LOS_DETECT: No LOS Pattern detected
    LS_TP_STATUS: Alignment not achieved

    HS Status 1 Register
    HS_RX0_FIFO_OVERFLOW: Overflow
    HS_RX0_FIFO_UNDERFLOW: No Underflow
    HS_RX1_FIFO_OVERFLOW: No Overflow
    HS_RX1_FIFO_UNDERFLOW: No Underflow
    TX0_LANE_ALIGN: TX0 not aligned
    TX1_LANE_ALIGN: TX1 not aligned
    RX0_LANE_ALIGN: RX0 not aligned
    RX1_LANE_ALIGN: RX1 not aligned
    TX2_LANE_ALIGN: TX2 not aligned
    TX3_LANE_ALIGN: TX3 not aligned
    RX2_LANE_ALIGN: RX2 not aligned
    RX3_LANE_ALIGN: RX3 not aligned

    If i unplug the fiber optic cable from the highspeed side the register values changes, as assumed and the HS_RX0_Fifo change to No Overflow.

    Channel Status 1 Register
    HS_PLL_Lock: locked
    LS_PLL_Lock: locked
    LT_RX_STATUS: Receiver Training in Progress
    LT_FRAME_LOCK: Training Frame delineation not detected
    BIT_LMDONE: Valid Marker Pattern not found
    HS_TX0_FIFO_OVERFLOW: CTC No Overflow
    HS_TX0_FIFO_UNDERFLOW: CTC No Underflow
    HS_DECODE_INVALID: Invalid Decode Word
    HS_CHANNEL_SYNC: Sync not achieved
    HS_AGC_LOCKED: locked
    HS_AZ_DONE: Auto Zero complete
    HS_LOS: No Signal loss
    HS_TRAINING_FAIL: Training not failed
    HS_TP_STATUS: Alignment not achieved

    LS Status 1 Register
    LS_RX_FIFO_OVERFLOW: No Overflow
    LS_RX_FIFO_UNDERFLOW: No Underflow
    LS_TX_FIFO_OVERFLOW: No Overflow
    LS_TX_FIFO_UNDERFLOW: No Underflow
    LS_CH_SYNC_STATUS: Synced
    LS_RX_LOS_DETECT_LH: Valid LOS Pattern detected
    LS_LOS: No LOS
    LS_INVALID_DECODE: Valid decode
    LS_RX_LOS_DETECT: No LOS Pattern detected
    LS_TP_STATUS: Alignment not achieved

    HS Status 1 Register
    HS_RX0_FIFO_OVERFLOW: No Overflow
    HS_RX0_FIFO_UNDERFLOW: Underflow
    HS_RX1_FIFO_OVERFLOW: No Overflow
    HS_RX1_FIFO_UNDERFLOW: No Underflow
    TX0_LANE_ALIGN: TX0 not aligned
    TX1_LANE_ALIGN: TX1 not aligned
    RX0_LANE_ALIGN: RX0 not aligned
    RX1_LANE_ALIGN: RX1 not aligned
    TX2_LANE_ALIGN: TX2 not aligned
    TX3_LANE_ALIGN: TX3 not aligned
    RX2_LANE_ALIGN: RX2 not aligned
    RX3_LANE_ALIGN: RX3 not aligned

    If i plug the fiber optic cable back  then the HS_RX0_FIO overflows.

    All other register values would be correct beside the HS_RX0_Fifo..

  • Hi Lucas,

    beside the problem, at the moment, i would have  a basic question. If i do 8b/10b decoding, of SGMII signals, inside the TLK10081, on the LS side, and do an 8b/10b encoding, on the HS Side, afterwards, would i do not lose all SGMII informations, like start of package (K27.7 delimiter), and so on?

    Best Regards

    Markus

  • Hi Lucas,

    this is an extraction from the TLK10081 Datasheet.

    Does this mean that the sgmii source and the TLK10081 Lowspeed input need the same reference clock, if i do not 8b/10b decoding? Could this be my fifo overflow problem, at the input, if i disable 8b/10b?

    Best Regards

    Markus

  • Hi Markus,

    I'm looking into this and will get back to you with more feedback tomorrow.

    Best,

    Lucas

  • Hi Markus,

    Sorry for the delayed response.

    My understanding of the FLS_offset spec is that the LS reference clock may need to be synchronous with LS data inputs. Is this possible in your setup?

    I do not expect control characters such as K27.7 to be lost to 8b/10b encoders/decoders.

    Best,

    Lucas

  • Hi Lucas,

    if a synchronous clock would be necessary, we have to update the layout. We have to do this also because of other updates.

    Best regards

    Markus

  • Hi Markus,

    I reviewed this with my colleagues and our understanding of the datasheet spec is that the LS reference clock should be synchronous with LS data inputs. That being said, I'm unsure if this will fully resolve the overflow issue.

    Best,

    Lucas

  • Hi Lucas,

    can you give me a suggestion, how i can realize this? My Phys accept single ended 1V CMOS Level, 25MHz. The TLK10081 should have 125MHz, or 156,25 MHz, LVDS, or LVPECL. I have got 8 Phys + 1 TLK10081. The longest distance between Phys and TLK is about 15cm. Therefore it would be best to source the Phys with LVDS and do a level change, to 1V CMOS, close to the Phys. I have allready looked in to your portfolio, but i have not found a solution for me. The problem is 1V CMOS and i do not know how much skew, between the clocks, is allowed.

    Best Regards

    Markus

  • Hi Markus,

    The low speed side of the device has a max lane-to-lane input skew spec of 30 UI, so I believe the reference clock skew from data inputs should be within this range.

    Do your PHY devices buffer their reference clock inputs? Could it be possible to daisy chain all 8 PHYs to a single clock source?

    I'm thinking it could be possible to use a 125MHz clock source, then use some device to bring this down to 25Mhz and switch from LVDS to LVCMOS. Note that I'm not an expert on clocking. If you have any detailed questions related to TI clocking devices, I recommend posting another E2E thread with a specific part number and it will be assigned to the correct team.

    Best,

    Lucas

  • Hi Lucas,

    yes, the Phy has got a clock buffer, but i am unsure if this is practicable. I have to clarify this with the vendor. I think i will start a new post in the E2E thread.

    Best Regards

    Markus

  • Sounds good, thank you.

    Best,

    Lucas