【问题标题】:Ethernet Media-Independent Interface Management Control results in "link down"以太网媒体独立接口管理控制导致“链路断开”
【发布时间】:2019-07-08 13:46:04
【问题描述】:

我正在为 Digilent Nexys4 板 (Artix7 FPGA) 开发以太网驱动程序。我已经编写了一个 VHDL 组件来与 MDIO 协议中的 LAN8720A PHY 进行通信。它运作良好,当我发送一个要求写入寄存器的帧时,我可以读取我写入的值。但是当我要求读取基本状态寄存器时,它会返回链接断开状态。

这意味着以太网链路已断开,我无法发送以太网帧。我完全不知道为什么我有链接断开状态。即使我启用了自动协商,在自动协商结束后,当我尝试发送帧时,我也会出现链接断开状态。

有没有人知道为什么会发生这种情况以及我该如何解决这个问题?

谢谢。

编辑:似乎是因为 LAN8720A 的 DATA_VALID 信号。有谁知道如何将信号设置为“1”?

EDIT2:为了更精确,DATA_VALID 是 LAN8720A 的内部信号。用于上拉或下拉状态寄存器的链接状态位。

【问题讨论】:

  • 另一边是什么?它不会与 PC 等已知工作设备建立链接吗?
  • 另一边是PC。当 PHY 进行自动协商时,我可以用 PC ping 板子,但板子没有任何结果。
  • 连接PC时,状态寄存器的值是多少?根据reference.digilentinc.com/_media/nexys:nexys4:nexys4_rm.pdf 的第 4 章,您确定时钟是正确的吗?
  • 连接到 PC 时,状态寄存器的值为 782Dh。链路状态位已启动。我多次验证了我的时钟,我发现它没有问题。我会再次验证。感谢您的 cmets。
  • 0x782D 表示自动协商已完成(第 5 位)并且链接已启动(第 2 位)。当数据包从 PC 传入时,您应该会看到 CRS_DV 变高。

标签: vhdl fpga ethernet


【解决方案1】:

我找到了解决问题的方法:我不尊重帧间时间。现在我尊重帧间时间,链接状态不会下降,它会保持上升。虽然帧还没有发送,但这是向前迈出的一大步。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2023-03-10
    • 2011-03-05
    相关资源
    最近更新 更多