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.

[参考译文] DP83TC812R-Q1:如何验证 PHY 中的本地睡眠?

Guru**** 2448780 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1501673/dp83tc812r-q1-how-to-verify-local-sleep-in-phy

器件型号:DP83TC812R-Q1

工具/软件:

尊敬的 TI 团队:

将芯片设置为进入 TC10 (LPS)模式时仍然遇到问题。

一些已知配置:

  1. 使用两块 PCB。 在一个 PCB 中、芯片在主模式下配置、在另一个 PCB 中配置为从模式。
  2. 使用非屏蔽双绞线将两个芯片连接到两个 PCB。
  3. 寄存器值:
    1. BMSR.Link-Status = 1
    2. 写入0x018B:0x1D4B、但读回为0x1D0B
  4. 操作系统是 Linux 5.x、所有网络守护程序都被禁用和停止。

我尝试通过将0x02写入地址0x018C 来发出本地睡眠请求。

然而,它似乎是不稳定的。 我尝试了几次此步骤、但今天早上我只看到一次当地的睡眠成功。

您能否帮助提供详细的步骤来验证本地睡眠和远程唤醒?

谢谢。

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

    尊敬的 Mike:

    Unknown 说:
    使用了两块 PCB。 在一个 PCB 中、芯片在主模式下配置、而在另一个 PCB 中配置为从模式。

    这两个芯片是否都是 DP83TC812?

    [引述 userid="547534" url="~/support/interface-group/interface/f/interface-forum/1501673/dp83tc812r-q1-how-to-verify-local-sleep-in-phy

    然而,它似乎是不稳定的。 我尝试了几次此步骤、但今天早上我只看到一次当地的睡眠成功。

    您能否帮助提供详细的步骤来验证本地睡眠和远程唤醒?

    [/报价]

    我们可以查看 TC -10应用手册中描述的状态指示器、以获取有关该问题的更多详细信息:

    • 在启动睡眠协商的 PHY 上、睡眠失败中断标志(0x0018[13])的值是多少?
    • 另一个 PHY (未启动睡眠协商)是否为睡眠确认引发中断?

    您是否还能向我们展示如何在 PHY 上配置唤醒线路? 您可以绘制图表、或者如果您想向我们发送原理图、您可以向我发送 E2E 好友请求以启用私人消息。

    此致、

    Evan Su

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

    尊敬的 Evan:

    我已经找出了根本原因。 当尝试进入 TC-10时、两个 PCB 中应该没有网络流量。 因此、在测试 TC-10之前、我需要禁用和停止所有网络进程和网络守护程序。

    这两个芯片是否都是 DP83TC812?

    是的。

    在启动睡眠协商的 PHY 上、睡眠失败中断标志(0x0018[13])的值是多少?

     您需要什么注册? 0x0018、0x0013或0x018D?

    另一个 PHY (没有发起睡眠协商)是否为睡眠确认引发中断

    PHY INTn 未连接到 MCU。

    WAKE ping 配置:(WAKE 和 INH 通过下拉电阻器连接到 MCU)

    您能告诉我调试 TC -10或芯片状态的重要寄存器吗?

    谢谢

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

    尊敬的 Mike:

    很高兴听到问题得到解决。

    为了便于将来参考、我前面提到的建议对于调试 TC -10问题很有用:

    启动睡眠协商的 PHY 上的睡眠失败中断标志(0x0018[13])的值是多少?

    这表示寄存器0x0018的位13。 如数据表中所述、该字段指示是否存在"睡眠失败"事件。 如果链路伙伴 PHY 未将睡眠符号传输回发起的 PHY (这表明另一个 PHY 可能存在问题)、或者如果 MDI 线路在进入睡眠状态之前的最后一个监控期间未静音(这似乎是您的系统中发生的情况)、则会触发睡眠失败事件。

    另一个 PHY (未启动睡眠协商)是否针对睡眠确认引发了中断?

    由于另一个 PHY 不使用 INT 引脚、这可能在您的用例中不相关、但这是一种检查链路伙伴 PHY 是否成功从发起 PHY 接收到睡眠符号的方法。

    您还能向我们展示如何在 PHY 上配置唤醒线路吗?

    这更多是一个硬件配置领域、但我们已经看到、如果唤醒线路上存在意外电气活动、PHY 会出现睡眠问题。 PHY 在睡眠时可能会被意外唤醒。 数据表中的外部下拉电阻器应该有助于减少发生这种情况的机会、我看到您在设计中实现了这种方案。

    此致、

    Evan Su