CH390 拔插网线后 网络不通

使用esp32芯片,使用ESP-IDF 5.2.1版本 适配CH390H, 开机初始化网络可以,但是拔插网线后网络不可用

使用github上的库: https://github.com/SergeyKharenko/esp-eth-drivers

分支:https://github.com/SergeyKharenko/esp-idf/tree/patch_ch390

请问这是什么问题?谢谢

您好,需要注意拔插网线后CH390网口灯是否还亮:

1、如果不亮说明CH390可能处于睡眠模式,想要恢复需要将GPR寄存器PHYPD清零;

image.png

2、如果网口灯还亮则需要看pingCH390时CH390能否进接收中断,如果能进接收中断

需要看一下收到的ICMP报文是否正常(可以跟wireshark抓到的报文对比一下),如果

收到的报文正常,则需要看协议栈是否正常处理(CH390只有网络收发功能,PING功能

是软件协议栈实现的),如果协议栈也有正常处理,则需要看一下CH390发包是否正常(

可以通过wireshark抓包判断)。


可以参考github代码SPI驱动CH390的接口以及WCH官网提供的CH390例程

CH390EVT.ZIP - k1体育 - 十年品牌 值得信赖 (wch.cn)想要实现的功能,

或者联系github代码提供者寻求帮助。如有其他问题可邮件沟通(zl@wch.cn)



属于情况2, 网口2个灯都亮,还其中一个闪,

我会检查一下中断,然后抓包试下,

还有可以帮我检查下github上这份代码?会不会发现问题?


您好,github代码还是建议联系原作者,他们对提交的代码更熟悉一些,此外link中断需要特别注意下边这种情况。image.png

如有其他问题可邮件沟通(zl@wch.cn)



image.png

代码加了中断link up/link down的检测,也做了写0x1f==0, 循环都0x1e, 但是还是不行,

拔插网线后ISR_PR 中断是有的,网络还是不通。感觉像发送或者接收缓冲这块有问题


请问此芯片有linux的驱动吗


您好,目前没有linux驱动的相关参考。


请问后期有做linux驱动的计划吗?


您好,这边可以留个邮箱,后面有相关计划及时通知您。


我是仓库作者,该问题已在前一阵子解决。详细原因请看 https://github.com/espressif/esp-eth-drivers/pull/23???

该仓库已合并至 https://github.com/espressif/esp-eth-drivers/tree/master, 但是在loopback部分仍然犯了低级错误,正在继续提交PR中。如果你需要用到这个功能,请颠倒phy部分phy_ctl1_reg_t 结构体的成员顺序,以及将ch390_loopback 函数中的pma_lpbk改为 remote_lpbk

感谢你的宝贵意见!


只有登录才能回复,可以选择微信账号登录