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.

[参考译文] DP83869HM:设置数字环回放大器(&A);确认结果

Guru**** 2411070 points
Other Parts Discussed in Thread: DP83869HM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1102478/dp83869hm-setting-up-digital-loopback-confirming-results

器件型号:DP83869HM

大家好、  

我们尝试通过环回测试来验证硬件设计。 具体而言、我们正在尝试根据数据表/论坛帖子中的信息设置近端数字回路。

我们的系统:

  •  使用 DP83869HM 收发器  
  • SGMII 至铜线模式
  • 在 Intel FPGA 中实例化的 MAC
  • MAC 到 PHY 的连接是 SGMII
  • 以1gig 的速度运行

设置数字回送所采取的步骤:

  • Write 0x8000 to reg 0x001F<-执行软件重启(将 PHY 寄存器值重置为默认值)
  • Write 0x0140 to reg 0x0000<-设置1000Base-T、禁用自动协商
  • Write 0x5028 to reg 0x0010关闭自动 MDI-X、进入手动模式、选择 MDI-X
  • Write 0xF004 to reg 0x0016<-启用数字回送、将 PRBS 置于连续模式
  • Write 0x4000 to reg 0x001F<-执行软件复位(保留 PHY 寄存器值)

注意:我们已经开发了一些定制代码来根据 TI 和 Intel 数据表设置 PHY。 此自定义代码在上述块之前执行。 我们已经使用和不使用此自定义代码进行了测试。

验证环回是否正常工作所采取的步骤:

  • 检查寄存器0x001 (BMSR)、查找 LINK_STS1为1 (链路打开)
  • 检查寄存器0x0039 (PRBS_TX_CHK_CTRL)、查找任意数量的错误字节
  • 检查寄存器0x003A (PRBS_TX_CHK_BYTE_CNT)、查找任意数量的错误字节

在所有情况下、链路状态(LINK_STS1)均已关闭

在所有情况下、PRBS_TX_CHK_CTRL 和 PRBS_TX_CHK_BYTE_CNT 寄存器都为0

因此、我现在的问题是:

  1. 上面列出的设置数字回送的步骤是否正确? 我们是否缺少了什么?
  2. 是否有其他方法可以验证数字回路是否正常工作?

下面是尝试设置数字回送的运行的寄存器转储。 请注意、下面的 BMSR 指示 PHY 链路未启动、并且两个 PRBS 寄存器都指示接收到0 (错误或正确)字节。

PHY_REG_VALUES {...}  
  BMCR  4416   
  BMSR  31049  
  PHYIDR1 8192   
  PHYIDR2 41201  
  Anar  481
  ALNPAR 49633  
  ANER  111
  ANNPTR 8193   
  ANLNPTR 18432  
  Gen_CFG1  768
  Gen_Status1 19456  
  REGCR 0  
  地址 0  
  ONEKSCR 61440  
  PHY_CONTROL 20488  
  PHY_STATUS 4098   
  INTERRUPT_MASK 0  
  INTERRUPT_STATUS  40130  
  Gen_CFG2  10695  
  RX_ERR_CNT 0  
  BIST_CONTROL  4.  
  Gen_STATUS2 64  
  LEDS_CFG1 24912  
  LEDS_CFG2 17476  
  LEDS_CFG3 2.   
  Gen_CFG4  18.  
  GEN_CTRL  0  
  ANALOG_TEST_CTRL  0  
  GEN_CFG_ENH_AMIX  0  
  GEN_CFG_FLD 0  
  GEN_CFG_FLD_THR 0  
  Gen_CFG3  0  
  RGMII_CTRL 80  
  RGMII_CTRL2 0  
  SGMII_AUTO_NEG_STATUS 3.  
  PRBS_TX_CHK_CTRL  0  
  PRBS_TX_CHK_BYTE_COUNT 0  
  G_100BT_REG0  1952   
  SerDes_SYNC_STS 310
  Strap 3072    
  ANA_RGMII_DLL_CTRL 119
  RXF_CFG 4096   
  RXF_STATUS 0  
  IO_MUX_CFG 3084   
  TDR_GEN_CFG1  1874   
  TDR_GEN_CFG2  51280  
  TDR_SEG_Duration1 21286  
  TDR_SEG_DURATION2 40990  
  TDR_GEN_CFG3  59766  
  TDR_GEN_CFG4  6607   
  TDR_peaks LOC_A_0_1 0  
  TDR_peaks LOC_A_2_3 0  
  TDR_peaks LOC_A_4_B_0   
  TDR_peaks LOC_B_1_2 0  
  TDR_peaks LOC_B_3_4 0  
  TDR_peaks LOC_C_0_1 0  
  TDR_peaks LOC_C_2_3 0  
  TDR_peaks _LOC_4_D_0   
  TDR_peaks LOC_D_1_2 0  
  TDR_peaks LOC_D_3_4 0  
  TDR_GEN_STATUS 0  
  TDR_peaks 符号_A_B 0  
  TDR_peaks _符号_C_D 0  
  OP_MODE_DECODE 70  
  GPIO_MUX_CTRL 16762  
  FX_CTRL 4416   
  FX_STS 24937  
  FX_PHYID1 8192   
  FX_PHYID2 41201  
  FX_ANADV  32  
  FX_LPABL  16385  
  FX_ANEXP  3.  
  FX_LOCNP  8193   
  FX_LPNP 0  
  FX_INT_EN 511
  FX_INT_STS 17.  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Neil、

    • 对于数字回送的设置 ,您可以使用以下脚本:
      • 01DF 0046 //启用 SGMII 到铜线
        00FE E720
        0000 0140
        0010 5008.
        0016 0008
        001F 4000
    • 在写入寄存器时、请确保具有扩展寄存器:
      • MMD "1F"寄存器的写入过程:

        写入 REG<000d>= 0x001F
        写入 REG<000E>=


        写入 REG<000d>= 0x401F
        写入 REG<000E>=

        MMD "1F"寄存器的读取过程:

        写入 REG<000d>= 0x001F
        写入 REG<000E>=


        写入 REG<000d>= 0x401F
        阅读 REG<000E>

        注:要读取/写入 MMD“1”寄存器,请用01替换1F。
        注意:上述写入和读取过程通常用于地址大于0x001F 的寄存器。 但它也可用于一般的任何地址。

    --

    此致、

    林山民

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

    您好、Hillman、  

    一些后续问题。

    1)我在第9.3.4.1节中看到、它规定"配置回送模式时、回送配置寄存器(LOOPCR)、地址0x00FE、应设置为0xE720 "。 这与您的建议相匹配,但在文档的任何其他部分都不会描述或调用此寄存器。此外,此处的线程(e2e.ti.com/.../dp83869hm-loopback-mode)意味着在大多数情况下,不需要写入此寄存器。

    您能否提供一些有关该寄存器的功能、它接受的值以及我们应该如何与它交互的说明?

    2) 2)这是为了将寄存器0x0016的值设置为0x0008。 这是 BIST 寄存器。 写入0x0008 PUT 处于模拟回送模式。 我们正在尝试使用数据表中建议的与 SGMII 相关的数字回路。 我们应该改用模拟器件吗?

    3)再次写入寄存器0x0016到0x0008的值。 我假设我们需要启用 PRBS 才能生成数据包、并让 RX 校验器检查它们的有效性。 我在这里有什么误解吗?

    4) 4)最后、我们如何知道回送模式是否正常工作? 我们是否可以查看特定的寄存器或值来确定它是否正常工作?

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

    您好、Hillman、  

    我想在落实上述建议后提供一些反馈。

    在运行这些更改后、我们观察到 PHY 链路实际上确实会出现(以前没有出现)。但是我们观察到 PRBS 寄存器永远不会递增(在所有测试中、这两个都显示为0)。

    我是否应该查看另一个寄存器以查看数据是否正在回送中传输? 是否有其他方法来确定 PRBS Tx 和 Rx 校验器的结果?

    以下是寄存器转储:

    请注意、PHY BMSR 寄存器指示链路已建立。 但是、两个 PRBS 寄存器仍然为0

    PHY_REG_VALUES{...}
    BMCR 320
    BMSR 31053.
    PHYIDR1 8192
    PHYIDR2 41201
    Anar 481
    ALNPAR 0
    ANER 100
    ANNPTR 8193
    ANLNPTR 0
    Gen_CFG1 768
    Gen_Status1 28672
    REGCR 16415
    地址59168
    ONEKSCR 61440
    PHY_CONTROL 20488
    PHY_STATUS 44034
    INTERRUPT_MASK 0
    INTERRUPT_STATUS 1088
    Gen_CFG2 10695
    RX_ERR_CNT 0
    BIST_CONTROL 8.
    Gen_STATUS2 64
    LEDS_CFG1 24912
    LEDS_CFG2 17476
    LEDS_CFG3 2.
    Gen_CFG4 18.
    GEN_CTRL 0
    ANALOG_TEST_CTRL 0
    GEN_CFG_ENH_AMIX 0
    GEN_CFG_FLD 0
    GEN_CFG_FLD_THR 0
    Gen_CFG3 0
    RGMII_CTRL 80
    RGMII_CTRL2 0
    SGMII_AUTO_NEG_STATUS 3.
    PRBS_TX_CHK_CTRL 0
    PRBS_TX_CHK_BYTE_COUNT 0
    G_100BT_REG0 1952
    SERDES_SYNC_STS 262
    Strap 3072
    ANA_RGMII_DLL_CTRL 119
    RXF_CFG 4096
    RXF_STATUS 0
    IO_MUX_CFG 3084
    TDR_GEN_CFG1 1874
    TDR_GEN_CFG2 51280
    TDR_SEG_Duration1 21286
    TDR_SEG_DURATION2 40990
    TDR_GEN_CFG3 59766
    TDR_GEN_CFG4 6607
    TDR_peaks LOC_A_0_1 0
    TDR_peaks LOC_A_2_3 0
    TDR_peaks LOC_A_4_B_0
    TDR_peaks LOC_B_1_2 0
    TDR_peaks LOC_B_3_4 0
    TDR_peaks LOC_C_0_1 0
    TDR_peaks LOC_C_2_3 0
    TDR_peaks _LOC_4_D_0
    TDR_peaks LOC_D_1_2 0
    TDR_peaks LOC_D_3_4 0
    TDR_GEN_STATUS 0
    TDR_peaks 符号_A_B 0
    TDR_peaks _符号_C_D 0
    OP_MODE_DECODE 70
    GPIO_MUX_CTRL 16762
    FX_CTRL 4416
    FX_STS 24937
    FX_PHYID1 8192
    FX_PHYID2 41201
    FX_ANADV 32
    FX_LPABL 16385
    FX_ANEXP 3.
    FX_LOCNP 8193
    FX_LPNP 0
    FX_INT_EN 511
    FX_INT_STS 17.

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

    您好、Neil、

    • 将寄存器 00FE 更改为 环回模式是设计限制。
    • 是的、您回答正确。 数字回送应为0004而不是0008。 很抱歉造成混淆。
    • 如果您正在运行 PRBS 测试、请尝试写入值 F004而不是0004以启用 PRBS 测试。
    • 运行测试后、确保寄存器  PRBS_TX_CHK_CTRL 位0和1为1、以启用 PRBS 校验器和连续模式。

    --
    此致、

    林山民

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

    您好、Hillman、  

    关于设置 PRBS_TX_CHK_CTRL 寄存器。 有关位0状态的文档"PRBS TX 校验器用于外部反向环路)。 这似乎不是我们的情况、我在这里缺少什么吗?

    进行建议的更改时、我们仍然会看到完全相同的行为。 PRBS_TX_CHK_BYTE_CNT 寄存器始终为0。 PRBS_TX_CHK_ERR_CNT 寄存器也始终为0。 也许我不了解 PRBS 的设计工作原理。 我的理解如下:

    • 在 BIST 中打开 PRBS 发生器(0x0016)
    • 让代码执行
    • PRBS 发生器将生成发出并环回的帧
    • PRBS TX 校验器接收环回帧并检查 准确度
    • PRBS TX 校验器使用    接收到的帧更新 PRBS_TX_CHK_BYTE_CNT 和 PRBS_TX_CHK_ERR_CNT

    我是否缺少了另一个步骤? 我们是否需要对 PRBS 发生器执行其他设置?

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

    您好、Hillman、  

    添加更多数据。

    当我们通过寄存器0x0016开启 PRBS 帧生成时、我们可以在 MAC 寄存器中看到一些可用的统计信息。 例如、我们可以看到、我们收到了一组帧、其中包含 CRC 错误、接收到的错误帧数以及总数据包数等。

    也就是说、PRBS 似乎正在生成帧并将帧发送到 MAC。 但是、PRBS TX/RX 校验器似乎不起作用、使我们能够了解数据是否在环回过程中正确传播。

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

    您好、Neil、

    我们将在实验室中检查 PRBS 测试、并在本周晚些时候向您提供响应。 同时、您能否检查寄存器0x0039位0是否为1或启用 PRBS TX 校验器是否启用?

    --

    此致、

    林山民

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

    您好、Hillman、  

    非常感谢您花时间了解这一点、非常感谢!

    有关寄存器0x0039的更多信息。 该寄存器的位0和1只有在我显式将它们设置为1时才会被置位。 我已经运行了一些构建、我们在其中手动设置该值、并看到它仍然存在。 但是、与此相关的 PRBS TX/RX 校验器结果没有差异。

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

    您好、Neil、

    只需澄清一下、您是通过 MAC 还是内部发生器启用 PRBS。  我之前提出的建议都取决于 PRBS 测试通过内部数据发生器生成。 您是否有两个869链路连接在一起、一 个电路板 启用反向环回、另一个电路板通过数据发生器和校验器启用 PRBS 测试?  

    --

    谢谢、

    林山民

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

    您好、Hillman、  

    我们正在尝试使用 PRBS 设置近端数字回路。

    当您说"通过 MAC 或内部发生器启用 PRBS "时。 据我了解、启用 PRBS 的唯一方法是通过 PHY 寄存器。 也就是说、我们将启用环回、并通过 TI 数据表中列出的 PHY 寄存器启用 PRBS。

    我们的设置仅为一个板。 我们不连接任何外部设备。 我们希望此板运行近端数字回路(因此不与外部世界通信)、并让 PRBS 生成的数据环回 MAC、并通过内置的 PRBS 校验器检查有效性。

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

    您好、Neil、

    感谢您清除困惑。  如果使用内部发生 器启用 PRBS 测试、则 PRBS 会检查环路进入 MAC 侧的信号。 下面的图表提供了进一步的说明:  

    --

    此致、

    林山民

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

    您好、Hillman、  

    感谢您的示意图、这非常有帮助!

    在理解该图后、我们将尝试执行近端数字回路、以测试系统的数字和 PCS 部分。

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

    您好、Neil、

    很高兴图表能为您提供帮助。 如果您有进一步的问题、请告诉我。

    --
    此致、

    林山民

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

    您好、Hillman、  

    我原来的问题仍然存在。 根据您在文档中提供/存在的所有信息、我们到目前为止无法设置回送、并且看到 PRBS 寄存器针对接收到的良好和不良数据包递增。

    以帮助我理解。 即使物理线路设置不正确、如果 PRBS 和环回工作正常、我们也会看到 PRBS_TX_CHK_ERR_CNT 中的错误计数器增加。 是这样吗?

    无论哪种方式、我们都无法正确设置回送、因此我们非常感谢您提供的任何其他信息/步骤。

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

    您好、Neil、

    您能否提供您为启用 PRBS 测试和数字回送而编写的脚本。 我想仔细检查您是否错过了一些特定的步骤。 同时、我还将在本周测试869 PHY。

    --

    此致、

    林山民

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

    您好、Hillman、

    下面是我们为设置数字回送和 PRBS 帧生成/校验所采取的当前步骤集

    1. 将0xE720写入寄存器0x00FE <-如文档中所述。不确定这个寄存器到底是什么
    2. 将0x0140写入寄存器0x0000 <- GigE 速度、禁用自动协商
    3. 将0x5028写入寄存器0x0010 <- Set Manual MDI-X
    4. 将0xF004写入寄存器0x0016 <-启用数字回送、开启连续 PRBS 模式
    5. 将0x4000写入寄存器0x001F <-软件复位(保留寄存器值)
    6. 将0x0003写入寄存器0x0039 <-连续 PRBS 校验器模式、启用 PRBS TX 校验器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Neil、

    我将在实验室中试用、并在本周晚些时候向您提供答复。

    --

    此致、

    林山民

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

    您好、Neil、

    我们仍在尝试找出您在团队中进行 PRBS 测试时面临的问题。 我们可能需要 在下周晚些时候为您提供解决方案。 同时、您能否告诉我为什么需要运行 PRBS 测试?  

    --

    此致、

    林山民

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

    您好、Hillman、  

    感谢您的更新!

    因此、我们希望运行 PRBS 测试、以便验证我们针对 ENET/PHY 的电路板设计。 具体而言、我们希望验证数据线是否正确/不正确。

    谢谢、

    Neil Ruggiero

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

    您好、Neil、

    如果您要验证电路板内的电路板设计、 您是否可以  从 MAC 侧发送和接收数据包并在 PHY 上启用数字回路?  

    --

    此致、

    林山民

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

    您好、Hillman、  

    我们有一些从 MAC 侧生成数据包的想法、但也希望能够使用 PRBS 来生成数据包。

    谢谢、

    Neil Ruggiero

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

    您好、Neil、

    您的 MAC 是否也能够读取 PRBS 流? 上周我在实验室中检查、当我们使用  869PHY 中的内部发生器生成 PRBS 流时、我们能够读取 PRBS 流。 这对您的应用有帮助吗?  

    --

    此致、

    林山民

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

    您好、Hillman、  

    这是一个很好的问题! 我将查看 MAC 侧的内容、看看我们是否可以读取 PRBS 生成的数据。

    但是、我仍然不清楚 PRBS TX Checker 位(一个用于良好数据包、一个用于不良数据包)为什么始终为0。 如果 PRBS 正常工作、我是否会看到这些寄存器递增?

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

    您好、Neil、

    我将与设计团队讨论此问题。 它可能会在某个时候执行任务。 我会尽快返回给您。

    --

    此致、

    林山民

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

    您好、Hillman、  

    只需停下来查看此主题是否有任何更新。

    谢谢、

    Neil Ruggiero

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

    您好 Neil,

    Hillman 在几天内都是 ooo、下周中旬左右将回复您。

    此致、

    Gerome

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

    您好、Neil、

    我们仍在内部讨论这个问题。 您是否能够从 MAC 接收任何 PRBS 流?

    很抱歉、我们花了很长时间、下面是869 PHY 的内部 PRBS 测试流程:

    1、设置数字回路(将寄存器00FE 写入 E720、将寄存器0000写入0140、寄存器0010 5028、寄存器0x0016写入0x0004)
    2.等待链路建立
    3.启用 PRBS 发送和校验器对铜(向寄存器0x0016写入0xF004)
    4、等待 PRBS 锁定(等待寄存器0x0017的位[11]设置为1'B1)
    5.读取数据包统计信息
      A. 将寄存器0x0072写入0x0201以锁定统计信息
      B. 读取以下寄存器
        一 0x0071 (PRBS 字节计数)
        II. 0x0072 (位[7:0]是错误计数)
        III. 0x01a8 (数据包计数)
        四. 0x01a9 (数据包计数)

    --

    此致、

    林山民