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.

[参考译文] DP83822IF:PHY 的基本初始化

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1312070/dp83822if-basic-initialization-of-the-phy

器件型号:DP83822IF
主题中讨论的其他部分:鳄鱼夹

我使用 FPGA 写入 PHY 寄存器、就像使用其他 PHY 一样。

我发送32个1作为前导码、后跟:

SOF 0b01

操作码0b01 (用于写入)

PHY ADDR 0b00001 (根据数据表8.5.3)

寄存器 ADDR 0x00 (BMCR)

I 设置位8和13 = 1并且位12 = 0

然后是相同的 SOF/OPCOD/PHYADDR、但 REG ADDR 0x0A、位14 = 1 (用于 FX 启用)

我这样做不成功。

我缺少什么吗?

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

    您好!

    您能否至少确定您能够访问 PHY 以建立基准? 请尝试读取寄存器0x2和0x3。 这些是只读值、其唯一值应反映在数据表中。 这将确认 PHY 处于活动状态。

    接下来、关于您的写操作、您能否回读以确保这些更改保持不变?

    另一个需要注意的是寄存器和写入值之间的周转位;中间应该有另一个"10"。

    此致、

    格罗姆

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

    我必须在 Verilog 中写入一些内容才能读取这些寄存器。  我输入了周转位、但忘记显示它了。

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

    尊敬的 Craig:

    我将等待您的结果。

    此致、

    格罗姆

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

    我成功读取寄存器0x3、然后获得了每个数据表的默认值:

    我决定在一些导线上焊接到 MDIO 和 MDC。  然后使用我的 SALEAE 分析器。

    我们使用另一个 PHY 并成功写入所有类型的设置。  也焊接在一些导线上。

    观察分析器上针对 TI PHY 的情况(如所述)、写入命令和寻址看起来是正确的。

    顶部的混乱似乎是前导码- SALEAE MDIO 解码器必须解决这个问题。  另一个 PHY 表现相同。

    我不确定 TI PHY 为什么不会初始化-我一定遗漏了一些内容。

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

    尊敬的 Craig:

    这种做法很好、可以在一定程度上访问 PHY。 所以、除了启用100Base-FX、您正在尝试初始化 PHY、以禁用自动协商并强制100Mbps 全双工模式。 你声称自己不成功,但当你写这篇文章的时候,会发生什么? 您是否能够读回您写入的相应更改? 是否存在功能问题?  

    此致、

    格罗姆

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

    是的、这就是我要努力实现的目标。  当我在尝试写入位14 (FX 启用)后立即读取0xA 时、它似乎没有被设置:

    它不采用我的设置、PHY 不能正常工作。  例如、RX 和 TX 时钟均未运行。  我可以在 Chipscope (Xilinx ISE)中查看这些时钟、

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

    尊敬的 Craig:

    我需要检查这一点。 寄存器0x0上的写入命令是否无法正常工作? 尝试隔离这是由于 Reg 0xA 过分讲究还是写入命令本身造成的。

    此致、

    格罗姆

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

    以下是对0x0的写入、然后是对0x0的读取:

    有一点不同、我看到位8已设置、但位13未设置。

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

    仅供参考、

    不知道你是否知道 Dajon McGill。  我已经联系他寻求技术支持、但我知道您现在也是 TI。  以为你只是另外一个成员。  如果有人联系您是一个可疑的熟悉的案例/问题、您就会知道这是我。  

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

    尊敬的 Craig:

    感谢您提供信息。 如果达洪在处理这件事,我会顺服他。

    仅进行部分写入似乎很奇怪。 这让我相信在写入命令期间会出现设置/保持时间问题、而这正是导致这个问题的原因。 是否可以通过示波器和逻辑分析仪进行探讨?

    此致、

    格罗姆

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

    我和 Dajon 一起填写了详细的检查清单、所以要等一会儿、我才会收到回复。  我可以将示波器放在 MDIO 和 MDC 上。  我应该寻找什么?

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

    尊敬的 Craig:

    我会在写入序列期间检查建立/保持时间、尤其是在 SMI 有效载荷期间、以查看其是否在我们的数据表中的规格范围内。

    此致、

    格罗姆

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

    您好、Gerome、

    下面是示波器的屏幕截图、我先写入0x0、再读回0xA、再读回它:

    蓝色的 MDIO 和红色的 MDC - MDC 是否适合您?

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

    尊敬的 Craig:

    除了波形的清晰度外、我还关心线路上的噪声。 它似乎被采样率过低、因此很难提供有效的分析。 假设每个"burst"是一个写入命令、是否可以放大? 也许这将处理欠采样和提供更清晰的见解。

    此外、如果线路上确实存在噪声、建议进行补救。

    我在原理图中看到还有一个 DP83826在原理图上。 这也会发现 DP83822存在的问题吗?

    此致、

    格罗姆

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

    Gerome,

    到目前为止、在这个开发项目中、我只将一个 Broadcom 部件变为现实。  下面是波形:

    类似的"噪声"?  Broadcom 部件已成功初始化。  这是我给它写的内容:

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

    但似乎需要解决噪声。  我将尝试提高我的分辨率/采样率。

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

    我将小鳄鱼夹接地、连接到了不接地的地方。  下面是改进得多的波形:  

    我放大了 MDIO 上的第一次突发:

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

    尊敬的 Craig:

    这对我们有很大帮助! 现在图像更清晰、而且由于您可以更好地剖析时序图、您能否确认整个写入命令是否满足以下数据表规格? 具体来说、我对 T2和 T3很好奇。 此外、您在什么频率下寻址此 PHY?

    此致、

    格罗姆

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

    在本例中... t2+t3 = 79ns。  T2、约40ns。  这是典型情况。

    MDC 频率为12.5 MHz

    此外、这些尖峰对我来说看起来也很可疑。  它们仅出现在读取中。  首先、我写入0x0、然后读取0x0。  然后写入0xA、再读取它。

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

    Gerome,

    我只注意到在所有情况下 T1都约为40ns。  这超出了 T1<=10ns 的规格。

    谢谢。

    克雷格

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

    我使用较慢的5 MHz 时钟获得几乎相同的行为:

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

    尊敬的 Craig:

    这是非常奇怪的行为。 您知道在读取过程中何时会发生这种情况吗? 由于线路是双向的、这可能表示 MCU 和 PHY 之间存在争用问题。

    此外、此问题在此单个电路板上是否可以重现? 这些板的其他实例中呢?

    此致、

    格罗姆

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

    Gerome,

    我将放大读取的内容、并确定哪些位有问题。  这就是您的意思吗?

    板上还有另外两个 TI PHY、但它们是不同器件。  但是、我有第二个电路板(要测试的器件)。  我需要在 MDIO 和 MDC 上突出显示一些引线来确定其范围。

    下面我将对这些项目进行说明。

    谢谢。

    克雷格

      

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

    我发现 PHY 在我们可以称为电路板2的地方具有类似的行为。  此问题再次出现。  我制作了一些屏幕截图、将范围和分析器结果汇集在一起。  希望这将提供一些额外的见解。

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

    尊敬的 Craig:

    当出现此中断时、SMI 通信何时发生? 例如、这是在寄存器、转换、PHY 地址或有效负载部分发生的吗?

    此致、

    格罗姆

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

    我主要看到的是有效载荷区域的毛刺。  尽管我在寄存器地址的末尾或转换开始处看到了一个小缺口、但分析器无法识别它。

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

    尊敬的 Craig:

    如果在有效载荷区域内、则此时 PHY 应该控制线路并取出其寄存器值。 不过、该行为表示其他因素可能干扰了此操作;无论是 SoC 未能释放线路、还是其他因素。 从理论上讲、这一行应该是开漏行、因此 PHY 的任务是仅在出现"0"时按住该行、然后在出现"1"时释放。

    可能有理由认为写入命令正在执行、但读取时的干扰正在将该"1"伪装成"0"、反之亦然、从而在回读时对 SoC 造成干扰。

    我想确认 SoC 不会干扰此操作。

    此致、

    格罗姆

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

    FPGA 完全可能会干扰读取操作。  我将对此进行调查。

    鉴于此、写入命令可能会生效、但正如您所说、回读操作中存在一些干扰。

    这是另一个问题。  假设我解决了回读问题、我写入的设置是否足以启用 FX 通信?  我预计、配置 PHY 后、可在光纤收发器上使用稳定的 LED 之一。

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

    尊敬的 Craig:

    对于 FX 应用程序、唯一需要翻转的位是寄存器0xA[14]。  

    不过、如果这是预期的用例、我想问、为什么不在最初将 PHY 设置为 FX 模式。 这将消除对上电后必须重新配置的依赖。 为了通过自举启用、COL 引脚(29)需要通过电阻分压器网络设置为模式2或3。

    此致、

    格罗姆

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

    您好、Gerome、

    我已经得出结论,这是我的 Verilog 的问题。  我无意中将 MDIO 线路设置为仅输出、而将 INOUT 设置为双向。

    我现在能够有信心地回读我的写作。  我现在看到的是、回读寄存器0x0包含用于 IEEE 断电的位11高电平。  我没有设置该位。  这是否可以解释为什么我没有看到任何迹象表明 PHY 处于活动状态。  我将使用两个指示来确定 PHY 是否处于活动状态。  1) 1) RX 和 TX 时钟如 Chipscope 中所示移动(还应该查看 RX 数据) 2)收发器上的 LED 亮起。

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

    尊敬的 Craig:

    EVM 将此位读取为"0"、但当此引脚动态变为低电平状态后、此位也会为"1"。  我还希望检查此引脚是否意外通过引脚设置为低电平。 这将需要快速检查万用表。 我确实注意到、没有为该线路填充 PU;只有一个 PD、因此 SoC 需要驱动该线路以确保其为高电平。

    如果您要手动将此位设置为"0"、回读会保持吗?

    示波器中的 SMI 波形看起来是什么样子?

    当您的意思是您使用 PHY 启动或不启动的两个指示时、您是否看不到 RX_CLK 切换?

    此致、

    格罗姆

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

    目前、我只有 SoC (FPGA)来读写这些寄存器。

    I 从0x0写入和读取两次

    写入0x0/读取0x0/写入0x0/读取0x0/写入0xA/读取0xA/

    正确、我没有通过 Chipscope (在初始化之后)在 RX_CLK 或 TX_CLK 上看到任何活动。

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

    在前两次写入中、我将位3和8设置为高电平-在两种情况下、我也将位11读回为高电平。  超出预期。

    我看到 POWER_DOWN 引脚被下拉。  我将把它调到较高的水平并报告结果。

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

    "那就走了!  POWER_DOWN 引脚被驱动为高电平。  问题迎刃而解。  PHY 已变为有效。  所有这些都是罪魁祸首。  该读取问题混淆了。