芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 1977|回复: 0

【Zynq】【Lwip】解决频繁打印link up/down、绿灯不亮、自协商结束后插入网线无反应的问题

[复制链接]

该用户从未签到

25

主题

31

帖子

257

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
257
发表于 2024-10-17 09:54:41 | 显示全部楼层 |阅读模式

如果在使用官方lwip模板时出现自动协商失败,请先查看该帖子:https://www.corecourse.cn/forum.php?mod=viewthread&tid=29166

也可以用本帖提供的源文件直接替换,也可解决自动协商失败问题


xilinx官方提供的 LWIP_ECHO 的demo(vivado2018.3版本),在使用的过程中还发现一些小问题,在此提供解决方法

1、以太网设置固定速率的时候,会频繁打印link up/link down

2、开发板网口与电脑端连接时,会出现绿灯不亮

3、网线先不插,等待自协商结束后,再插上会无反应

这里针对上面3个bug,在这里提供一些解决方法:

(1)报错现象与分析

问题1:固定速率问题

现象如下图所示,设置固定速率为1000M后,插上网线就会不断提示link up/link down

image.png

分析:

① 笔者观察到在以太网物理层链路建立过程中,每次网线重新插入后,PHY状态寄存器的bit2(通常表示链路状态)初始会持续一段时间为0,然后才稳定为1。

在xemacpsif_physpeed.c文件下面configure_IEEE_phy_speed函数中,存在PHY复位操作(在828行左右,IEEE_CTRL_RESET_MASK是用于将bit15写入1)

image.png

根据数据手册的描述可见,在复位操作后,会导致链路的不稳定;例程中,在复位后,添加了延时操作,等待链路回复正常,但是这个时间是不够的;这也就是导致持续发送link up、link down的原因。

image.png

所以我们需要给它增加延时,如下图所示

image.png

② 经过修改后,如下图所示,插上网线后会提示一次Ethernet Link !

image.png

如下图所示,拔出网线会提示一次Ethernet Link down,不再重复打印

image.png

问题2:绿灯不亮问题

现象如下图所示,开发板网口与电脑端连接时,会出现绿灯不亮

image.png

分析:

① 这里主要是EEE寄存器和Reg16寄存器配置不对

② 先关闭LED1、LED2的 EEE 指示,再配置Reg 16寄存器;(代码位于xemacpsif_physpeed.c文件,phy_setup_emacps函数中)

image.png

③ 设置Reg16寄存器

image.png

问题3:网线先不插,自协商结束后,插入会无反应

现象如下图所示,网线先不插,等待自协商结束后,再插上会无反应;

image.png

分析:

①笔者在调试中发现xemacps_control.c文件中,XEmacPs_SetOperatingSpeed函数里面有速率相关的断言;这里将其屏蔽即可。

②自协商失败后,再插入网线,也会尝试连接

image.png

(2)快速解决方法

① 将帖子下方提供的三个C文件下载下来

image.png

② 打开工程下的bsp文件夹,找到对应的文件目录,进行替换即可

image.png

image.png

更新记录

24.10.24 更新固定速率,频繁打印link up/link down解决方法

文件下载:

xadapter.c

11.06 KB, 下载次数: 184

xemacps_control.c

39.82 KB, 下载次数: 226

xemacpsif_physpeed.c

35.07 KB, 下载次数: 244

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2025-1-22 13:45 , Processed in 0.078151 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表