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.

[参考译文] DP83640:IMX7D MII 器件树

Guru**** 2390755 points
Other Parts Discussed in Thread: DP83640, USB-2-MDIO

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1025823/dp83640-imx7d-mii-device-tree

器件型号:DP83640
主题中讨论的其他器件: USB-2-MDIO

下午好!

我目前有一个定制电路板、其中 iMX7d (在 EA iMX7d uCOM SOM 上)通过 MII 连接到 DP8360 PHY、我似乎无法通过 MII 接口使通信正常工作。 通过 MDIO 总线正确发现和配置 PHY、我可以看到从 uBoot 在 Wireshark 中发送的 TX 数据包。 希望我错过了器件树中的某个东西、

当前设备树、

&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1>;

clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
<&clks IMX7D_ENET_AXI_ROOT_CLK>,
<&clks IMX7D_ENET1_TIME_ROOT_CLK>,
<&clks IMX7D_PLL_ENET_MAIN_25M_CLK>;
clock-names = "ipg", "ahb", "ptp", "enet_clk_ref";

assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
<&clks IMX7D_ENET1_TIME_ROOT_CLK>;
assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_25M_CLK>;
assigned-clock-rates = <0>, <100000000>;
phy-mode = "mii";
phy-handle = <&ethphy0>;
fsl,magic-packet;
status = "okay";

mdio {
#address-cells = <1>;
#size-cells = <0>;

ethphy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
};
};
};
pinctrl_enet1: enet1grp {
fsl,pins = <

MX7D_PAD_ENET1_COL__ENET1_COL 0x1
MX7D_PAD_ENET1_CRS__ENET1_CRS 0x1

MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x3
MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x3

MX7D_PAD_ENET1_RX_CLK__ENET1_RX_CLK 0x1
MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x1

MX7D_PAD_ENET1_TX_CLK__CCM_ENET_REF_CLK1 0x1

MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x1
MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x1
MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2 0x1
MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3 0x1

MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1
MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC 0x1

MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x3
MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x3
MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2 0x3
MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3 0x3
>;
};
 

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

    尊敬的 James:

    为了协助调试、您能否探测 RX_CLK 和 CLKOUT 并告诉我它们的频率? 您还可以读取寄存器0x0、0x1、0x10、0x11并告诉我它们的值吗?

    我看到 RGMII 写入您的代码中。 您是否希望使用 RGMII 接口、因为 DP83640不支持这种接口。

    谢谢、

    卢卡斯

    此通信和任何相关通信中的所有信息均按“原样”和“不含任何瑕疵”提供,并受 TI 的重要声明(http://www.ti.com/corp/docs/legal/important-notice.shtml)约束。

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

    您好 Lucas、

    非常感谢您的回复。

    RX_CLK 的屏幕抓取、

    CLKOUT 的屏幕抓取

    寄存器值如下所示、

    0x0 -> 0x0000

    0x1 -> 0x0000

    0x10 -> 0x0000  

    0x11 -> 0x0000

    RGMII 基准是 IMX7d 的默认引脚标签、MAC 配置为 MII 模式、这些引脚全部支持 RGMII/RMII 和 MII。

    在 uBoot 中、我在示波器上看到了同样的东西、但得到了非常不同的寄存器值、

    0x0 -> 0x3100

    0x1 -> 0x78

    0x10 -> 0x0715

    0x11 -> 0x0000

    谢谢、

    James

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

    尊敬的 James:

    我不会立即从您的时钟输出或寄存器值中看到任何问题。 您能否提供原理图供审核?

    此外、您还可以使用此 USB-2-MDIO 工具作为读取寄存器的另一个选项: https://www.ti.com/tool/USB-2-MDIO

    谢谢、

    卢卡斯

    此通信和任何相关通信中的所有信息均按“原样”和“不含任何瑕疵”提供,并受 TI 的重要声明(http://www.ti.com/corp/docs/legal/important-notice.shtml)约束。

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

    您好 Lucas、

    感谢您的帮助、我目前的直觉是、它是 CPU 端的问题、PHY 的行为/配置正确。

    这里是原理图的相关部分、  

    非常感谢、

    James

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

    尊敬的 James:

    我正在查看您的原理图、并将在星期三之前提供反馈。

    谢谢、

    卢卡斯

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

    尊敬的 James:

    虽然我在原理图中没有看到任何可能直接导致问题的东西、但我确实有一些注释:

    • 我注意到 GPIO1连接到3.3V。 您计划如何使用此 IO? 您可能需要考虑使用 PU 电阻器、而不是直接连接到3.3V。
    • 我建议在每个电源上添加一个0.1uF 去耦电容。

    您能否在复位引脚和磁性元件/RJ45上共享电路?

    您还可以尝试验证 RX 路径。 您能否连接电缆侧的链路伙伴以发送数据包并尝试在 RX 线路上读取这些数据包?

    谢谢、

    卢卡斯

    此通信和任何相关通信中的所有信息均按“原样”和“不含任何瑕疵”提供,并受 TI 的重要声明(http://www.ti.com/corp/docs/legal/important-notice.shtml)约束。

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

    您好 Lucas、

    感谢您的回复。 GPIO1被标记为3V3、但实际上是来自 GNSS 接收器的3V3 1PPS 信号、该接收器具有上拉电阻(未显示在我发送的代码段上)

    我还附上了一个更大的原理图片段、其中更清晰地显示了磁性元件。

    我还连接了一个链路伙伴、可以在示波器上的 RXD0线路上看到 RX 数据(连接了屏幕抓取)、但在 uboot 中看不到任何数据。

    谢谢

    James

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

    尊敬的 James:

    您可以尝试外部 Mac 端回送测试吗? 这与验证 RX 路径相同、但将数据从 RX 线路发送回 TX 线路并检查 RX 错误计数。 这可以在寄存器0x15[7:0]中找到。

    谢谢、

    卢卡斯

    此通信和任何相关通信中的所有信息均按“原样”和“不含任何瑕疵”提供,并受 TI 的重要声明(http://www.ti.com/corp/docs/legal/important-notice.shtml)约束。

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

    尊敬的 James:

    由于我们一段时间内没有听到过这个消息、我们将关闭这个线程。 如果您仍然需要其他技术支持、请打开一个新主题、并提供指向此主题的链接。

    谢谢、

    Nikhil

    此通信和任何相关通信中的所有信息均按“原样”和“不含任何瑕疵”提供,并受 TI 的重要声明(http://www.ti.com/corp/docs/legal/important-notice.shtml)约束。