你好:
我这边使用6748和Lan8700进行网络通信,现在参照C6748_Startware_1_20_04_01/examples/evm6748/enet_echo进行修改。
例程使用Lan8710的MII模式,时钟信号为25MHz;我这边使用Lan8700的RMII模式,时钟信号为50MHz。
现在我这边引脚配置、RMII模式已经配置好,使用MDIOInit()(读数据速率为1M,写数据速率为114M)和EMACInit()函数进行初始化MDIO和EMAC接口;通过mdio读写Lan8700寄存器。
问题:
使用unsigned int MDIOPhyRegRead(unsigned int baseAddr, unsigned int phyAddr, unsigned int regnum, volatile unsigned short *dataPtr)函数读Lan8700的32个寄存器时,返回值全为0。(MDIOPhyRegRead()函数定义中如果读到寄存器值,则返回1;如果没读到,则返回0)。为什么会没读到寄存器的值?
是因为Lan8700没工作?(但是我这边给8700提供了50MHz的时钟,理论上应该工作了)
还是说因为例程按照Lan8710编写程序,我这边使用Lan8700时不能直接用?(但是我对比了两个芯片,除了个别地方配置不同,其他都一样啊)
谢谢
