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:10GBASE-KR 自动协商和链路训练

Guru**** 2386620 points
Other Parts Discussed in Thread: TLK10232
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/897318/tlk10232-10gbase-kr-auto-negotiation-and-link-training

器件型号:TLK10232

您好!

我们已将 TLK10232集成到当前设计中、该设计涉及在低速端连接摄像头传感器、而在高速端连接到 Intel Arria10 FPGA 10GBASE-KR PHY。 Intel FPGA Arria10 10GBASE-KR PHY 内核支持自动协商、链路协商和 FEC。 当 TLK10232退出复位和断电时、我们遵循 TLK10232启动过程"KR with Auto Negotiation、Link Training、FEC、with 156.25MHz/312.5MHz REFCLK"。 我们使用156.25Mhz REFCLK。 当执行启动过程时、我们首先会在轮询 HS_AGC_LOCKED 位时卡住、因为这一点永远不会被设置。  

其他一些问题包括:

1) 1)数据表显示 HS PLL 倍频器需要为16.5x、但默认值为20x。 启动过程中没有提到对其进行更改?

2) 2)我们执行的另一项测试是、我们能够禁用/启用 FPGA 侧的链路训练、TLK10232反映 了 AN_STATUS 寄存器的 AN_LP_ANability 中的正确值。 因此、似乎正在进行某种通信。 但是、当我们以相反的顺序执行此操作时、FPGA 根本没有检测 到 AN_LP_异 能。

您是否有任何建议来调试为什么我们无法获取 HS_AGC_LOCKED 或通过自动协商和链路训练成功?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    1) 1)数据表显示 HS PLL 倍频器需要为16.5x、但默认值为20x。 启动过程中没有提到对其进行更改?

    正确、根据数据表、在156.25MHz REF_CLK 下以10.3125Gbps 运行时、高速 PLL 倍频器需要为16.5x。

    表3-1. 10GBASE-KR 模式的特定线路速率和参考时钟选择:

    低速端

    高速端

    线速率

    (Mbps)

    串行器/解串器 PLL 乘法器

    速率

    REFCLKP/N (MHz)

    线速率

    (Mbps)

    串行器/解串器 PLL 乘法器

    速率

    REFCLKP/N (MHz)

    3125

    10.

    完全

    156.25.

    10312.5

    16.5.

    完全

    156.25.

    3125

    5.

    完全

    312.5.

    10312.5

    8.25.

    完全

    312.5.

    2) 2)我们执行的另一项测试是、我们能够禁用/启用 FPGA 侧的链路训练、TLK10232反映 了 AN_STATUS 寄存器的 AN_LP_ANability 中的正确值。 因此、似乎正在进行某种通信。 但是、当我们以相反的顺序执行此操作时、FPGA 根本没有检测 到 AN_LP_异 能。 您是否有任何建议来调试我们无法获取 HS_AGC_LOCKED 或通过自动 协商和链路训练成功的原因

     

    您需要检查的一些项目:

    • 是否可以确认正在为 KR 操作配置 MODE_SEL 引脚和寄存器1E.0001位10? 如果使用第45条模式、对于 KR、SW_PCS_SEL (寄存器1E.0001位11)应设置为1。

    表2-3. TLK10232工作模式选择

    ST=0 (第45条)

    ST=1 (第22条)

    {MODE_SEL 引脚、寄存器

    1E.0001第10位}

    1个

    10G

    10G

    01

    10G

    10G

    00

    10G-KR/1G-KX (由自动协商确定)

    1G-KX

    (无自动协商)

    • 您能否 确认在 TLK PHY 器件上启用了链路训练? 请参见下面的相关寄存器位。

    表8-68. LT_RAIN_CONTROL

    器件地址:0x01寄存器地址:0x0096默认值:0x0002

    名称

    说明

    访问

    15:2

    保留

    仅供 TI 使用。 始终读取为0。

    RW

    1

    LT_training 启用(RXG)

    1 =根据10GBASE-KR 标准启用启动协议(默认1'B1)

    0 =禁用启动协议

    该位应设置为高电平、以便自动列车模式正常工作

    RW

    0

    LT_RESTON_training (RXG)

    1 =复位链路/自动列车

    0 =正常运行(缺省值1'b0)

    RW/SC

    因此、

    Rodrigo Natal

    HSSC 应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rodrigo、

    ST=0且 MODE_SEL =0。  SW_PCS_SEL 也设置为1。 LT_RAIN_CONTROL 也设置为默认的0x02、并启用 LT_training _enable。

    您是否有任何建议来调试我们无法获取 HS_AGC_LOCKED 或通过自动 协商和链路训练成功的原因。 启动过程显示这应该被锁定。  

    - Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我还没有解释为什么 HS_AGC_LOCKED 未置为有效。 如果您设置 HS_AGCCTRL[1:0]=B10来强制衰减器关闭、您是否能够启动 KR 链路?

    -Rodrigo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rodrigo、

    如果我强制衰减器关闭、我就不会再取得任何进展。 我也看不到任何设置的故障位、表示自协商失败或链路协商失败。 这是否表示该零件从未尝试过自动协商或连接序列? 我们可以特别查看的寄存器是否表明存在 TLK10232或 FPGA 设置方面的问题?

    - Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mike:

    • 您可以尝试通过下面的位检查您是否能够触发培训重启。

    表8-68. LT_RAIN_CONTROL

    器件地址:0x01寄存器地址:0x0096默认值:0x0002

    名称

    说明

    访问

    15:2

    保留

    仅供 TI 使用。 始终读取为0。

    RW

    1

    LT_training 启用(RXG)

    1 =根据10GBASE-KR 标准启用启动协议(默认1'B1)

    0 =禁用启动协议

    该位应设置为高电平、以便自动列车模式正常工作

    RW

    0

    LT_RESTON_training (RXG)

    1 =复位链路/自动列车

    0 =正常运行(缺省值1'b0)

    RW/SC

    • 请参阅 TLK10232数据表表8-69至8-73、其中介绍了各种 LINK_training 状态和控制寄存器。 在下面显示的寄存器上捕获高级 LT 状态。

    www.ti.com/.../tlk10232.pdf

    表8-69. LT_RAING_STATUS

    器件地址:0x01寄存器地址:0x0097默认值:0x0000

    名称

    说明

    访问

    3.

    LT_training 失败(RXG)

    1 =检测到培训失败

    0 =未检测到培训故障

    RO

    2.

    LT_START_Protocol (RXG)

    1 =正在进行启动协议

    0 =启动协议完成

    RO

    1

    LT_FRAME_LOCK (RXG)

    1 =检测到训练帧分界

    0 =未检测到训练帧分界

    RO

    0

    LT_RX_STATUS (RXG)

    1 =接收器已接受培训并准备好接收数据

    0 =接收器培训正在进行

    RO

    此致、

    Rodrigo Natal

    HSSC 应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rodrigo、  

    触发重启链路训练也不会让我再继续。

    我尝试后退一步、禁用自动协商和链路训练。 我看到 PCS_FAULT 位被置位。 是什么导致该故障位被置位? 我也无法使 PC_loopback 正常工作。  

    对于硬件是否按预期工作的完整性检查、我是否可以执行任何简单的步骤?

    - Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果在 FPGA Tx 上禁用 KR 链路训练并仅输出10.3125Gbps PRBS 数据、TLK 器件是否能够锁定此高速数据并运行其 PRBS 校验器而不会出现任何错误? 有关 PRBS 测试模式配置说明、请参阅 TLK 数据表。

    因此、

    Rodrigo Natal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rodrigo、

    我正在尝试您以前的建议。 我们正在将英特尔的示例项目用于10GBASE-KR PHY、并且仍在努力使 AN 和 LT 正常工作。 使用此示例项目、我现在在 CHANNEL STATUS_1中设置 RX_FIFO_OVERflow 位。 导致此溢出的原因是什么?

    此外、如果我禁用 FPGA 内核中的序列发生器并发送 PRBS31位模式、则会看到 HS_AGC_LOCK 位变为高电平(我之前从未锁定过该位)。

    如果尝试和 LT、则设置 AN_STATUS 中的 REMOAL_FAULT 位、并在 LT_RAIN_STATUS 中设置 LT_START_Protocol。  

    您是否有基于上述信息的进一步建议?

    - Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 相关:使用此示例工程、我现在在 CHANNEL STATUS_1中设置 RX_FIFO_OVERflow 位。 导致该溢出的原因
      • 在10GKR 和10G 模式中、高电平表示接收数据路径(CTC 或时钟容差补偿) FIFO 中发生了溢出。
      • 问题:您是否尝试减小数据包大小或降低利用率(即传输的空闲时间更长)?
      • 问题:对于10G KR 的 REFCLK、您是否使用低抖动时钟? 根据数据表: 应使用低抖动参考时钟、其频率精度应在传入串行数据速率的±200PPM 以内(标称数据速率的±100PPM)。

    因此、

    Rodrigo Natal

    HSSC 应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rodrigo、

    忽略我之前的帖子、我认为我在 FPGA 示例设计中将 PRSBEN 引脚悬空、这导致了这个问题。 解决该问题后、我现在可以在链接上看到 An 和 LT 的尝试。 我实际上看到 LT_RX_STATUS 位变为高电平。 但是、我从未看到 AN_COMPLETE 位被置位。 问题是、就我所能知、FPGA 和 TLK10232会尝试 An 和 LT、然后发生故障、然后重新开始该过程。 如果我禁用 FPGA 中的 An 超时、这会无限期地发生。  

    因此、在我现在的位置、这两个部分似乎正在通信、但在整个链路中存在数据完整性问题。 我尝试最大化 HS_Swing 值,但没有成功。 对于优化"高频、长传输线"、您还有其他建议吗? 我正在尝试通读10GBASE-KR 链路优化指南。

    我也无法调整 FPGA 中的增益、因为当我尝试将 TLK10232置于测试图形模式时、FPGA 似乎看不到任何内容。 就我从数据表和启动过程中可以看出、我应该只需设置 PCS_TP_CONTRAINL=0x10、就可以在输出上启用 PRBS31。 是这样吗? 如果是、我无法使 FPGA 锁定到其接收器上的任何 PRBS31数据。  

    - Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 如果需要对 TLK Tx 到 FPGA Rx 的链路情况进行额外优化、则 TLK 具有输出后标和前标去加重功能。 我建议调整这些 Tx EQ 参数。 请参阅下表中的参数 TWPOST1、TXPRE 和 TWPOST2。  在这些参数中、我希望 TWPOST1能够提供最大的帮助。  

    表8-9. HS_SERDES_CONTRAL_4

     

    器件地址:0x1E                              寄存器地址:0x0005                                                              默认值:0x2000

    名称

    说明

    访问

    15.

    HS_RX_INVPAIR (RXG)

    接收器极性。

    0 =正常极性。 HSRXxP 认为是正数据。 HSRXxN 认为是负数据

    (默认值1'b0)

    1 =反极性。 HSRXxP 认为是负数据。 HSRXxN 认为是正数据

    RW

    14.

    HS_TX_INVPAIR (RXG)

    发送器极性。

    0 =正常极性。 HSTXxP 视为正数据、HSTXxN 视为负数据(默认值1'b0)

    1 =反极性。 HSTXxP 考虑负数据、HSTXxN 考虑正数据

    RW

    13.

    保留

    仅供 TI 使用(默认为1'B1)

    RW

    12:8

    HS_TWPOST1[4:0](RXG)

    相邻的后置卷曲器1分接头重量。 选择 TX 波形的 TAP 设置。 (默认值5'b00000)请参阅表8-10。

    RW

    7:4

    HS_TWPRE[3:0](RXG)

    前体抽头重量。 选择 TX 波形的 TAP 设置。 (默认值为4'b0000)参见表8-12。

    RW

    3:0

    HS_TWPOST2[3:0](RXG)

    相邻的后置卷曲器2抽头重量。 选择 TX 波形的 TAP 设置。 (默认值为4'b0000)请参阅表8-11。

    RW

    • 对于 FPGA Tx 到 TLK Rx 链路情况、TLK 具有自动自适应 Rx EQ (DFE + FFE)、无需终端用户配置。 除此之外、可以调整 HS_EQPRE[2:0]参数(见下表)以调整 Serdes Rx 前体均衡器设置

    器件地址:0x1E 寄存器地址:0x0004默认值:0x1500

    名称

    说明

    访问

    15.

    HS_ENTRACK (RXG)

    HSRX ADC 跟踪模式。

    0 =正常运行(缺省值1'b0)

    1 =强制 ADC 进入跟踪模式

    RW

    14:12

    HS_EQPRE[2:0](RXG)

    SerDes Rx 前体均衡器选择

    000 = 1/9光标振幅

    001 = 3/9光标振幅(默认值3'b001)

    010 = 5/9光标振幅

    011 = 7/9光标振幅

    100 = 9/9光标振幅

    101 =11/9光标振幅

    110 = 13/9光标振幅

    111 =禁用

    RW

    • 除了设置 PRBSEN=1、对于 PRBS、您唯一需要做的其它配置是为 PRBS31设置 HS_TEST_PATT_SEL[2:0]=B111。 请参阅数据表表表8-22。

    因此、

    Rodrigo Natal

    HSSC 应用工程师