您尚未登录。

楼主 # 2023-08-22 15:18:48

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,379
积分: 1344.5

做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

t113-s3 + sr8201,网口部分抄的jlc上开源的的板子。总共做了5块,4块网络正常,就1块网络总是连不同。
一开始是网口灯都不亮,后来发现25M晶振有个管脚和外壳GND连了。重新焊接晶振后,有25M晶振波形了,网口link灯能闪烁。
但是如果执行udhcpc,则报错:

sunxi-gmac 4500000.eth eth0: Initialize hardware error

然后linkled灯就停止闪烁了。

以为是sr8201坏了,然后手头也没多余的8201了,就和另一块位网络正常的板子,对掉了sr8201。
结果对掉后,原来网络正常的板子,网络还是正常。
而这块有问题的板子,执行udhcpc后,不再报哪个错误了,linkled灯也始终保持闪烁。但是就是获取不了ip。

root@TinaLinux:/# udhcpc
udhcpc: started, v1.27.2
[  502.500278] libphy: 4500000.eth: probed
[  502.504630] sunxi-gmac 4500000.eth eth0: eth0: Type(7) PHY ID 001cc816 at 0 IRQ poll (4500000.eth-0:00)
udhcpc: sending discover
udhcpc: sending discover
[  506.766651] sunxi-gmac 4500000.eth eth0: Link is Up - 100Mbps/Full - flow control off
[  506.775419] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
udhcpc: sending discover

依照群友的建议,用ifconfig直接设置ip,然后和pc互ping,pc找不到arm板,arm板也ping连接不上。

8201的1脚RSET管脚应该接2.49K电阻,手头没有,之前是并联了4.7K和5.1K,算了下大约2.45K。怀疑是这个电阻阻值的问题,直接并联了4个10K电阻,应该是2.5K左右了。但问题依旧。
测量了1.0V输出,有1.1V左右电压。也是正常的。

可能的原因:
1,  sr8201焊接问题,但是吹下来过三次了...  不过还是这个问题最大,因为对掉过一次8201后,不再出现“Initialize hardware error”这个错误了。
2,  sr8201坏了?对掉过一次8201,以为有问题的8201焊接换到其他板子上能正常工作联网。
3,  t113-s3 坏了?
4,  晶振坏了?目前测试有25M波形。
5,  网络端口坏了?用的是HR913129AE,看到的例子是911105A,不过库房里有这个就用了,其他还有两块也是用的这个型号,网络正常。 而且查拔网线有link is down或link is up提示。
6,  周边阻容虚焊?在不通电的情况下测试了周围的电阻组织,主要是4.7K和1.5K,都正常,2.5K也近似。而且,也手动重新焊了一边阻容两端。

1_20230822-1522.png
2_20230822-1522.png
3_20230822-1522.png

最近编辑记录 Gentlepig (2023-08-22 15:47:43)

离线

#1 2023-08-22 15:23:08

memory
会员
注册时间: 2021-08-11
已发帖子: 487
积分: 464

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

中间打了过孔吗?

离线

楼主 #2 2023-08-22 15:33:14

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,379
积分: 1344.5

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

memory 说:

中间打了过孔吗?

我去,回复真快啊。以前发个帖子上午发帖下午才审核通过...

打孔指的是t113和sr8201的gnd焊盘吗?
t113-s3在底部打了个很大直径的过孔,焊接时灌锡。8201这里是在底部gnd焊盘上打了9个0.3mm直径的过孔。吹下来8201时测量过,这个焊盘和底部gnd是通的。

离线

#3 2023-08-22 17:26:32

memory
会员
注册时间: 2021-08-11
已发帖子: 487
积分: 464

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

@Gentlepig
board.dts 里面可以改一下 phy 的 tx 和 rx 参数,改大或者改小试一试。

离线

#4 2023-08-22 18:07:15

wupaul2001
会员
注册时间: 2019-09-30
已发帖子: 293
积分: 261

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

查查MDIO和MDC, init error是这两没通信正常

离线

楼主 #5 2023-08-23 08:51:49

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,379
积分: 1344.5

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

memory 说:

@Gentlepig
board.dts 里面可以改一下 phy 的 tx 和 rx 参数,改大或者改小试一试。

是修改phy收发管脚的驱动能力吗?问题是其他四块板正常。

离线

楼主 #6 2023-08-23 08:53:14

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,379
积分: 1344.5

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

wupaul2001 说:

查查MDIO和MDC, init error是这两没通信正常

对换sr8201后,没有这个init hardware error了,但是仍无法获取ip。

离线

楼主 #7 2023-08-23 10:55:55

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,379
积分: 1344.5

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

汇报下今天的进展。
感谢坑网群里的吴师、周师两位群友,给了我很多指导。

在次把吴师在群里的部分回复汇总下。
1. 可以看到灯亮! tx, rx , 25M 不用看;
2. 可以抓到芯片 mdc, mdio 不用看;
3. 所以只要看  rmii  的 txd, rxd, txen , rxdv , clk;
   工作正常! mdc, mdio 可以读寄存器, rst 不用看;

1. pc 和 版子 都设置固定 ip;
2. 使用 版子来 ping pc 的 ip , 此时在 pc 端,打 arp;
3. 再反向,pc 去 ping 版子,板子打 arp ,看看有没有 pc 的 mac 地址
若是有一边有! 一边没有,那就只要解决 tx 或 rx 即可;
例如! pc 看不到版子的 mac , 但是板子可以看到 pc 的!
这样就是 rx 是正常的! 只要解决 tx 的就行!

经测试,pc ping arm板,arm板可看到pc地址,反之不行。结论,arm板rmii发送有问题,集中在了txd0、txd1、txen三条线上。
用示波器测量,发现txd0、txd1上有波形,txen一直低电平。所以是txen有问题,可能和想临的焊盘短路了。暂时还未确定是哪个位置。

离线

#8 2023-08-23 11:25:12

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 278
积分: 256

Re: 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。

@Gentlepig
条理清楚,分析有理有据!

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn