使用esp32芯片,使用ESP-IDF 5.2.1版本 适配CH390H, 开机初始化网络可以,但是拔插网线后网络不可用
使用github上的库: https://github.com/SergeyKharenko/esp-eth-drivers
分支:https://github.com/SergeyKharenko/esp-idf/tree/patch_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清零;
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中断需要特别注意下边这种情况。
如有其他问题可邮件沟通(zl@wch.cn)
代码加了中断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
感谢你的宝贵意见!