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:对 FPGA 重新编程后 PHY 无响应

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1208628/dp83869hm-phy-not-responding-after-re-programming-fpga

器件型号:DP83869HM

您好!

我们的电路板包含一个 FPGA 和 一个 带 SFP 的 DP83869HM PHY (RGMII 至1000Base-X)。
启动时、PHY 始终正常启动。 但重新编程 FPGA 后、有时 PHY 不响应 SMI 总线。  
MDIO 读取时、我总是会获得相同的数据(第一个数据是随机数据、所有下一个数据与第一个数据相同)。 PHY 似乎已冻结。
只有下电上电才能起作用。 XI 时钟和复位信号通过下拉电阻器从 FPGA (硬编码、不可控制)传出。  

一些时序测量:
- XI 时钟在 HW_RESET 上升沿之前的17ms 启动。
- MDC 时钟持续运行,在 HW_RESET 后34us 启动。 频率为1MHz。  (第一次 MDIO 操作需要很长时间)。

提前感谢、

雅各布  

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

    您好、Jacob:

    重新编程之后、FPGA 是否使 PHY 保持复位状态?

    如果注意到时钟信号、您可以尝试测量到 PHY 的输入时钟以及 PHY 的 CLK_OUT 引脚。

    应在 RESET_N 上升之前提供 XI 时钟、请参阅数据表中的时序图(第8.6节):
    https://www.ti.com/lit/ds/symlink/dp83869hm.pdf?ts=1679333018695&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FDP83869HM

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    请参见下面的示波器图像。  
    对 FPGA 进行编程时、RESET_N 信号为0.26V。 这是一个有效的 VIL 电平。 (VIO = 2.5V)
    CLK_OUT 信号始终与 XI 相同、无论是否具有功能 SMI 总线。

     

    对 FPGA 进行编程后启动

    由 FPGA 复位启动的复位序列

    提前感谢、
    雅各布

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

    附加信息:使用功能性 SMI 总线时、在写入寄存器0x170后 CLK_OUT 信号停止(CLK_OUT 被禁用)。  
    由于 SMI 总线功能不正常、CLK_OUT 仍然处于活动状态、因为写入0x170不起作用。  

    CLK_OUT 的探针可能连接错误、从而导致无法满足电平要求。

    提前感谢、
    雅各布

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

    您好、Jacob:

    感谢您分享这些信息、请在下周早些时候回顾并更新。

    此致、
    拉胡尔

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

    您好、Jacob:

    示波器图图像1:

    该图是在对 FPGA 进行编程后生成的吗? 我注意到、当 RESET 为低电平时、MDC 为低电平、但为什么时钟输出不为低电平?

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    示波器图图像的前6ms、FPGA 正在引导。 所有 FPGA 引脚都悬空。 但 CLK_OUT 是 PHY 的输出、我不知道为什么他在上电后悬空、直到 XI 时钟输入切换。  

    如果需要、我可以获取 XI 时钟切换的第一时刻的新示波器图像。 (我还要验证 CLK_OUT 信号是否测量良好)

    此致、
    雅各布

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

    您好、Jacob:

    感谢您的确认。 我对这个问题的理解是、PHY 在 FPGA 编程前后均能正常工作(因为 CLK_OUT 显示输出)、但在对 FPGA 进行编程后无法访问 SMI (MDC/MDIO 总线和寄存器读取/写入问题)。

    可以在示波器或逻辑分析仪中检查 MDC/MDIO 读/写操作吗? 将其与数据表中的图9-13或图9-14进行比较:
    https://www.ti.com/lit/ds/symlink/dp83869hm.pdf?ts=1680285411743&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FDP83869HM

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    下面记录了读取操作的第一个周期。 我认为通信没有异常。
    通信方面的异常我也不期望、因为同一个 FPGA 代码始终允许在上电后与 PHY 通信、但在 FPGA 重新编程后有时不允许。 此时 PHY 复位不起作用、需要重启电源。

    我无法判断 PHY 是否在工作、因为 LED 未闪烁并且无法进行通信。
    为了验证这一点、我将尝试使用 RGMII 转100Base-FX 引导模式进行测试、因为它不具有自动协商功能。  

    问题:SMI 状态机是否由 RESET_N 输入复位?

    尊重,

    雅各布

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

    您好、Jacob:

    我无法判断 PHY 是否正常工作,因为 LED 没有闪烁,无法进行通信。
    为了验证这一点、我将尝试使用 RGMII 转100Base-FX 引导模式进行测试、因为它不具有自动协商功能。  [/报价]

    请在测试完成后分享您的反馈。

    问题:SMI 状态机是否由 RESET_N 输入复位?

    RESET_N 将重新启动 PHY 中的所有内容、包括自举配置。

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    我将 PHY 置于 RGMII 转100Base-FX 引导模式。
    当 PHY 发生故障时、 LED1和 LED2输出为高电平(与复位或断电模式相同)。
    在光纤输出(SO)上、没有信号可用。  
    切换 RESET_N 输入没有任何影响。

    我的结论是 PHY 不工作。  

    此致、
    雅各布

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

    您好、Jacob:

    如何将 RGMII 配置为100Base-FX 模式? 是否使用硬件自举配置?

    如果是硬件自举配置、您可以在 PHY 正常工作时读取寄存器0x006Eh 并共享该值吗?

    当 PHY 不工作时、可以测量 CLK_OUT 吗? 您能看到任何信号吗?

    谢谢。
    拉胡尔

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

    尊敬的 Rahul:

    是的、这是硬件配置、寄存器0x006E 的值= 0x0406。
    我星期二将再次测量 CLK_OUT 信号。  

    此致、
    雅各布

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

    Jacob、

    谢谢、请分享您对 CLK_OUT 的观察结果。

    此致、
    拉胡尔

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

    尊敬的 Rahul:

     在 CLK_OUT 引脚上提供25MHz 信号、即使 PHY 未对 SMI 总线做出响应也是如此。

    此致、

    雅各布

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

    您好、Jacob:

    我想总结一下我的理解、如果有误、请更正一下:

    故障情况:

    PHY 使用硬件搭接配置为 RGMII 至100Base-FX

    时钟输出在25MHz 下测量

    RGMII 到100Base-FX 不工作

    SMI 接口不工作

    如果注意到 CLK_OUT、表示 PHY 正常工作。 这也会使 RGMII 到100Base-FX 正常工作、您是否注意到 RGMII 和 TX/RX 时钟的 TX/RX 数据线上的信号?

    只是想在 PHY 无法正常工作或使用 SMI 接口时缩小范围。

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    是的、总结是正确的。  

    MAC 需要一个输入时钟(RX_CLK)来确定 PHY 的模式(100或1000Mbit)。  
    由于没有 RX_CLK、MAC (在 FPGA 内部)不会 生成 TX_CLK。  
    所有 (RX 和 TX) RGMII 信号均为低电平。  

    此致、

    雅各布

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

    您好、Jacob:

    感谢您分享反馈。

    当 PHY 卡在失败状态时、您能否测量每个引脚的电压并共享数据? 我可以尝试了解是否有任何引脚的行为处于异常状态。

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    以下是测量电压的引脚列表:

    1 1、1 V
    2 1、1 V
    3 2.5 V
    4 1、1 V
    5 1、1 V
    6 1、1 V
    7 1、1 V
    8 1、1 V
    9 2.5 V
    10 1、1 V
    11 1、1 V
    12 0 V
    13 0 V
    14 0 V
    15 0 V
    16 0 V
    17 0 V
    18 2.5 V
    19 25 MHz
    20 25 MHz
    21 2.5 V
    22 0 V
    23 2.5 V
    24 0 V
    25 0 V
    26 0 V
    27 0 V
    28 0 V
    29 0 V
    30 2.5 V
    31 1、1 V
    32 0 V
    33 0 V
    34 0 V
    35 0 V
    36 0 V
    37 0 V
    38 0 V
    39 1、1 V
    40 25 MHz
    41 2.5 V
    42 1 MHz
    43 2.5 V
    44 2.5 V
    45 0 V
    46 2.5 V
    47 2.5 V
    48 0 V

    此致、

    雅各布·韦尔肖尔

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

    您好、Jacob:

    感谢您与我们分享每个引脚的电压。

    您能否分享在进行这些测量时 PHY 处于哪种模式? 它在 RGMII 到1000Base-X 中吗?

    另外,这些测量是在 PHY 不工作时的,因此所有 RGMII 引脚都是0V 的? 我的假设是否正确?

    谢谢。
    拉胡尔

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

    尊敬的 Rahul:

    默认为 RGMII to 1000Base-X、但对于上述测试、我制作了一个补丁以便在 RGMII 中引导至100Base-FX。 但导线断裂、测量期间的引导模式变成了 RGMII 转铜缆。 但在实践中、我认为没有区别(OP_MODE_DECODEC 寄存器由初始化例程写入)。

    是、PHY 无法工作、所有 RGMII 引脚为0V

    此致、

    雅各布

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

    您好、Jacob:

    感谢您分享意见。

    在每个引脚的电压测量中、我需要检查以下几点:

    -为什么 MDI 引脚上有电压(铜引脚)? -你已经回答了这个问题,因为 PHY 是在铜模式的 RGMII 中

    -另一件我想检查的是,当使用 FPGA 编程时 PHY 是否会进入断电模式。

    我的理解是、如果 PHY 不工作、并且您要使用硬件搭接来更改配置(例如将 RGMII 更改为100BASE-FX)、则无法访问寄存器、但在上面的注释中、您提到了采用引导模式进行寄存器编程。

    从上面的注释中我了解到的另一个观察结果是、PHY 将进入由 FPGA 写入的所需配置中、然后无法工作。 我的理解是否正确?

    谢谢。
    拉胡尔

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

    尊敬的 Rahul:

    对不起、回答较晚。  
    我不知道为什么 PHY 在 MDI 引脚上具有"偏置"电压。 电路板上没有这些引脚连接。  
    配置通过引导完成、但 OP_MODE_DECODEC  也写入初始化 例程中。 从1000Mbit 切换到100Mbit (切换到光纤)时需要此 API。 初始化例程仅在可以访问寄存器时有效。  

    我的观察结果是:
    -上电后, PHY 始终运行 正常,可以访问寄存器。 RESET_N、XI 和 MDC 由 FPGA 生成。
    -重新编程 FPGA 后,有时第一次 SMI 访问失败,  PHY 不工作。 切换 RESET_N 和 PWDN_N 不起作用。 只有下电上电才能将 PHY 复位。 在对 FPGA 重新编程时、PWDN_N 保持高电平。 当可以访问 SMI 时、PHY 正常运行。 另一方面、只有 CLK_OUT 输出会切换、所有其他输出会保持在同一电平。  

    初始化例程在上电后执行、与重新编程 FPGA 后执行的操作完全相同。 因此、我认为问题不在于初始化例程。 仅未定义 PHY 进入复位状态和 XI 时钟停止的确切时刻。  我认为这有时会导致 PHY 挂起。  
    当 PHY 保持关断模式时、仍然可以访问 SMI。 但现在仅读取"0"。 这不仅仅是一个"正常"断电模式。  

    提前感谢、
    雅各布

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

    您好、Jacob:

    感谢您分享反馈。

    我来回顾一下您的评论并与您联系。

    此致、
    拉胡尔

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

    您好、Jacob:

    是否可以在 FPGA 编程期间将 PHY 保持在硬件复位状态、并在 FPGA 编程完成后稍后释放它?

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    是的、我总是这么做。 RESET 引脚上有一个下拉电阻器、当这些引脚未由 FPGA 驱动时、PHY 处于复位状态。  

    此致、

    雅各布

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

    您好、Jacob:

    在对 FPGA 管脚编程后、是否有办法确定它们处于什么状态?

    我能想到的另一点是、连接到 FPGA 的 RX_D0和 RX_D1引脚可能已经在对 FPGA 进行编程时改变了 PHY 地址状态、你能否扫描不同的 PHY 地址来检查在故障情况下是否可以读取 PHY 寄存器?

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    我已经对此进行了测试、但这不是解决方案。
    读取的值始终为0x00、当我从错误的地址读取时、读取的值为0xFF。
    我还制作了一个 SMI 总线扫描仪并获得以下结果:
    -当设备响应时:  
       从 SMI 地址0x00、0x20、0x40、0x60上的寄存器0x00读取0x40  
       在所有其它 SMI 地址上读取0xFF
    -当设备没有响应时:
       从 SMI 地址0x00、0x20、0x40、0x60上的寄存器0x00读取0x00  
       在所有其它 SMI 地址上读取0xFF

    此致、
    雅各布

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

    您好、Jacob:

    是否可以进行组件交换,即 PHY 和 FPGA? 是否多个电路板上也会注意到此问题?

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    此问题出现在我们的所有板上。 每个电路板有两个具有相同问题的 PHY。  
    PHY 不会随机响应。 有时重新编程工作正常。 有时 PHY A 不 首先响应、有时 PHY B 不 首先响应。 在下电上电(和对 FPGA 进行首次编程)后、它始终可以正常工作。

    此致、

    雅各布

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

    您好、Jacob:

    是否可以在对 FPGA 进行编程时将 PHY 保持在复位状态? 对 FPGA 进行编程(PHY 仍保持在复位状态)后、是否可以在释放 PHY 复位之前为 XI 提供200ms?

    您可以尝试以上步骤并告诉我您的反馈吗?

    此致、
    拉胡尔

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

    尊敬的 Rahul:

    这不能解决我的问题。 也是500ms 或1秒。 复位时间无关紧要。
    或手动将 PHY 置于复位状态、切换复位和/或启用 XI/MDC 都没有关系。  
    如果 PHY 没有响应、只有下电上电才能解决这种情况。  

    此致、

    雅各布

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

    您好、Jacob:

    请允许我复查之前的所有评论并返回给您。

    此致、
    拉胡尔