你好:
通过6748分频,给8700提供50MHz时钟信号,连接方式为RMII;
参考TI例程(网口芯片为8710),使用固定IP,现在发现ping不通。
请问:
我用示波器测量50MHz的时钟信号,确实是有50MHz的始终信号提供给8700,网口的黄、绿色也亮,这能说明8700是正常工作了吗?
ping不通的话有什么原因?(电路连接问题、寄存器配置问题还是……)
Tony Tang:
检查一下Pinmux配置,是不是配置成MII模式了?
Tim ding:
回复 Tony Tang:
Tony:
在程序的main()函数的EMACPinMuxSetup()函数中设置了RMII模式;
1、按照下图的示意,我这边设置的应该没问题吧?
2、单步执行代码,发现程序在第一个if(!((MDIOPhyAliveStatusGet(sitaraif->mdio_base)>>sitaraif->phy_addr)&0x01))时,
不会进去,这应该说明alive正常的?
sitaraif->mdio_base = 0x01E24000,sitaraif->phy_addr = 31。
MDIOPhyAliveStatusGet()和Lan8710aLinkStatusGet()函数分别参考C6748\StarterWare\Drivers中的mdio.c和lan8710a.c例程
3、但是执行第二个if()时,进去了,然后返回了ERR_CONN,这说明link不上吧?
4、link不上跟什么有关?有没有可能是MAC地址设置不对?如果是,那应该怎么设置?
现在程序中设置为#define MAC_ADDR {0x00, 0x08, 0xEE, 0x03, 0x6A, 0xC6}
5、有没有可能是,网线交叉和直连方式弄错了,导致link不上?
Tony Tang:
回复 Tim ding:
Link是PHY与PHY之间的状态,与MAC没有关系。