fmql20系列芯片,phy为RTL8211芯片。
瑞昱RTL8211FS/RTL8211FSI 10/100/1000M以太网收发器datasheet-一牛网论坛
Procise配置system IP,选择Eth0,MDIO,Eth reset。Export Hardware选择Peripheral Test模板工程(回环测试)。lwip工程可以调网口。
注释main中除GIC和GMAC的内容(其他不需要测试),保留如下内容:
在Peripheral Test中,默认的芯片为88E1116R,所以需要修改芯片型号和地址(查阅芯片数据手册):
修改ID(不然检测不到PHY芯片):
发现在Procise配置Eth时,速率为1000Mbps,那么读取到的SPEED即为1000Mbps;速率为100Mbps,那么读取到的SPEED即为100Mbps(自适应设置)。
不知道在哪强制设置SPEED。
运行结果:
很奇怪,单步调试的话结果就不一样:
(领导说是延时没做好)
PHY link timeout:
是fmsh_mdio_read出问题?
自适应设置:
寄存器配置:
phy RTL8211FS配置-CSDN博客
测试结果:
PHY link up
GMAC failed ----(官方)可能是PHY给的rx_clk不对,用示波器查看rx_clk是否正常【什么样算正常,什么算不正常?】
----(官方)如果GMAC loopback成功,PHY link timeout,是GMAC和PHY的通信出问题,重点检查硬件设计
RTL8211 集成10_100_1000M以太网精密收发器-CSDN博客
RTL8211 时序分析 (基于FPGA的千兆网应用)-CSDN博客
网卡PHY 移植注意事项_phy的rx接收异常,tx输出正常-CSDN博客
lwip程序跑一下试试:
Ping通,但是连不上
破案了,能ping通但是网络不通,是它们在搞鬼_ping通但是无网络-CSDN博客
能Ping通外网但就是不能打开所有网页的解决办法_能ping通但是不能访问网页-CSDN博客
zynq与PC网线互ping成功_zynq与联网电脑-CSDN博客
应该不是ip、port冲突的原因。
重启电脑:还是不行。
好记性不如烂笔头(一)——局域网可以Ping通,但Socket无法连接_socket未连接怎么办-CSDN博客
关闭防火墙:没用。
百度安全验证https://baijiahao.baidu.com/s?id=1738410562299490730&wfr=spider&for=pc能检测到phy ID:MDIO正常。
MAC与PHY link成功:rx_clk正常。
找了领导,领导说配置应该没问题,但是:(以下修改均根据硬件来)
换成tcp协议:加中断(检测到数据就中断);或者轮询模式
RGMII换成MII(根据硬件来):目前还没修改
成功!
(但是GMAC回环测试依然failed)
RGMII设置修改处:
看领导的操作,最开始并没有像我一样急哄哄地运行程序,而是从main函数开始看数据的流向/程序走向。
弄清楚配置函数/结构体的数据流向。
告诉我可以自己做一个流程图(大神肯定脑海里有了)。
并且,自己在遇到问题的时候太关注于细节(某句代码是否正确,某个寄存器配置是否正确,etc)忽略了大局/整体。
当然,硬件设计也很重要,所有的软件都是在硬件设计的基础上的。所以一定要根据硬件来(重要!!!)
硬件连线决定的 电压 / ADDR / 芯片配置 / interface / 等等,一定要在软件设计前弄清楚。
学习之路还很长,继续加油吧