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.

TLK10232: TLK10232 problem when connect with SFP

Part Number: TLK10232

Hi:
    TLK10232 now can working at 10GBASE-R SFP+, but cannot link when configures in 1000BASE-KX mode; Our system configurations and registers status are below: 
 
 Board connection: SWITCH-BCM56820(serdes)<-------->TLK10232(1000base-kx)<-------->SFP
 RefCLK: 156.25MHZ
 MODE_SEL pin = LOW
 ST pin = LOW
 PRBSEN = LOW

Configurations:
 mdio write 0x1e 0x0000 0x8610
 mdio write 0x1e 0x0000 0x0e10
 mdio write 0x1e 0x001D 0x2000
 mdio write 0x07 0x0000 0x0000
 mdio write 0x01 0x0096 0x0000
 mdio write 0x1e 0x0001 0x0300
 mdio write 0x1e 0x0002 0x831B
 mdio write 0x1e 0x0003 0xAA4E
 mdio write 0x1e 0x8020 0x03ff
 mdio write 0x1e 0x8021 0x010F
 mdio write 0x1e 0x0004 0xD560
 mdio write 0x1e 0x0006 0x1114
 mdio write 0x1e 0x0007 0xDD05
 mdio write 0x1e 0x000e 0x0008

    
Register dump:
------------------------(Dev 0x1)------------------------
[0000] 0x0000  [0001] 0x0002  [0002] 0x4000  [0003] 0x5100  [0004] 0x0011  [0005] 0x000B  [0006] 0x4000  [0008] 0xB000  
[000A] 0x0001  [000B] 0x0050  [0096] 0x0000  [0097] 0x0000  [0098] 0x0000  [0099] 0x0000  [009A] 0x0000  [009B] 0x0000  
[00A1] 0x3001  [00AA] 0x0003  [00AB] 0x0000  [00AC] 0x0000  [00AD] 0x0000  [00AE] 0x0000  [00AF] 0x0000  [8001] 0xCC4C  
[8002] 0x0000  [8003] 0x0000  [8005] 0xCE00  [8006] 0x0000  [8007] 0x0000  [8008] 0x0080  [8010] 0xFFFD  [8011] 0xFFFD  
[8012] 0xFFFD  [8013] 0xFFFD  [8014] 0xFFFD  [8015] 0xFFFD  [8016] 0xFFFD  [8017] 0xFFFD  [8018] 0x0000  [8019] 0xFFFF  
[801A] 0xFFFF  [801B] 0xFFFF  [801C] 0xFFFF  [801D] 0xFFFF  [801E] 0xFFFF  [9001] 0x0200 

------------------------(Dev 0x3)------------------------
[0000] 0x0000  [0001] 0x0002  
[0008] 0x8001  [0020] 0x0004  [0020] 0x0004  [0021] 0x0000  [0022] 0x0000  [0023] 0x0000  [0024] 0x0000  [0025] 0x0000  
[0026] 0x0000  [0027] 0x0000  [0028] 0x0000  [0029] 0x0000  [002A] 0x0000  [002B] 0x0000  [8000] 0x00B0  [8010] 0x00FD 

------------------------(Dev 0x7)------------------------
[0000] 0x0000  [0001] 0x0088  [0005] 0x0080  [0010] 0x1001  [0011] 0x0080  [0012] 0x4000  [0013] 0x0001  [0014] 0x0000  
[0015] 0x0000  [0016] 0x2000  [0017] 0x0000  [0018] 0x0000  [0019] 0x0000  [001A] 0x0000  [001B] 0x0000  [0030] 0x0003 

------------------------(Dev 0x1e)------------------------
[0000] 0x0E10  [0001] 0x03BC  [0002] 0x831B  [0003] 0xAA4E  [0004] 0xD560  [0005] 0x2000  [0006] 0x1114  [0007] 0xDD05  
[0008] 0x000D  [0009] 0x0380  [000A] 0x4000  [000B] 0x0D10  [000C] 0x0371  [000D] 0x2F80  [000E] 0x0000  [000F] 0x1453  
[0010] 0x0000  [0011] 0x0000  [0012] 0xFFFD  [0013] 0xFFFD  [0014] 0xFFFD  [0015] 0x8180  [0016] 0xF083  [0017] 0x2000  
[0018] 0x0C20  [0019] 0x2500  [001A] 0x4C20  [001B] 0x1020  [001C] 0x0000  [001D] 0x2000  [001E] 0x0000  [001F] 0x0000  
[8003] 0x0283  [8004] 0x017C  [8020] 0xF3FF  [8021] 0x010F  [802A] 0x02FD  [802B] 0x02FD  [802C] 0x0207  [802D] 0x02FD  
[802E] 0x02FD  [802F] 0x0207  [8040] 0x0000  [8041] 0x0000  [8042] 0x0000  [8100] 0x0000  [8101] 0x0000  
    

Is there any suggestion?

  • Hi Yong,

    Could you try this configuration?
    mdio write 0x1e 0x0000 0x8610
    mdio write 0x1e 0x0000 0x0e10
    mdio write 0x1e 0x001D 0x2000
    mdio write 0x07 0x0000 0x2000 //Disable AN, write 0x2000 instead 0x0000
    mdio write 0x01 0x0096 0x0000
    mdio write 0x1e 0x0001 0x0300
    mdio write 0x1e 0x0002 0x831B
    mdio write 0x1e 0x0003 0xAA4E
    mdio write 0x1e 0x8020 0x03ff
    mdio write 0x1e 0x8021 0x010F
    mdio write 0x1e 0x0004 0xD560
    mdio write 0x1e 0x0006 0x1114
    mdio write 0x1e 0x0007 0xDD05
    mdio write 0x1e 0x000e 0x0008

    Please try these values and let me know your results.

    Best Regards,
    Luis Omar Moran
    High Speed Interface
    SWAT Team
  • Tanks ,I have disabled the AN functions,and it looks like better now, but the new problem is it may not work with some devices connect with SFP

        I tested tlk10232 connected with another 3 devices using SFP , these 3 published devices work well with each other, but the result is tlk10232 can only link with 2 of them,  1 fail

        if link , status register 0x1e.0xf is 0x1c03, all status is OK

        if fail, status register 0x1e.0xf is 0x1c13, I found in datasheet that when bit4 set, receive fifo is reset, but I cannot know any more about this bit, canyou give me some suggestion,THANKS


        

  • Hello Yong,

    Sorry for the delay. These devices is intended to backplanes (copper), but is also able to interface with SFP/SFP+ modules, hence, you need to try with another settings for registers HS_SERDES_CONTROL_2 & HS_SERDES_CONTROL_3 (SWING, ENTRACK, EQPRE, CDRMULT, CDRTHR). Please try another values for both registers and let me know your results.

    I hope this helps.

    Regards,

    Luis Omar Moran

    High Speed Interface

    SWAT Team

  • Hello Luis :

    Thank you for your replies

    I have tested (SWING, ENTRACK, EQPRE, CDRMULT, CDRTHR)  with many combinations, all results are that TLK10232 still cannot link with the device, and the value of register 0x1E.0x000F  is still 0x1C13,the bit   "receive fifo is reset " still exist; Now i have no idea how to resolve this problem, I need you more helps, thank you 

  • Hello Luis :

       Dos the "receive fifo is reset " means some error happened in CTC block

  • Hello Luis :

    Dos the "receive fifo is reset " means some error happened in CTC block
  • Hi Yong,

    Yes, you are right regading the FIFO error. So although CTC is by default ON, it won't really work because the FIFO depth is 8, which has no CTC. You maybe need to change it to any of the others.
    000 = 8-deep (no CTC)
    001 = 12-deep
    010 = 16-deep
    011 = 24-deep
    1xx = 32-deep 

    As well, could you dump all your entire configuration to find out a possible wrong value?

    Thanks,

    Luis

  • Hello Luis :
    I cannot configure the fifo deep under 1G-KX mode for it only apply to 10G mode, I will give you my configurations and dump latter,please help me to find some reasons causing fifo reset, for example,dos clock jitter may cause fifo reset?
  • Hi Yong,

    Since you are configuring the device in 1G-KX mode, you need to set ST pin = 1 (Clause 22 - No Auto Negotiation). If the ST pin = 0 (Clause 45) the mode is determined through Auto Negotiation feature. Please try setting ST = 0.

    Best Regards,
    Luis
  • Hi Luis

       Our configurations is always ST=0,we test our device with CSCIO,it still cannot link using SFP

  • Hello Yong,

    Would you mind try this configuration please?

    KX with Auto Negotiation disabled, with 156.25 MHz
    Refclk, Data Rate = 3.125Gbps
    *Note: Script only provisions 1 channel based on PHY address setting. To provision all channels at the same
    time, write 1’b1 to 30.0.11 GLOBAL_WRITE after device reset.
    • Device Pin Settings
    o Ensure ST input pin is Low
    o Ensure MODE_SEL input pin is Low
    o Ensure PRBSEN input pin is Low
    o Ensure REFCLK_SEL input pin is Low
    • Reset Device
    o Issue a hard or soft reset (RESET_N asserted for at least 10 us -or- Write 1’b1 to 30.0.15)
    • Mode selection
    o Write 1’b1 to 30.29.13 to enable 1GKX manual setting

    o Write 1’b0 to 30.150.1 to disable Link Training
    o Write 1’b0 to 7.0.12 to disable Auto negotiation
    o Write 1’b0 to 30.1.11 to set device to 1G-KX mode
    o Write 4’b0111 to 30.2.3:0 to set HS PLL multiplier to 10x
    • HS Serdes settings
    o Write to 30.3, 30.4 (Refer to “tlk10232 Link Training Optimization Guide” for recommended values) At this point please try different settings for HS_SERDES_CONTROL_2 & 3
    • Reserved Register settings
    o Write 16’h001F to 30.32801
    • Issue Data path Reset
    o Write 1’b1 to 30.14.3
    • Wait for 1000ms
    Device provisioning is complete at this point.

    I hope this helps, regards.

    Luis

  • Yong,

    By the way, depending on the link conditions, you may need to change the default configuration of 0x1E.0003 and 0x1E.0004. For optical connections, we typically recommend changing HS_ENTRACK (0x1E.0004 bit 15) to 1’b1 and HS_EQPRE (0x1E.0004 bits 14:12) to 3’b101. This can be a starting point, but you may need to do some BER testing to optimize the values.

    Regards,
    Luis
  • Luis
    I have test your configurations ,but the problem still exists.
    I can make the device link up with fllowing steps:
    1. tlk10232 is conneted with device using sfp , configuring the tlk as previous,now link is down
    2. enable tlk
    pma loopback,now link is up
    3. disable pma loopback, link is still up,test link with flow,they work well
    how could this happen ?
  • Hello Yong,

    Could you send me a block diagram/picture of your system?

    Thanks,

    Luis

  • Hi Luis,

        I found another way to avoid this problem,when link is down, following steps as this:

       1、POWER DOWN the BCM56334 MAC

       2、disable TLK10232 LS_RX_ENTX bits in 0x1E.0x0007 

       3、delay 10ms and POWER UP the BCM56334 MAC

       4、delay 40ms and enable  TLK10232 LS_RX_ENTX bits

  • i  tested 3 kind of device from different producter,all of them using bcm54640 phy. i am sure that this problem happens only if remote device is bcm54640.