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.

[参考译文] DP83822I:奇怪的 RGMII 发送时钟

Guru**** 2576215 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1573557/dp83822i-strange-rgmii-transmit-clock

器件型号:DP83822I


工具/软件:

您好、

我们提供了一个新的硬件设计、该设计通过 DP83822 10/100 PHY 连接到 IMX93
并且在链接到我们的旧产品时遇到问题。

我们较早的以太网器件具有光学接口、以 10Mbps、全双工和
非对称。 暂停流量控制、并禁用自动协商。

我们迄今所做的工作:

已检查所有引脚多路复用器和 IMX93、看起来不错。
可以读取/写入标准 IEEE MDIO 寄存器 (0x00-0x1F)
可以读取/写入 MDIO 扩展寄存器。
检查上电序列、看起来正常。
已检查 Linux 驱动程序复位 GPIO 操作、看起来良好。
已验证 PWRDN 信号是否为高电平、而不是断电模式。
确定了它们看起来都正常的 RGMII 信号、但 RGMII_TX_CLK 除外
运行了一些环回测试。
我对所有环回测试使用 10Mbps/FD/AN-DISABLED、并且 Auto-MDI-X 被禁用
使用寄存器 0x16、我可以使 PCS 环回和模拟环回正常工作。
使用寄存器 0x16、我无法使数字环回正常工作? 链路没有出现?
仅使用 0x00 (BMCR) 我无法使 MII 环回正常工作? 链路没有出现? 我是否正确执行 MII 环回?

以下是我用于设置测试的 MDIO 操作序列。

0x1F <= 0x8000
0x00 <= 0x0100
0x04 <= 0x0061
0x16 <= 0x000X ##环回类型

不管怎样、我们尝试让新硬件和旧硬件在短距离(厘米)内建立链路、
我们会遇到链路跳动事件、链路在不到一秒的时间内保持正常、然后继续
关闭很多秒。

我们认为它们是 TX 时钟问题、因为当我们对其进行研究时、它不是一个方波、所附图片。

然后、我们在 IMX93 处尝试了多个引脚焊盘设置、看看我们是否具有不良的焊盘配置值
TX 时钟引脚的总线时间。 运气差。 我们对 RGMII 引脚使用的值为 0x51E、这涉及很多内容
IMX8/IMX9 系列中的 RGMII 器件树已成功使用。

然后、我们在电路板上切割 ETC、然后看到 IMX93 侧具有完美的 2.5MHz 方波。
Re 连接蚀刻、时钟不良。

因此、我们认为 83822 也在以某种方式驱动 TX 时钟引脚?
这可以吗? 通常是 83822 的输入引脚? 对吧?

我们没有做的一件事是搭接 DP83822。
我看到大多数设计都使用了硬件搭接、但出于某种原因、我们的硬件设计人员
不选择?

[5951.608247] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/full — 流量控制关闭
[5952.630991] IMX-dwmac 428a0000.Ethernet eth0:链路断开
[5969.016239] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/full — 流量控制关闭
[5970.038965] IMX-dwmac 428a0000.Ethernet eth0:链路断开
[6044.792263] IMX-dwmac 428a0000.ethernet eth0:链路接通 — 10Mbps/full — 流量控制关闭
[6045.815034] IMX-dwmac 428a0000.Ethernet eth0:链路断开


root@Draeger-OSM-SF-imx93:~#./phytool dump eth0/1/1
MII [00]:0x0100
MII [01]:0x7849
MII [02]:0x2000
MII [03]:0xA240
MII [04]:0x0C61
MII [05]:0x0000
MII [06]:0x0004
MII [07]:0x2001
MII [08]:0x0000
MII [09]:0x0000
MII [0A]:0x0100
MII [0B]:0x1000
MII [0C]:0x0000
MII [0D]:0x4007
MII [0E]:0x0000
MII [0F]:0x0000
MII [10]:0x0006
MII [11]:0x0108
MII [12]:0x2000
MII [13]:0x0800
MII [14]:0x0000
MII [15]:0x0000
MII [16]:0x0100
MII [17]:0x0049
MII [18]:0x0400
MII [19]:0xA021
MII [1A]:0x0000
MII [1B]:0x007D
MII [1C]:0x05EE
MII [1D]:0x0000
MII [1E]:0x0002
MII [1F]:0x0000

摘要:
链路在 10 Mpbs、fd、!an 处弹跳
有些环回起作用、有些环回不起作用?
奇怪的 RGMII TX 时钟

如有任何建议、我们将不胜感激!

谢谢
Ken Carlson

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

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

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

    Ken

    我会先修复 DP83822 strap 配置。 例如、在 RX_ER 和 RX_DV 上没有硬件搭接时、DP83822 默认工作模式为 MII、而不是 RGMII。 在 MII 中、TX_CLK 是输出、与您的观察结果相匹配。  

    您 还可以从寄存器 0x0017 启用 RGMII、要更改时钟源、请参阅 表 80、0x0462 IO 多路复用器 GPIO 控制寄存器 1 (IOCTRL1)。

    谢谢

    David

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

    谢谢!

    我们将尝试捆扎,并让你知道它是如何进行的。

    Ken

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

    我找不到表 80?

    我在查看数据表 — 修订版本 G(2023 年 8 月)

    谢谢

    Ken

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

    Ken

    抱歉、更正了拼写错误、表格是表 8-94。 请注意、寄存器 0x462 是扩展寄存器、需要使用如下所示的访问方法。

    谢谢

    David

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

    得到了、再次感谢!

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

    您好:

    我在 MDIO 0x17 <= 0x60 中启用了 RGMII
    然后、我在 0x462 <= 0x23 中选择了时钟源
    但运气仍然不好、链路仍然上下跳动。

    我使用了配置值 0x462 的 STAB?
    不确定是否正确、我选择了 X1 位置
    提供外部 25MHz 时钟。

    谢谢
    Ken


    Root@Draeger-OSM-SF-imx93:~# cat phytest
    #!/bin/bash

    ./phytool 写入 eth0/1/0x1F 0x8000

    ./phytool 写入 eth0/1/4 0x0841
    ./phytool 写入 eth0/1/0 0x0100
    ./phytool 写入 eth0/1/0xA 0x0001
    ./phytool 写入 eth0/1/0x17 0x0600
    ./phytool 写入 eth0/1/0x19 0x0000
    ./phytool 写入 eth0/1/0x462 0x0023

    #./phytool 写入 eth0/1/0x1F 0x4000

    #./phytool 写入 eth0/1/0x456 0xA
    #./phytool 写入 eth0/1/0x4A0 0x1080

    寄存器转储

    MII [00]:0x0100
    MII [01]:0x7849
    MII [02]:0x2000
    MII [03]:0xA240
    MII [04]:0x0841
    MII [05]:0x0000
    MII [06]:0x0004
    MII [07]:0x2001
    MII [08]:0x0000
    MII [09]:0x0000
    MII [0A]:0x0001
    MII [0B]:0x1000
    MII [0C]:0x0000
    MII [0D]:0x4007
    MII [0E]:0x0000
    MII [0F]:0x0000
    MII [10]:0x0006
    MII [11]:0x0108
    MII [12]:0x2000
    MII [13]:0x0000
    MII [14]:0x0000
    MII [15]:0x0000
    MII [16]:0x0100
    MII [17]:0x0600
    MII [18]:0x0400
    MII [19]:0x0001
    MII [1A]:0x0000
    MII [1B]:0x007D
    MII [1C]:0x05EE
    MII [1D]:0x0000
    MII [1E]:0x0002
    MII [1F]:0x0000

    MII_EXT [0025]:0x0000
    MII_EXT [0027]:0x0000
    MII_EXT [003e]:0x0000
    MII_EXT [003F]:0xB4FF
    MII_EXT [0040]:0xC11D
    MII_EXT [0042]:0x0000
    MII_EXT [0101]:0x2002
    MII_EXT [0106]:0xB0BB
    MII_EXT [0107]:0x0605
    MII_EXT [010F]:0x0300
    MII_EXT [0111]:0x6003
    MII_EXT [0114]:0x400A
    MII_EXT [0116]:0x014A
    MII_EXT [0121]:0x199A
    MII_EXT [0122]:0x1027
    MII_EXT [0123]:0x051C
    MII_EXT [0126]:0x461B
    MII_EXT [0129]:0x000F
    MII_EXT [0130]:0x4750
    MII_EXT [0155]:0x0001
    MII_EXT [0170]:0x0E52
    MII_EXT [0171]:0xC85C
    MII_EXT [0173]:0xFF1E
    MII_EXT [0177]:0x189B
    MII_EXT [0180]:0x0000
    MII_EXT [0181]:0x0000
    MII_EXT [0182]:0x0000
    MII_EXT [0183]:0x0000
    MII_EXT [0184]:0x0000
    MII_EXT [0185]:0x0000
    MII_EXT [0186]:0x0000
    MII_EXT [0187]:0x0000
    MII_EXT [0188]:0x0000
    MII_EXT [0189]:0x0000
    MII_EXT [018A]:0x0000
    MII_EXT [0215]:0x01AF
    MII_EXT [021D]:0x0600
    MII_EXT [0403]:0x9FCF
    MII_EXT [0404]:0x0020
    MII_EXT [040D]:0x0008
    MII_EXT [0410]:0x2000
    MII_EXT [0416]:0x0870
    MII_EXT [0418]:0x0000
    MII_EXT [041F]:0x0000
    MII_EXT [0421]:0x0004
    MII_EXT [0428]:0x0000
    MII_EXT [0450]:0x0F41
    MII_EXT [0456]:0x0008
    MII_EXT [0460]:0x0551
    MII_EXT [0461]:0x0410
    MII_EXT [0462]:0x0023
    MII_EXT [0463]:0x0000
    MII_EXT [0465]:0xFF00
    MII_EXT [0467]:0x0FC3
    MII_EXT [0468]:0x0000
    MII_EXT [0469]:0x0440
    MII_EXT [04A0]:0x1000
    MII_EXT [04A1]:0x0000
    MII_EXT [04A2]:0x0000
    MII_EXT [04A3]:0x0000
    MII_EXT [04A4]:0x0000
    MII_EXT [04A5]:0x0000
    MII_EXT [04A6]:0x0000
    MII_EXT [04A7]:0x0000
    MII_EXT [04A8]:0x0000
    MII_EXT [04A9]:0x0000
    MII_EXT [04AA]:0x0000
    MII_EXT [04AB]:0x0000
    MII_EXT [04AC]:0x0000
    MII_EXT [04AD]:0x0000
    MII_EXT [04AE]:0x0000
    MII_EXT [04AF]:0x0000
    MII_EXT [04B0]:0x0000
    MII_EXT [04B1]:0x0000
    MII_EXT [04B2]:0x0000
    MII_EXT [04B3]:0x0000
    MII_EXT [04B4]:0x0000
    MII_EXT [04B5]:0x0000
    MII_EXT [04B6]:0x0000
    MII_EXT [04B7]:0x0000
    MII_EXT [04B8]:0x0000
    MII_EXT [04B9]:0x0000
    MII_EXT [04BA]:0x0000
    MII_EXT [04BB]:0x0000
    MII_EXT [04BC]:0x0000
    MII_EXT [04BD]:0x0000
    MII_EXT [04BE]:0x0000
    MII_EXT [04BF]:0x0000
    MII_EXT [04C0]:0x0000
    MII_EXT [04C1]:0x0000
    MII_EXT [04C2]:0x0000
    MII_EXT [04C3]:0x0000
    MII_EXT [04C4]:0x0000
    MII_EXT [04C5]:0x0000
    MII_EXT [04C6]:0x0000
    MII_EXT [04C7]:0x0000
    MII_EXT [04C8]:0x0000
    MII_EXT [04C9]:0x0000
    MII_EXT [04CA]:0x0000
    MII_EXT [04CB]:0x0000
    MII_EXT [04D0]:0x0302
    MII_EXT [04D1]:0x018B
    MII_EXT [3000]:0x0400
    MII_EXT [3001]:0x0040
    MII_EXT [3014]:0x0002
    MII_EXT [3016]:0x0000


    Root@Draeger-OSM-SF-imx93:~# ethtool eth0
    eth0 设置:
    支持的端口:[ TP mii ]
    支持的链路模式:10BaseT/Half 10baseT/Full
    支持的暂停帧使用:对称仅接收
    支持自动协商:可以
    支持的 FEC 模式:未报告
    广播的链路模式:10BaseT/Half 10baseT/Full
    广播的暂停帧使用:对称仅接收
    广播的自动协商:否
    广播 FEC 模式:未报告
    速度:10MB/s
    双工:全双工
    自动协商:关闭
    端口:双绞线
    PHYAD:1.
    收发器:外部
    MDI-X:打开(强制)
    支持唤醒:UG
    唤醒:D
    当前消息级别:0x0000003f (63)
    DRV 探头链接计时器 ifdown ifup
    检测到链路:否
    Root@Draeger-OSM-SF-imx93:~#
    root@Draeger-OSM-SF-imx93:~# ethtool eth0./phytool extended eth0/1/1ethtool eth0 -S eth0 | grep rx_frame
    MMC_rx_framecount_GB:26
    mac_rx_frame_ctrl_fifo:0
    Root@Draeger-OSM-SF-imx93:~#
    root@Draeger-OSM-SF-imx93:~#[ 1529.880482] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/full — 流量控制关闭
    [1530.902992] IMX-dwmac 428a0000.Ethernet eth0:链路断开
    [1531.928518] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/满 — 流量控制关闭
    [1532.950964] IMX-dwmac 428a0000.Ethernet eth0:链路断开
    [1533.976533] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/全速 — 流控制关闭
    [1534.998992] IMX-dwmac 428a0000.Ethernet eth0:链路断开

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

    Ken

    如果您将 0x0100 写入寄存器 0x00000、这将强制禁用自动协商、在 10M 全双工模式下、是否能够建立链路?

    我还可以查看从 DP83822 到 RJ45 连接器的连接吗?

    谢谢

    David

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

    您好、David:

    我来了,然后又回来了(弹跳)。

    root@Draeger-OSM-SF-imx93:~#./phytool write eth0/1/0 0x0100
    Root@Draeger-OSM-SF-imx93:~#
    Root@Draeger-OSM-SF-imx93:~#
    Root@Draeger-OSM-SF-imx93:~# ethtool eth0
    eth0 设置:
    支持的端口:[ TP mii ]
    支持的链路模式:10BaseT/Half 10baseT/Full
    支持的暂停帧使用:对称仅接收
    支持自动协商:可以
    支持的 FEC 模式:未报告
    广播的链路模式:10BaseT/Half 10baseT/Full
    广播的暂停帧使用:对称仅接收
    广播的自动协商:否
    广播 FEC 模式:未报告
    速度:10MB/s
    双工:全双工
    自动协商:关闭
    端口:双绞线
    PHYAD:1.
    收发器:外部
    MDI-X:打开(强制)
    支持唤醒:UG
    唤醒:D
    当前消息级别:0x0000003f (63)
    DRV 探头链接计时器 ifdown ifup
    检测到链路:否
    root@Draeger-OSM-SF-imx93:~#[56707.096141] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/full — 流量控制关闭
    [56708.118745] IMX-dwmac 428a0000.Ethernet eth0:链路断开
    [56709.148277] IMX-dwmac 428a0000.Ethernet eth0:链路接通 — 10Mbps/full — 流量控制关闭
    [56710.166750] IMX-dwmac 428a0000.Ethernet eth0:链路断开

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

    Ken

    您能否分享原理图的 MDI 部分?

    谢谢

    David

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

    上面的原理图显示了 MDIO 连接、它们是 J39 和 J28 之间的直接连接。

    我会尝试的事情:

    Anar 下一页(当前为零)

    不带自动协商功能的 MDI-X 检测? (这是否可行)

    0x462 尝试使用不同的时钟源

    Ken

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

    Ken

    J28 和 J39 之间的连接是 MAC 接口、我要查找 MDI 连接 (TD_P/M 和 RD_P/M)。  

    如果禁用了自动协商、则 MDI-X 被禁用、您可以使用寄存器 0x19 第 14 位强制 MDIX。

    谢谢

    David

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

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

    这是连接光电二极管的光学电路、用于短距离光学通信。

    Ken

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

    Ken

    是否有机会以.pdf 格式分享原理图? 屏幕截图的分辨率太低、我无法详细说明组件。

    看起来在光接收侧提供了交流耦合电容器、但我在光发送侧没有看到交流耦合电容器。 电容器是否在接收器侧?

    谢谢

    David

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

    draegernam-my.sharepoint.com/.../opt.pdf

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

    我意识到上面的链接可能不起作用,如何附加 PDF 文件?

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

    Ken

    您可以进入“插入“->“图像/视频/文件“、然后在回复时上传.pdf 文件。

    谢谢

    David

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

    e2e.ti.com/.../opt.pdf

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

    Ken

    在原理图的 MDI 部分、我发现有几件事。

    在这种情况下、MAX9203E 的输入共模电压为–0.1V 至 2.75V。 但外部端接网络为 3.3V、在输入共模电压之外。 您需要对 MAX9203E 进行交流耦合、然后恢复共模电压、或将 DP83822 AVD 和端接网络电压从 3.3V 更改为 1.8V。

    2.在 DP83822 RX 端,您还需要 50 欧姆的 AVD 端接网络,这在您的原理图中看不到。

    完成后、我将探测 TX 和 RX 并比较两者之间的波形。 10M 以太网使用曼彻斯特编码、因此我想知道信号在经过所有这些分量后会是如何呈现的。

    您是否有可能分享这个旧以太网器件的数据表?  

    谢谢

    David

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

    谢谢、我们会来看一下

    Ken