打印
[STM32F7]

求问诡异的问题,eth网口ping不通

[复制链接]
1528|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pi, DM, ma, AC, ar, DMA
stm32arm+KSZ8041NL1实现网口功能,同一套程序移植到另一块板卡就ping不通了,两套板卡arm和phy芯片部分连接是一样的。单步调试发现两个问题:
1)经常在初始化的时候卡在ETH_DMABMR.SR软件复位后不自动恢复,导致超时。往往重新上下电几次就好了,非常不稳定;
2)ETH_DMABMR.SR能正常复位的情况下,还是不触发dma接收中断。示波器量过ETH_RXD管脚上面都有波形,dma接收和中断设置都正常设置和打开,ETH_MAC和DMA寄存器也没发现问题,但就是不进中断。可以正常发送arp数据出来,MAC的loop模式是可以触发中断的;

求问各位有没有遇到过类似问题

使用特权

评论回复
沙发
elephant00| | 2024-9-5 15:06 | 只看该作者
连接问题?

使用特权

评论回复
板凳
两只袜子| | 2024-9-5 16:04 | 只看该作者
网络接口是否已启用,并且没有错误或警告信息。

使用特权

评论回复
地板
jcky001| | 2024-9-5 16:05 | 只看该作者
IP地址和子网掩码配置有误吗

使用特权

评论回复
5
cr315| | 2024-9-5 17:56 | 只看该作者
检查网关和DNS设置是否正确

使用特权

评论回复
6
duo点| | 2024-9-5 21:23 | 只看该作者
检查是否有其他安全软件(如杀毒软件)可能阻止网络通信。

使用特权

评论回复
7
onlycook| | 2024-9-5 21:59 | 只看该作者
检查交换机或路由器是否有问题

使用特权

评论回复
8
七毛钱| | 2024-9-5 22:23 | 只看该作者
检查设备的系统日志,看是否有与网络连接相关的错误信息。

使用特权

评论回复
9
内政奇才| | 2024-9-5 23:00 | 只看该作者
网络接口卡(NIC)或其他硬件组件存在故障

使用特权

评论回复
10
丙丁先生| | 2024-9-6 00:02 | 只看该作者
在面对STM32微控制器与KSZ8041NL1 PHY芯片连接实现的网络通信中,若遇到网络接口无法ping通的问题,对于任何嵌入式系统工程师来说,都是一项严峻的挑战。此问题的分析与解决不但涉及到硬件的物理连接,还包括软件配置及底层驱动的正确设置:

1. 软件复位不成功
   寄存器复位失败:在多次尝试初始化ETH_DMABMR.SR软件复位后,它不自动恢复,导致超时。这可能是由于软件代码中对复位机制的处理不正确或者存在Bug。解决这一问题的方法可能包括检查复位逻辑,确保软件复位后有正确的延时等待硬件响应,或检查是否存在硬件复位失败的情况。
   MAC没有进行初始化设置:如果DMABMR->SR寄存器不自动清0,将导致MAC初始化设置无法执行,以太网无法工作。这可能需要在软件代码中调整复位后的处理流程,例如提供足够的延时或者重试逻辑,以确保MAC初始化能够正确完成。

2. DMA接收中断未触发
   硬件连接问题:示波器检测到ETH_RXD管脚上有波形,但DMA接收和中断设置均正常设置和打开,却不触发中断。这可能与ETH_MAC和DMA寄存器设置有关,也可能是因为PHY芯片的硬件连接存在问题。应仔细检查PHY与MAC之间的硬件连接以及PHY芯片自身是否工作正常。
   中断配置错误:尽管中断已被设置和开启,但仍不会进入中断服务程序。此时需要重新检查中断的配置,包括中断优先级、中断向量是否正确配置,以及是否有其他代码错误导致了中断被屏蔽或未能正确触发。

3. 硬件焊接问题
   虚焊或接触不良:在一些情况下,硬件的虚焊或接触不良可能导致网络通信异常。尤其是对于STM32芯片的ETH时钟引脚,如果存在虚焊,那么即使其他硬件配置正确,也可能无法进行正常的网络通信。应通过各种测试手段,包括但不限于示波器测试,排查所有关键信号引脚的焊接情况。

4. 网络配置不当
   IP地址、子网掩码及网关配置错误:若这些网络基础配置参数设置不正确,也会导致网络通信失败。应仔细核查网络配置,确保IP地址、子网掩码和默认网关等参数的正确性。

5. LwIP协议栈配置不当
   ICMP校验和错误:若LwIP协议栈配置不当,可能导致ICMP校验和错误,从而无法进行网络通信。检查协议栈的配置,确保所有相关参数正确无误。

6. Eth-Trunk配置不当
   VLAN和Eth-Trunk配置错误:错误的VLAN和Eth-Trunk配置有可能导致网络包的路由选择错误,进而影响网络通信。检查交换机的VLAN和Eth-Trunk配置,确保它们与网络通信的需求相符。

7. 硬件复位信号不稳定
   复位信号不稳定导致的问题:在初始化过程中经常遇到的复位信号不稳定可能会导致通信异常。针对这一问题,可以尝试在软件中增加稳定的复位逻辑,或者检查硬件复位线路是否稳定可靠。

在深入探讨了这些问题及其解决策略之后,值得进一步讨论以下一些最佳实践和考虑因素,以确保网络通信的稳定性和可靠性:

在设计阶段,确保硬件的设计符合信号完整性的要求,避免因设计不当导致的通信问题。
在布线阶段,注意信号线的走向、长度和匹配电阻的使用,减少信号传输过程中的干扰和衰减。
在编程时,使用高效的编码风格和经过验证的库函数,以提高代码的可靠性和性能。
在测试阶段,进行全面的测试,包括单元测试、集成测试和压力测试,以确保网络通信在各种条件下都能正常工作。

总的来说,解决STM32微控制器与KSZ8041NL1 PHY芯片实现网络接口无法ping通的问题,需要综合考虑硬件设计、软件配置、焊接质量、网络配置及底层驱动设置等多个方面。通过系统的分析和逐一排查,结合提出的解决策略,可以有效地定位并解决问题,确保网络通信的可靠性和稳定性。同时,遵循最佳实践和注意事项,可以在未来的项目中避免类似问题的再次发生。

使用特权

评论回复
11
电力电子研逍|  楼主 | 2024-9-6 08:35 | 只看该作者

感觉是,但是不知道怎么排查了,有没有什么思路呀

使用特权

评论回复
12
电力电子研逍|  楼主 | 2024-9-6 08:36 | 只看该作者
两只袜子 发表于 2024-9-5 16:04
网络接口是否已启用,并且没有错误或警告信息。

检查了ETH_DMA和ETH_MAC寄存器,和正常的板卡对比了,除了没有接收描述符不变化没有数据以外,其他都没发现问题

使用特权

评论回复
13
电力电子研逍|  楼主 | 2024-9-6 08:38 | 只看该作者
jcky001 发表于 2024-9-5 16:05
IP地址和子网掩码配置有误吗

没问题的,检查过寄存器和电脑一个网段

使用特权

评论回复
14
chenjun89| | 2024-9-6 08:39 | 只看该作者
那就要检查一下两个板卡的硬件了

使用特权

评论回复
15
电力电子研逍|  楼主 | 2024-9-9 08:18 | 只看该作者
内政奇才 发表于 2024-9-5 23:00
网络接口卡(NIC)或其他硬件组件存在故障

MAC和DMA寄存器查了没有报错,还应该查哪些寄存器?

使用特权

评论回复
16
AdaMaYun| | 2024-9-9 16:10 | 只看该作者
ping不通有可能是硬件问题

使用特权

评论回复
17
电力电子研逍|  楼主 | 2024-9-11 13:16 | 只看该作者
AdaMaYun 发表于 2024-9-9 16:10
ping不通有可能是硬件问题

硬件查过晶振、TXD、RXD这些都查过了

使用特权

评论回复
18
电力电子研逍|  楼主 | 2024-9-20 16:52 | 只看该作者
结贴了。发现是RX_ERR管脚硬件上没用,但是软件上配置了。上一版没事,这次就不行了。后来管脚改成其他用途就好了。谢谢大家

使用特权

评论回复
19
烟雨蒙蒙520| | 2024-9-29 01:24 | 只看该作者
需要确保KSZ8041的配置正确,特别是速度、双工模式等,与STM32的配置相匹配。

使用特权

评论回复
20
4y1b3| | 2024-9-29 22:14 | 只看该作者
同一套程序移植到另一块板卡就ping不通了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝