我正在为Digilent板(Artix7 Nexys4 )开发以太网驱动程序。我用VHDL语言编写了一个与LAN8720A物理层以MDIO协议进行通信的部件。它工作得很好,当我发送一个请求写入寄存器的帧时,我可以读取我写入的值。但当我请求读取基本状态寄存器时,它会返回一个链路断开状态。
这意味着以太网链路已断开,我无法发送以太网帧。我完全不知道为什么我有链接关闭的状态。即使我启用了自动注册,在自动注册结束后,当我尝试发送帧时,我仍处于链路断开状态。
有没有人知道为什么会发生这种情况,以及我如何解决这个问题?
谢谢。
编辑:这似乎是因为LAN8720A的DATA_VALID信号。有人知道如何将信号设置为“1”吗?
EDIT2 :为了更精确,DATA_VALID是LAN8720A的内部信号。它用于上拉或下拉状态寄存器的链路状态位。
发布于 2019-07-17 16:36:44
我已经找到了我的问题的解决方案:我不尊重帧间时间。现在我考虑到帧间时间,链路状态不会关闭,它会保持正常。虽然帧仍然没有发送,但这是向前迈出的一大步。
https://stackoverflow.com/questions/56936304
复制相似问题