TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748的网口芯片Lan8700配置问题

你好:

       我这边使用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时不能直接用?(但是我对比了两个芯片,除了个别地方配置不同,其他都一样啊)

 

谢谢

Tony Tang:

是不是PHY的地址不对?

Tim ding:

回复 Tony Tang:

你好:

      我看6748手册说,mdio可以支持32个phy,我把phy地址从0改到31,还是不对

Tony Tang:

回复 Tim ding:

设成PHY对应的地址,不是任意设个地址。

Tim ding:

回复 Tony Tang:

你好:

      我看6748手册说,mdio可以支持32个phy,我把phy地址从0改到31,还是不对,为什么

Tim ding:

回复 Tony Tang:

Lan8700手册上,PhyADDR默认为0x11111,即31,但是我用31作为phy的地址,还是跟上面叙述的一样

Tim ding:

回复 Tony Tang:

你好:

        Lan8700手册上说,PhyADDR默认为0x11111,即31。可是我用31作为phy地址,还是不对

Tim ding:

回复 Tony Tang:

Tony:

       如果按照你说的,PhyAddr没有设置正确,那我这边应该怎么设置呢?

Lan8700手册上说,默认设置为0x1F,即31;但是我设置为31后,函数还是返回0

Tim ding:

回复 Tony Tang:

Tony:

1、这是我测量的MDIO和MDC引脚的波形,MDIO应该不用考虑时序问题吧?

你的意思是6748的MDIO引脚和Lan8700的MDIO引脚连接可能虚焊了?

2、时钟信号也是有的,50MHz

Tim ding:

回复 Tony Tang:

Tony:

       我这边把Lan8700的引脚都焊了一边,现在能读寄存器了,id值也对了,非常感谢。

现在我通过网线连PC,ping不通。

请问:

1、这个跟MAC地址有没有关系?如果有,我这边MAC地址怎么设置?

2、网线有直连和交叉两种方式,这个也应该要确认一下吧?

3、还有其他的原因吗?

赞(0)
未经允许不得转载:TI中文支持网 » C6748的网口芯片Lan8700配置问题
分享到: 更多 (0)