This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6748通过MDIO接口连接Lan8700,LINK不上的问题

Other Parts Discussed in Thread: AM1808

你好:

       我们板子使用6748的MDIO接口连接lan8700芯片。代码参照starterware\third_party\lwip_1.3.2\ports\am1808\netif中的sitaraif.c编写。

现象:

1、代码执行到下图(a)第2步时,返回ERR_CONN,即执行Lan8710aLinkStatusGet()函数后,返回0;

 

 

                                                                       (a)

2、查看Lan8710aLinkStatusGet()函数定义时,见图(b);

单步执行Lan8710aLinkStatusGet()函数,linkStatus的值一直为0;

但是linkStatus的bit31应该为1时,才能使得Lan8710aLinkStatusGet()返回非零值(见标红数字1)

只有这样,才能执行break命令,返回一个非零值。(见标红数字2)

 

                                                                         (b)

3、查看MDIOPhyLinkStatusGet()函数,如图(c);以及LINK寄存器的定义可知,只有当LINK寄存器的值为1时,表示has a link,见图(d)

但是现在单步执行到MDIOPhyLinkStatusGet(),其一直返回0。

问:

1、上述现象应该表示:8700没有和PC连接上吧?

2、如果我的网线交叉或者直连模式有问题,会不会导致LINK不上?

3、EAMC模式如果设置有问题,会不会导致LINK不上?

(我仔细查看了代码中有关EMAC和RMII的初始化和设置,应该没有问题)

                                                                                 (c)

                                                                                (d)