硬汉嵌入式论坛

 找回密码
 立即注册
查看: 345|回复: 10
收起左侧

[以太网] 关于调试H7的以太网遇到的一些问题的解决方案分析

[复制链接]

7

主题

38

回帖

59

积分

初级会员

积分
59
发表于 2025-10-25 23:09:54 | 显示全部楼层 |阅读模式
芯片平台:H743或者H750

网络协议栈:NetX和Lwip,主要是NetX。
网络PHY:LAN8742或者LAN8720。这两个芯片基本可以互换。
软件代码一般直接由CubeMX生成。

1、故障现象:直连电脑,电脑网卡显示无连接。没有使用协议栈的情况下,正常初始化PHY都连接不上网卡。
解决方案:硬件方面:检查PHY的25MHz时钟和50MHz时钟是否正常,供电3.3V是否正常,内部LDO输出的1.2V是否正常,复位引脚电压是否正常。
软件方面:尝试将IO口的速度更改为LOW试试。
注:(我本次(BGA封装)VeryHigh速度下网卡连接不上,设置为Low能正常连接。这个问题折腾了我一个礼拜,PHY芯片换了好多颗。网口换了好几个,一点效果都没有,还以为是MDIO的PCB布线太长的原因,以往(QFP封装)都是设置为VeryHigh,从来没有遇到过这个问题,尽快很早就看到过硬汉大佬的方案,但都没有认为是这里的问题)。

2、故障现象:使用了协议栈,网卡显示已连接,网络Ping不通。
解决方案:有很多可能的原因,以下梳理几条我经常遇到的。
      (1)PHY没有正常协议到100M全双工状态。一般在复位以后,等待1~2秒再进行下一步操作,尤其是LAN8720使用自动协商以后,一定要等待2s再去读PHY的状态,直到读到了100M 全双工以后再进行下一步。
      (2)MPU没有正确配置,使用网络协议栈,尤其是NetX时,是需要开启MPU的,把Cache和MPU都关闭是有问题的(原因未具体深究)。然后MPU的配置一定要正确。可以参考这个
STM32H7视频教程第14期:超干货,MPU和Cache实战,一张图了解所有经典配置案例,争取人人都可以玩溜(2022-05-08) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!
也可以参考CubeMXH7里面的例程配置。一般都是这里的问题居多。
     (3)链接文件一定要修改对,保证和自己的MPU配置一致。不一致的情况下,相当于配置了一个错误的MPU配置。这里要批评ST的是,每次都把链接文件里面的数据段改名字,搞得以前用的好好的链接文件用不了了,不认真看还看不出来。

3、剩下的问题基本都是应用程序层面的问题了,和底层的关系不大了。

这里记录一下自己调试网络所遇到的一些问题吧,也给坛里的朋友在遇到问题时一些解决思路。毕竟每次遇到的问题都不一样,每次都是花一两周时间偶然发现问题所在。

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119430
QQ
发表于 2025-10-26 01:22:11 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2025-10-26 10:58:09 | 显示全部楼层

这里请教大佬一个问题,因为内部flash只有128K,我的代码跑在内部flash中,Ping个十几万包啥问题没有,但是如果代码放在外部QSPI Flash中运行的话,Ping的稳定长度不固定,有时候几千包,有时候几万包,就会掉线。这会是什么原因?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119430
QQ
发表于 2025-10-27 01:24:14 | 显示全部楼层
lyj41801 发表于 2025-10-26 10:58
这里请教大佬一个问题,因为内部flash只有128K,我的代码跑在内部flash中,Ping个十几万包啥问题没有,但 ...

外部Flash推荐把这个开了

23.png
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2025-10-27 08:02:56 | 显示全部楼层
eric2013 发表于 2025-10-27 01:24
外部Flash推荐把这个开了

是按照这样设置的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119430
QQ
发表于 2025-10-27 09:28:35 | 显示全部楼层
lyj41801 发表于 2025-10-27 08:02
是按照这样设置的

使用此贴方案,逐步把代码设置到QSPI Flash试试,看看是那部分导致的

爽,一种非常给力的STM32H7内部Flash和QSPI Flash混合运行程序的方式,不再需要用户单独制作BOOT和APP
https://forum.anfulai.cn/forum.p ... 1011&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2025-10-27 10:11:22 | 显示全部楼层
eric2013 发表于 2025-10-27 09:28
使用此贴方案,逐步把代码设置到QSPI Flash试试,看看是那部分导致的

爽,一种非常给力的STM32H7内部F ...

OK,多谢大佬,而且我还发现我的LTDC打开以后,ETH就工作异常了,可能和PCB布线有关系,毕竟是两层板,频率太高了,导致MDIO通信异常
回复

使用道具 举报

4

主题

146

回帖

158

积分

初级会员

积分
158
发表于 2025-10-27 11:28:59 | 显示全部楼层
lyj41801 发表于 2025-10-27 10:11
OK,多谢大佬,而且我还发现我的LTDC打开以后,ETH就工作异常了,可能和PCB布线有关系,毕竟是两层板,频 ...
跑两层板,不考虑信号完整性了?ST可是有要求的!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119430
QQ
发表于 2025-10-27 11:53:27 | 显示全部楼层
lyj41801 发表于 2025-10-27 10:11
OK,多谢大佬,而且我还发现我的LTDC打开以后,ETH就工作异常了,可能和PCB布线有关系,毕竟是两层板,频 ...

这种情况,我想起来一个地方,你把RMII所设计到GPIO速度等级设置为LOW试试。

LOW等级也能够满足100Mbps的速度。
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2025-10-27 11:55:10 | 显示全部楼层
eric2013 发表于 2025-10-27 11:53
这种情况,我想起来一个地方,你把RMII所设计到GPIO速度等级设置为LOW试试。

LOW等级也能够满足100Mbp ...

现在设置的LOW,设置为其他的就会出现前面说的故障1,没有网卡连接
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2025-10-27 11:55:38 | 显示全部楼层
turnip 发表于 2025-10-27 11:28
跑两层板,不考虑信号完整性了?ST可是有要求的!

底板+核心板的方式,底板是两层板
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-11-22 04:11 , Processed in 0.044413 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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