文章 ID: 000076839 内容类型: 产品信息和文件 上次审核日期: 2021 年 08 月 29 日

如何使用 MDIO 接口访问外部 PHY?

环境

  • 以太网
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    以下文档第 13-5 页第 13-5 页描述的 MDIO Core 章节下的寄存器地图出现错误:

    嵌入式外设 IP 用户指南 

    在表格中指出,MDIO_DEVAD、MDIO_PRTAD和MDIO_REGAD的地址偏移0x20,0x21应该用于MDIO_ACCESS。但是,它们在文档中四处交换,实际上它们应该分别读取0x21和0x20。

    注意:指定的寄存器地址偏移量(0x20和0x21)实际上是文字地址,相应的字节地址将分别0x80和0x84。

    写入访问权限

    写入外部 PHY 的访问权限可以通过使用 MDIO 接口完成,如下所示:

    1. 在地址偏移0x21中,对 MDIO 内核寄存器执行Avalon®-MM 主写入,指定外部 PHY 设备地址 (MDIO_DEVAD)、端口地址 (MDIO_PRTAD) 和寄存器地址 (MDIO_REGAD)。
    2. 将 32 位数据的Avalon MM 主写入MDIO_ACCESS寄存器偏移0x20。

    MDIO 内核会发生什么?
    将数据放置到MDIO_ACCESS寄存器后,MDIO 内核便开始生成 MDIO WRITE 帧,其中包含在寄存器中提供的信息,并0x20和0x21。然后将帧传输到目标 PHY 寄存器中,其地址在 MDIO 内核寄存器的MDIO_REGAD(比特 [31:16] 在偏移0x21中指定)。

    阅读访问权限

    可使用 MDIO 接口从外部 PHY 读取访问权限,如下所示:

    1. 在地址偏移0x21中,对 MDIO 内核寄存器执行Avalon-MM 主写入,指定外部 PHY 设备地址 (MDIO_DEVAD)、端口地址 (MDIO_PRTAD) 和寄存器地址(MDIO_REGAD)。
    2. 以偏移0x20发行 32 位MDIO_ACCESS寄存器的 Avalon-MM 主读取。

    MDIO 内核会发生什么?
    当发出对MDIO_ACCESS寄存器的读取访问权限时,MDIO 内核开始生成 MDIO READ 帧,其中包含在寄存器中提供的信息以抵销0x21。作为对通过 MDIO 的本读取命令的响应,外部 PHY 提供指定寄存器返回 MDIO 内核的价值。此值加载到 MDIO 内核的MDIO_ACCESS寄存器中以偏移0x20。因此,似乎就像我们在偏移0x20读取本地 Avalon-MM 寄存器一样。

    此问题将影响 MegaWi® 和 SOPC Builder 流程。

    相关产品

    本文适用于 1 产品

    Arria® II GX FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。