用STM32F427驱动LAN8720,网线重新插拔后不能识别请教

2019-12-11 18:26发布

本帖最后由 dwj0 于 2019-4-28 15:02 编辑

我用STM32F427驱动LAN8720,当使用自动协商功能时,一切正常。
但自动协商时,如果网线没有连接,那么等待的时间有点长。
因此我使用不自动协商,强制指定百兆全双工。网线插上开机能正常工作,但是当我重新插拔网线之后,网线灯就不亮了。
我查看了自动协商状态完成时,也是百兆全双工啊,而且以前DM9161这么用也没有问题,怎么8720不行呢?

另外,能过调试发现,使用不自动协商,当我网线拔掉,重新插上时,检查状态寄存器BSR中的Link Status位为0,就是没有检测到网线插入
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
dwj0
1楼-- · 2019-12-12 00:20
 精彩回答 2  元偷偷看……
xiaomu
2楼-- · 2019-12-12 01:09
既然上电能检测到网线,当检测网线拔掉后,复位一下8720, 应当就可以了
dwj0
3楼-- · 2019-12-12 01:43
xiaomu 发表于 2019-4-28 15:29
既然上电能检测到网线,当检测网线拔掉后,复位一下8720, 应当就可以了

不行啊, 我可以检测到网线拔掉,并重新复位一下,但复位完后,网线还是没有插入,等插入的时候又不通了。
bigharpoon
4楼-- · 2019-12-12 06:54
可以利用状态机,当检测到网线拔掉后,不进行关键以太网程序处理;网线再次插入后,重新复位PHY或者重新初始化。
dwj0
5楼-- · 2019-12-12 08:25
bigharpoon 发表于 2019-5-6 21:27
可以利用状态机,当检测到网线拔掉后,不进行关键以太网程序处理;网线再次插入后,重新复位PHY或者重新初 ...

就是检测不到网线插入啊,读状态寄存器还是没插入状态。
后来还是改成自动协商了,更改了会卡住的函数
1328616904
6楼-- · 2019-12-12 11:27
 精彩回答 2  元偷偷看……

一周热门 更多>