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.

[参考译文] DP83825I:如何在 ETH-PHY 上使用 TDR 电缆诊断:DP83825I 检测短路?

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1479209/dp83825i-how-to-use-tdr-cable-diagnostics-on-the-eth-phy-dp83825i-to-detect-a-short

器件型号:DP83825I

工具/软件:

您好、

我们没有按钮或其他 GPIO 与我们的设备交互、因此我们希望使用特制的 RJ45插头与我们的设备交互。

 特制 RJ45插头具有以下连接:

- TD+和 TD- 短路
- RD+和 RD- 短接
-其他引脚未连接

1)能否通过 DP83825I 检测短路? 我按照指南(6.3.16.1 TDR)手动启动电缆诊断(TDR)、但 CDLAR6寄存器等于0x0100、这是为 Eth-PHY 保留的值。 如果 RJ45在没有连接任何电缆的情况下保持开路、则会产生相同的结果。

"TDR 也可以通过电缆诊断控制寄存器(CDCR、地址:0x001E)第[15]位手动运行。 通过读取 CDCR 第[1:0]位的方式获得电缆诊断状态。 电缆诊断特定控制寄存器(CDSCR、地址:0x0170)中还提供了其他 TDR 功能(包括周期平均和交叉禁用)。  TDR [..] 将结果存储在相应的 TDR 电缆诊断位置结果寄存器#1 -#5 (CDLRR、地址0x0180至0x0184)和电缆诊断振幅结果寄存器#1 -#5 (CDLAR、地址0x0185至0x0189)中。"

-我注意到,我无法在 CDCR 中写入和读回 cfg_tr_sg_num 的值。 它始终为0、保留的内容。
-我注意到,我无法在  Cable_Diagnostic_Average_Cycles 的 CDSCR 中写入和读回值。 该位始终为0。

 

Ethernet-phy 在正常运行条件下运行良好。 我们使用 Linux 并使用 phytool (github.com/.../phytool) 从用户空间与 eth-phy 进行交互。

例如  

phytool 写入 eth0/0x0/0x001e 0x8000 #启动电缆诊断
睡眠1
phytool 读取 eth0/0x0/0x018a #读取 CDLAR6

2) CDCR 中的 cfg_rescal_en 的用途是什么? 是否应与电缆诊断一起执行?

3)是否需要事先执行(软)重置?

感谢您的支持和谨致问候、

Michael

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

    Michael

    运行 TDR 时、链路是否仍处于活动状态? 请确保链路伙伴静默以运行 TDR (即未唤醒、未连接等)。
    TDR 的目的是在链路断开或未建立时检测线路中的故障、并在连接到链路伙伴时检查通道的质量。
    但是、对于连接到链路伙伴的情况、链路伙伴必须保持静默、以便 DUT 注入的脉冲不受伙伴的影响。

    我们有一份有关如何使用 DP838235I TDR 特性的应用手册、请查看该应用手册、了解它是否能帮助您使 TDR 在 DP83825I EVM 上运行。

    e2e.ti.com/.../snla330a.pdf

    谢谢

    David

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

    您好、David:

    本应用手册看起来很有前景。 但是,我无法让它发挥作用。

    首先、我在理解该应用手册时遇到了一些困难。

    Eth-PHY  DP838235I 是否能够检测 TD+和 TD-之间的短路(RD+和 RD-也是如此)?
    2.如果我错了,请更正我,应用手册似乎将 TD+和 TD-汇总为通道 A (RD+和 RD-为通道 B )。 因此、为了检测 TD+和 TD-之间的短路  、我必须设置"在 A 上传输、在 A 上接收:0x170[14:13]= 2'b10"?

    第二:

    我尝试按照指示操作、但无法使其正常工作。 以下是我尝试过的步骤:

    - Linux 已启动。 网络接口 eth0可用、但插头是打开的、或者我们使用特制插头短接1/2和3/6 (TD+带 TD-、RD+带 RD-)。
    -我尝试设置段1 寄存器配置为0..10m ,但 不是所有的值都被接受。 至少我无法读回 寄存器0x0456、0x0416、0x0190、0x0173和0x0175的写入值。 仅接受0x0411和0x0178的新值。

    phytool 读取 eth0/0x00/0x0456 -> 0x0120
    phytool 读取 eth0/0x00/0x0411 -> 0x0113 (正常)
    phytool 读取 eth0/0x00/0x0416 -> 0x0120
    phytool 读取 eth0/0x00/0x0190 -> 0x0002
    phytool 读取 eth0/0x00/0x0173 -> 0x0807  
    phytool 读取 eth0/0x0/0x0175 -> 0x0000  
    phytool 读取 eth0/0x00/0x0178 -> 0x0482 (正常)
    phytool 读取 eth0/0x00/0x0170 -> 0x0002 (正常)



    当不接受分段1配置时、我尝试针对所有3种情况启动 TDR

    但 TDR 不报告任何错误。 以下是 CDLAR1 (0x185)、CDLRR1 (0x180) 和 CDLAR6 (0x18A)的输出(这在全部4种情况下是相同的)。

    CDCR (0x001E):  0x0102 (2表示 TDR 已完成)
    CDLAR1 (0x0185):0x0000 (如果是非零值、则报告峰值、但实际值为)
    CDLRR1 (0x0180):0x3100 (峰值位置)
    CDLAR6 (0x018A):0x0100 (峰值符号)

    此致、
    Michael

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

    Michael

    请给我几天时间、看看我能否 在 DP83825I EVM 上测试该条件。

    谢谢

    David

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

    您好、David:

    是否有任何更新? 您是否有机会在 DP838235I 上测试 TDR

    此致、

    Michael

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

    Michael

    我也看不到 DP83825I EVM 上预期的 TDR 结果、我与我们的设计团队联系、寻求该设计团队的支持。 我会在收到我们设计团队的回复后立即更新您。

    谢谢

    David  

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

    Michael

    下面是我使用的脚本

    1.寄存器地址'0456'='0608'
    2.寄存器地址'0411'='0813'  
    3. RegAddress '0416'='08A0'  
    4.寄存器地址'0170'='7C12'  
    5.寄存器地址'0173'='0D07'
    6.寄存器地址'0175'='1004'  
    7.寄存器地址'0178'='0002'  
    8.寄存器地址'001E'='8000'  

    写入地址0x190似乎不正确、需要修复。 您能否运行上述脚本、看看它是否在您这边有效?

    谢谢

    David

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

    您好、David:

    仅​​接受一小部分值。 附件是我使用的脚本和下面的输出。
    我针对 0x0170 # 0x4XXX 进行了测试(A 上发送、A 上接收:0x170[14:13]= 2'b10)。 开路和短路之间没有差异。

    写入地址0x190似乎不正确、需要修复。  
    这是否意味着此时以太网 PHY 不能用于 TDR? 还是有一种权变措施?

    此致、
    Michael


    #!/bin/sh

    cable_diagnostic(){
    ECHO "配置 TDR 为0..10m"
    phytool 写入 eth0/0x00/0x0456 0x0608
    phytool 写入 eth0/0x00/0x0411 0x0813
    phytool 写入 eth0/0x00/0x0416 0x08A0
    phytool 写入 eth0/0x00/0x0170 0x7C12
    phytool 写入 eth0/0x00/0x0173 0x0D07
    phytool 写入 eth0/0x0/0x0175 0x1004
    phytool 写入 eth0/0x00/0x0178 0x0002
    phytool 写入 eth0/0x00/0x001e 0x8000

    睡眠1

    回波"读回值"
    printf"0x0456:";phytool 读取 eth0/0x0/0x0456
    printf"0x0411:";phytool 读取 eth0/0x0/0x0411
    printf"0x0456:";phytool 读取 eth0/0x0/0x0416
    printf"0x0190:";phytool 读取 eth0/0x00/0x0190
    printf"0x0173:";phytool 读取 eth0/0x0/0x0173
    printf"0x0175:";phytool 读取 eth0/0x0/0x0175
    printf"0x0178:";phytool 读取 eth0/0x0/0x0178
    printf"0x001e:";phytool 读取 eth0/0x0/0x001e #应以2结束才能成功
    printf"0x0170:";phytool 读取 eth0/0x0/0x0170 # 0x4XXX ->在 A 上传输、在 A 上接收:0x170[14:13]= 2'b10

    回波"结果:"
    printf"0x0185:";phytool 读取 eth0/0x0/0x0185 #如果是非零值、则报告峰值:
    printf"0x0180:";phytool 读取 eth0/0x0/0x0180 #峰值位置
    printf"0x018a:";phytool 读取 eth0/0x0/0x018a #峰值符号
    }

    CABLE_DIAGNOSTIC


    ####输出:

    将 TDR 配置为0..10m
    读回值
    0x0456:0x0120
    0x0411:0x0813
    0x0456:0x0120
    0x0190:0x0002
    0x0173:0x0807
    0x0175:0x0000
    0x0178:0x0002
    0x001e:0x0102
    0x0170:0x0002
    结果:
    0x0185:0x0000
    0x0180:0x3100
    0x018a:0x0100




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

    Michael

    为了进行仔细检查、这些是扩展访问寄存器。 您是否使用以下过程写入这些扩展访问寄存器?

    谢谢

    David

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

    您好、David:

    感谢您的提示。 通过调整、读取和写入函数即可工作! 遗憾的是、我注意到测量不是100%可靠。

    开路:
    -在 AA 测量期间,在1000次测量中的30次测量中检测到短路。
    -当 AA 和 BB 连续进行测量时,在3000次测量中的2次测量中,在两个通道上都检测到短路。

    是否有办法调整参数以便始终检测到断线端开路和短路?

    此致、
    Michael

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

    Michael

    在 DP83825中、您可以存储5个故障位置。 0x180表示电缆上最近的故障位置。 如果客户只看到电缆中的一个开路或短路位置、则只有0x180会 更新。

    以下是读取寄存器0x180以获取故障位置后的详细计算。 这是否有助于提高 TDR 精度?

    谢谢

    David

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

    您好、David:

    我的问题不是故障位置、而是故障类型。 断线端有时被检测为短路。 是否有任何方法可以改进测量?

    例如、在1.43m 内检测到1.5m 电缆开路端短路。

    此致、

    Michael

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

    Michael

    请参阅下表、您可以同时使用峰值和符号来检测开路。 如果有峰值且符号为0、则表示为开路。 我还认为 TX = A 和 RX = A 有一个拼写错误、对于交叉短路、符号应该是1、而不是0。

    谢谢

    David

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

    您好、David:

    这正是我所做的。 为了检测短路、我检查了是否有峰值以及符号是否等于1'b1。 我对 AA 和 BB 测量重复了相同的步骤。 但是、有时我测量到电缆开路时的短路。  在不同的电缆长度下也会发生这种情况。

    我可以调整其他设置吗?  我们是否必须注意时序、例如配置/测量之前或之后?

    此致、

    Michael

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

    您好、Michael:

    David 目前正在出差、因此他的回复可能会延迟。 在此期间、我将为支持此主题提供帮助。 请允许我到明天之前熟悉 此 调试并提供响应。

    此致、

    Shane

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

    您好、Michael:

    以下是我对问题的理解、如果我误解了任何内容、请告诉我:

    您似乎正确看到了 Peak、但 偶尔会错误设置"peak_polarity_1"位。  这表示电缆短路、如果使用开路电缆进行测试、则不应进行设置。

    对于开路电缆上的 AA 测量、您会看到在1000次测量中的30次测量中检测到短路错误

    在打开的电缆上连续运行 AA 和 BB 测量时、您会看到3000次测量中的2次测量中检测到短路错误。

    我是否可以调整其他设置?  我们是否必须注意计时、例如配置/测量之前或之后?

     在测量极性位之前、您需要检查 TDR 是否完成。 您确定是这样 0x001E 位1已设置 将发生什么变化?

    此外、当您读取极性位时是否设置了0x001E 位0? 如果设置该位、则表示 TDR 已失败、结果将无效:

    此致、

    Shane

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

    嗨、Shane、

    tdr 您似乎正确地看到了峰值、但"peak_polarity_1" 位有时设置不正确。  这表示电缆短路、如果您使用开路电缆进行测试、则不应设置电缆短路。

    完全正确!

    tdr

    对于开路电缆上的 AA 测量、您会看到在1000次测量中的30次测量中检测到短路错误

    在打开的电缆上连续运行 AA 和 BB 测量时、您会看到3000次测量中的2次测量中检测到短路错误。

    [/报价]

    我们使用 dp83825i Eth-PHY 和各种电缆长度测试了其他电路板:0m、0.5m、1m 和5m。 这种情况发生的频率没有任何系统模式。 当检测到开路为短路时、似乎几乎是随机的。 0.5m 电缆的长度特别容易受到影响。

    tdr

     在测量极性位之前、您需要检查 TDR 是否完成。 您确定是这样 0x001E 位1已设置 将发生什么变化?

    此外、当您读取极性位时是否设置了0x001E 位0? 如果设置该位、则表示 TDR 已失败、结果将无效:

    [/报价]

    我确定设置了0x001E 位1且无错误。


    此外、我还跟踪0.5m 电缆 CDLRR1 (0x0180)的电缆故障位置是0x007或0x008。 使用 snla330a.pdf 中的计算结果可以得到: (DV-7)/ 1.3 -> 0m 或0.77m。 David 的公式 为我提供负值。 我认为它不 可用于短程测试。

    我还跟踪了 振幅峰值寄存器0x0185:这不连续性。 该值 波动很大。

    您能说 TDR 测量的可靠性(以%为单位)吗?  我们怀疑检测到错误反射或存在串扰。 我们已将 TDR 与 不同制造商的其他 Eth-Phy 一起使用 、以前没有观察到这些影响。


    此致、

    Michael

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

    您好、Michael:

    我在之前的 E2E 主题中看到、在电缆长度较短时、内置 TDR 的精度会降低。 听起来您正在测试从0.5m 到5m 的电缆、这相对较短。 出于好奇心、测试10m 以上电缆时、您是否发现效果更好?

    此致、

    Shane

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

    嗨、Shane、
    我针对10m、20m 和30m 电缆长度重复测量。 没有明显的改善。 尝试几次后、会在开路电缆上检测到短路。 然而,我们注意到, Eth-Phy 的行为是不同的。 在我同事的董事会上、这种情况发生得更快/更频繁。

    以下是每个测量值<10次后的结果。 先测量 AA (最多5次)、然后测量 BB (最多5次)。 如果在两个通道上都检测到短路、则会将其打印到控制台。

    10m 电缆:

    启动 DP83825I 短路检查
    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0021
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0023
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0027
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0021
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0020
    峰值符号(0x018a):0x0800
    在 AA 上检测到短路
    峰值位置:0x0180:0x0007 -> 0m

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x003a
    峰值符号(0x018a):0x0800
    在 BB 上检测到短路
    峰值位置:0x0180:0x0007 -> 0m
    在 AA 和 BB 上检测到短路

    ——

    20m 电缆:

    启动 DP83825I 短路检查

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x003b
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x003b
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x003a
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0039
    峰值符号(0x018a):0x0800
    在 AA 上检测到短路
    峰值位置:0x0180:0x0007 -> 0m

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0020
    峰值符号(0x018a):0x0800
    在 BB 上检测到短路
    峰值位置:0x0180:0x0007 -> 0m
    在 AA 和 BB 上检测到短路

    ——

    30m 电缆:

    启动 DP83825I 短路检查

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0026
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0020
    峰值符号(0x018a):0x0800
    在 AA 上检测到短路
    峰值位置:0x0180:0x0007 -> 0m

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0027
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0026
    峰值符号(0x018a):0000

    TDR 状态(0x001e):0x0102
    峰值振幅(0x0185):0x0020
    峰值符号(0x018a):0x0800
    在 BB 上检测到短路
    峰值位置:0x0180:0x0007 -> 0m
    在 AA 和 BB 上检测到短路

    此致、

    Michael

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

    Michael

    请给我几天时间、让我在内部讨论这一点、看看我们是否可以改进 TDR 结果。

    谢谢

    David

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

    您好、David:

    有任何更新吗?

    此致、

    Michael

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

    Michael

    我们仍在内部讨论此问题、我将尽快为您提供最新信息。

    谢谢

    David