大家好:请教个问题,现在手上有个C6455的板子,接的PHY芯片为88E1111,使用GMII模式,测试UDP协议,10M模式下可以正常与PC通信,但是100M模式下没有反应。然后在PC端的ARP路由表中手动输入DSP端的IP与MAC地址,然后PC端发送数据DSP就能收到了,但是DSP端发送数据PC端还是收不到。想问下,如果要测试PHY的loopback模式,设置了PHY芯片的寄存器,是不是还有专门的DSP端的测试程序呢,UDP测试程序不能用来测loopback吧。因为在测试中发现,使用了PHY的自动协商模式,自己设置的loopback位就被修改掉了,恢复成正常模式了,另外测试loopback时需要将网线查到RJ45上吗,我实验了好几天也没进展,谢谢啦。
Allen35065:
loopback不需要插网线,你的现象看起来问题不像是DSP这一侧的,你可以考虑换个电脑抓包试试。
BeiY:
回复 Allen35065:
感谢专家的解答!
1,自己做的板子,使用的NDK2.0,C6455端与PHY芯片88E1111配置为GMII模式。CCS3.3版本。程序参考的client example,UDP协议的。
2,将 DVDD15, DVDD15MON,VREFHSTL, RSV07,RSV08,RSV11, RSV13, RSV14 引脚直接接地。
不用RGMII模式,这些引脚接地会对GMII模式有影响吗。
3,PLL2的输入时钟CLKIN2为25MHz,88E1111的晶振也是25MHz,有单独的晶振。
4,88E1111是BGA封装的,有些信号测不到。在初始化PHY芯片后,与PC端自动协商连接是100M的,
但为什么自动协商模式不是千兆呢,PC端是支持千兆的。GMTCLK测的时钟是25MHz。当然,只要把百兆的调通就够用了。
5,在发上一帖之前,在多个电脑也是实验过,现象一样。就是10M下能与PC通信,100M下不行。
使用抓包工具抓不到DSP端发过来的数据,ARP包也没有。
换过网线,交叉的,直连的。换过RJ45的座。换过DSP。就剩下88E1111没换了。
PS:手上还有一个C6455与ET1011C的板子,100M下可以正常使用。使用的是NDK2.0,CCS3.3,GMII模式,
使用官网提供的c6455_emac-0.4-latest中的loopback测试程序也一直是Link down的。程序不停的进到MDIO_timerTick( Handle hMDIO )
函数中的if( pd->phyState != PHYSTATE_LINKED )中,然后不停的给PHY芯片Reset。这怎么修改一下啊。
据网上文章说,PHY设置Loopback后端口可能就Link down了,MAC无法向该端口发帧,这时就需要通过设置端口Force Link up
才能使用Loopback功能。是这样的吗,在什么地方修改一下呢?
我想先在C6455 + ET1011C的板上把loopback跑通了再在C6455 + 88E1111的板上测试。
谢谢!
Allen35065:
回复 BeiY:
6455和PHY连接,应该以PHY为Master,6455的EMAC作为Slave,所有的握手是由PHY发起的,你看看是不是你得88E1111配置有错误;
如果你连了MDIO口,可以通过MDIO口读一下88E1111的内部寄存器,看它的状态是不是正常。