Rabbitoose 发表于 2024-3-7 16:37:58

有偿帮忙调试STM32与LAN8720A网络自动协商问题(500元)

本帖最后由 Rabbitoose 于 2024-3-7 16:44 编辑

硬件:STM32F429IGT6+LAN8720A+HR911105
交换机:锐捷 S2910V2-48GT4SFP-L
软件:CubeMX HAL无操作系统+LVGL+LWIP

故障情况:
在开发环境下使用的是H3C几款千兆交换机测试的,都可以自动协商为百兆全双工模式,并可与服务器进行速率为3兆多的TCP通信。
但是在应用现场使用锐捷交换机时,自动协商到百兆失败,然后由软件代码降格到十兆模式,导致与服务器数据传输速度很慢。而用笔记本测试同样的网线和交换机,则可以顺利以千兆模式连接。试了多个网络接口(多个房间)症状一样。

开发的人(不是我)在现场调试,试过网上别人提到的数种方法如正确配置寄存器地址、不自动协商而手工设置为百兆全双工模式,问题都没有解决。
如有熟悉这块的,希望能伸出援手!最好是今明两天有空帮忙远程指导一下。

可加我微信(论坛id即为微信名),事成一定答谢。若费时间太多,费用好说,总不会让坛友吃亏。

这个问题我前不久问过:
https://www.amobbs.com/thread-5789205-1-1.html

另外,以太网部分硬件电路是分开在两个板子上的,但应该不是问题所在,见此贴:
https://www.amobbs.com/thread-5779453-1-1.html

myiccdream 发表于 2024-3-7 16:58:00

我们软件给我说过一个问题。88E1512虽然是可以可以自动协商,
但是在uboot下,如果只用百兆四根线,交换机就是协商不上去。但是电脑强制又可以,最后强制他优化uboot 协商只能协商到100M就解决

qwe2231695 发表于 2024-3-7 17:26:19

是不是网线问题,更换网线为实验室用的同一条试试。

Rabbitoose 发表于 2024-3-7 17:29:17

qwe2231695 发表于 2024-3-7 17:26
是不是网线问题,更换网线为实验室用的同一条试试。
(引用自3楼)

应该不是网线问题,也不是交叉线和直连线的问题。网线更换测试过。

Rabbitoose 发表于 2024-3-7 17:30:33

myiccdream 发表于 2024-3-7 16:58
我们软件给我说过一个问题。88E1512虽然是可以可以自动协商,
但是在uboot下,如果只用百兆四根线,交换机 ...
(引用自2楼)

现在倒是也确实是4根线,百兆也搞不出8根线啊

qwe2231695 发表于 2024-3-7 18:16:29

Rabbitoose 发表于 2024-3-7 17:29
应该不是网线问题,也不是交叉线和直连线的问题。网线更换测试过。
(引用自4楼)

短一点的网线测试过吗? 另外换别的品牌交换机试下呢

Rabbitoose 发表于 2024-3-7 18:47:48

qwe2231695 发表于 2024-3-7 18:16
短一点的网线测试过吗? 另外换别的品牌交换机试下呢
(引用自6楼)

短的也一样有问题。刚刚寄了一个交换机过去试试。

kitten 发表于 2024-3-7 21:52:29

记得之前别的论坛做一个开源项目的时候,提过8720的时钟要求比较高。你可以试试用50M的有源晶振给8720和STM32提供时钟。

Rabbitoose 发表于 2024-3-7 22:23:47

kitten 发表于 2024-3-7 21:52
记得之前别的论坛做一个开源项目的时候,提过8720的时钟要求比较高。你可以试试用50M的有源晶振给8720和STM ...
(引用自8楼)

好的,我明天下单试试看。

我确认一下,应该是把nINTSEL(第2脚)上拉到VDD2A电平(现在是下拉),并用50MHz有源晶振同时给LAN8720的CLKIN(第5脚)和MCU的ETH_REF_CLK提供时钟信号,对吧?

我原来给LAN8720A用的是扬兴25MHz晶振(X322525MOB4SI),那我这次买爱普生或扬兴的有源晶振试试。

akey3000 发表于 2024-3-8 06:23:18

这种问题,最好找一块stm32+lan8720的开发板,对比测试下

Rabbitoose 发表于 2024-3-8 06:33:59

akey3000 发表于 2024-3-8 06:23
这种问题,最好找一块stm32+lan8720的开发板,对比测试下
(引用自10楼)

好的,之前还真没买过,上来就是造。。。

Stm32Motor 发表于 2024-3-8 08:18:16

Rabbitoose 发表于 2024-3-7 22:23
好的,我明天下单试试看。

我确认一下,应该是把nINTSEL(第2脚)上拉到VDD2A电平(现在是下拉),并用5 ...
(引用自9楼)

我用过扬芯的,还不错哈,我是STM32F407+LAN8720,都不丢包,之前的STM32F407+DM9162E怎么搞都会丢包

Rabbitoose 发表于 2024-3-8 08:42:10

Stm32Motor 发表于 2024-3-8 08:18
我用过扬芯的,还不错哈,我是STM32F407+LAN8720,都不丢包,之前的STM32F407+ ...
(引用自12楼)

你用的是扬兴有源晶振吗?

Stm32Motor 发表于 2024-3-8 08:48:10

Rabbitoose 发表于 2024-3-8 08:42
你用的是扬兴有源晶振吗?
(引用自13楼)

无源,字数补丁

redroof 发表于 2024-3-8 09:03:23

Stm32Motor 发表于 2024-3-8 08:18
我用过扬芯的,还不错哈,我是STM32F407+LAN8720,都不丢包,之前的STM32F407+ ...
(引用自12楼)

我就怀疑某些厂家的cpu的mac和另外一些厂家的phy有兼容性问题。最好是厂家指定什么你就用什么。
比如我的nuc980配lan8720总有小部分比例的板子会少量丢包,丢千分之几这个级别吧。换成厂家规定的ip101就再也不丢包了。

三年模拟 发表于 2024-3-8 09:08:51

redroof 发表于 2024-3-8 09:03
我就怀疑某些厂家的cpu的mac和另外一些厂家的phy有兼容性问题。最好是厂家指定什么你就用什么。
比如我的 ...
(引用自15楼)

我的nuc980也是lan8720从来没遇到过丢包,批量出货了好几k了

redroof 发表于 2024-3-8 09:13:07

本帖最后由 redroof 于 2024-3-8 09:15 编辑

三年模拟 发表于 2024-3-8 09:08
我的nuc980也是lan8720从来没遇到过丢包,批量出货了好几k了
(引用自16楼)

那就不知道了,或许是你没有精确的测,我们测试的时候要求ping 1万包,不丢一包,每个岀厂的板子都要这样测一遍。研发样机都是ping 10万包起的,也是必须一包不丢。实际上丢千分之几完全能用啊。。。
也或许是我的布线跟你有一点差别,在你那里真的完全不丢包。
反正问了代理商以后,按他们建议改了ip101,就可以保证每个板子ping 1万包一定不会丢一包

kitten 发表于 2024-3-8 09:19:38

Rabbitoose 发表于 2024-3-7 22:23
好的,我明天下单试试看。

我确认一下,应该是把nINTSEL(第2脚)上拉到VDD2A电平(现在是下拉),并用5 ...
(引用自9楼)

是这个意思,之前用过杨兴的这款有源晶振 OT252050MJBA4SL

kitten 发表于 2024-3-8 09:21:54

redroof 发表于 2024-3-8 09:13
那就不知道了,或许是你没有精确的测,我们测试的时候要求ping 1万包,不丢一包,每个岀厂的板子都要这样 ...
(引用自17楼)

建议你改的原因是因为IP101他们测试过,心里有底。另外一颗并没有测试,并不是说另外一个有问题。

redroof 发表于 2024-3-8 09:31:03

本帖最后由 redroof 于 2024-3-8 09:32 编辑

kitten 发表于 2024-3-8 09:21
建议你改的原因是因为IP101他们测试过,心里有底。另外一颗并没有测试,并不是说另外一个有问题。 ...
(引用自19楼)

新唐代理商明确的说见过,别人用lan8720会少量丢包,找过他们,然后说是换了lan8742就好了。
我一听就赶紧改板子了。。。

但是LAN8720用在imx6上面就是从来也不丢包的,很稳定,一直这样用的。。。
搞不懂这种兼容性问题。。。。

三年模拟 发表于 2024-3-8 09:35:12

redroof 发表于 2024-3-8 09:13
那就不知道了,或许是你没有精确的测,我们测试的时候要求ping 1万包,不丢一包,每个岀厂的板子都要这样 ...
(引用自17楼)

我的应用是nuc980的phy和电脑的phy直接板内直连,rj45都省略了

redroof 发表于 2024-3-8 09:43:40

三年模拟 发表于 2024-3-8 09:35
我的应用是nuc980的phy和电脑的phy直接板内直连,rj45都省略了
(引用自21楼)

我有个板子是内置交换机的,交换机是phy接口,所以也测过phy-phy直连。。。
用电容耦合,结果也发现总是有个很小的丢包率,所以后来老老实实装了个网卡变压器才把丢包率降到了0 {:titter:}

Stm32Motor 发表于 2024-3-8 10:50:16

我的lan7820, 双层板,ping100万不丢包哈,我都不敢相信,以前dm9162e总是丢包

z123 发表于 2024-3-8 11:06:07

本帖最后由 z123 于 2024-3-8 11:36 编辑

kitten 发表于 2024-3-7 21:52
记得之前别的论坛做一个开源项目的时候,提过8720的时钟要求比较高。你可以试试用50M的有源晶振给8720和STM ...
(引用自8楼)

8720都必须要用有源晶振吧??


看错了,手册也可以无源;只是一直自己用有源

myiccdream 发表于 2024-3-8 11:19:39

Rabbitoose 发表于 2024-3-7 17:30
现在倒是也确实是4根线,百兆也搞不出8根线啊
(引用自5楼)

我反思得意思是,大概率是双方协商成最高速率后,
因为某种原因,芯片达不到这个速率,卡死。
你的速率本身就几兆的速度 ,还不如限制成10M 速率算了。

Rabbitoose 发表于 2024-3-8 11:27:34

Stm32Motor 发表于 2024-3-8 10:50
我的lan7820, 双层板,ping100万不丢包哈,我都不敢相信,以前dm9162e总是丢包
(引用自23楼)

大哥帮我看一眼布局吧{:cry:} ,也是无源晶振,扬兴的X322525MOB4SI。

Rabbitoose 发表于 2024-3-8 11:33:05

myiccdream 发表于 2024-3-8 11:19
我反思得意思是,大概率是双方协商成最高速率后,
因为某种原因,芯片达不到这个速率,卡死。
你的速率本 ...
(引用自25楼)

我没说清楚,我说几兆是指的几兆Byte,弄成10M bit不行的。

Stm32Motor 发表于 2024-3-8 11:59:07

Rabbitoose 发表于 2024-3-8 11:27
大哥帮我看一眼布局吧 ,也是无源晶振,扬兴的X322525MOB4SI。
(引用自26楼)

看不出,我只是搞了等长而已阻抗匹配都不会

redroof 发表于 2024-3-8 12:04:49

Stm32Motor 发表于 2024-3-8 10:50
我的lan7820, 双层板,ping100万不丢包哈,我都不敢相信,以前dm9162e总是丢包
(引用自23楼)

所以我就认为这是主芯片和网卡之间的兼容性问题。某个主芯片的mac配某个phy就会丢包

Himem 发表于 2024-3-8 12:20:31

本帖最后由 Himem 于 2024-3-8 12:33 编辑

试过先过变压器再过fpc吗 49.9放到phy这边

Rabbitoose 发表于 2024-3-8 13:24:39

Himem 发表于 2024-3-8 12:20
试过先过变压器再过fpc吗 49.9放到phy这边
(引用自30楼)

额,我记得之前谁跟我说过这个事嘛,一翻旧贴果真是你{:lol:} https://www.amobbs.com/forum.php?mod=redirect&goto=findpost&ptid=5779453&pid=12051837

因为我用的网口是包含网络变压器的HR911105A,所以我上次也每测试。
现在我不得不把这个也放到待测任务里了。

谢谢再次提醒。

Rabbitoose 发表于 2024-3-9 17:33:22

本帖最后由 Rabbitoose 于 2024-3-9 18:03 编辑

已经有坛友加我,问题目前初步解决,更换为LAN8742,再观察观察。

楼上诸位免费提供经验分享,我也奉上汤圆略表谢意了。

z123 发表于 2024-3-10 19:40:13

Rabbitoose 发表于 2024-3-9 17:33
已经有坛友加我,问题目前初步解决,更换为LAN8742,再观察观察。

楼上诸位免费提供经验分享,我也奉上汤 ...
(引用自32楼)

LAN8742和LAN8720是pin to pin兼容嘛?软件要改吗?

Rabbitoose 发表于 2024-3-10 22:09:51

z123 发表于 2024-3-10 19:40
LAN8742和LAN8720是pin to pin兼容嘛?软件要改吗?
(引用自33楼)

兼且不改。

442502587 发表于 2024-3-10 22:16:00

Rabbitoose 发表于 2024-3-8 11:27
大哥帮我看一眼布局吧 ,也是无源晶振,扬兴的X322525MOB4SI。
(引用自26楼)

A这是啥软件的配色

redroof 发表于 2024-3-11 11:12:57

Rabbitoose 发表于 2024-3-10 22:09
兼且不改。
(引用自34楼)

也就是说之前新唐代理说的应该是真的。某个CPU的MAC配LAN8720会丢包的情况下,换LAN8742确实可能变好。你也见到了这种情况{:titter:}
也就是说不同CPU的MAC对不同PHY的兼容性真的是存在的,某些搭配就是好用,某些搭配就是可能偶尔丢包。。。。
不过LAN8742比IP101贵多了,所以我还是用了新唐开发板标配的IP101


Rabbitoose 发表于 2024-3-11 13:16:15

redroof 发表于 2024-3-11 11:12
也就是说之前新唐代理说的应该是真的。某个CPU的MAC配LAN8720会丢包的情况下,换LAN8742确实可能变好。你 ...
(引用自36楼)

应该是的。

而且stm32标配的应该就是LAN8742,因为STM32CubeMX的LWIP的platform settings设置里面,关于PHY driver,它是一个下拉框,里面能选的只有LAN8742和DP83848,而旧版本的STM32CubeMX里面还允许自定义寄存器地址的,不知道从哪个版本开始去掉了。

所以以后我就用贵的,不折腾了,毕竟我只是业余的、连小批量的量都没有的业余玩家{:dizzy:} 。

(回头再测试一下用有源晶振+LAN8720行不行。)

Stm32Motor 发表于 2024-3-11 16:49:37

我的stm32f407+ lwip+lan8720没问题哈
页: [1]
查看完整版本: 有偿帮忙调试STM32与LAN8720A网络自动协商问题(500元)