打印
[i.MX]

imx6q 移植lan8720phy芯片ip不通

[复制链接]
3176|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我们是在freescale imx6q-sabresed开发板的基础上layout的新板子,把它的AR8031 phy芯片换成了lan8720,我们使用了RMII模式,用GPIO16管脚作为外部时钟,其管脚连接见附件!现在主要的问题是phy芯片能够发送数据,而不能接收数据,波形都是有的。经示波器测量50MHZ的频率也是有的,phy芯片也注册上了,其他管脚也都工作正常,但就是ping不通主机或者网关(自己ping自己是没问题的)。
CPU:IMX6Q
LTIB版本:L3.0.35_4.1.0_130816_source
Linux内核:linux-3.0.35
Board-mx6q_sabresed.h文件中
        /* ENET */
        MX6Q_PAD_ENET_MDIO__ENET_MDIO,
        MX6Q_PAD_ENET_MDC__ENET_MDC,
        MX6Q_PAD_ENET_RXD0__ENET_RDATA_0,
        MX6Q_PAD_ENET_RXD1__ENET_RDATA_1,
        MX6Q_PAD_ENET_CRS_DV__ENET_RX_EN,
        MX6Q_PAD_ENET_RX_ER__ENET_RX_ER,
        MX6Q_PAD_ENET_TXD0__ENET_TDATA_0,
        MX6Q_PAD_ENET_TXD1__ENET_TDATA_1,
        MX6Q_PAD_ENET_TX_EN__ENET_TX_EN,
       
        MX6Q_PAD_GPIO_16__ENET_ANATOP_ETHERNET_REF_OUT, /* Internal connect for 1588 TS Clock  50M clock*/
        MX6Q_PAD_ENET_REF_CLK__GPIO_1_23,        /* RMII reset*/
        MX6Q_PAD_GPIO_5__GPIO_1_5,   /*PHY interrupt*/

Board-mx6q_sabresed.c文件中
  static void __init mx6_sabresd_board_init(void)
{
      /*reset*/
        gpio_request(SABRESD_LAN8720_RST, "lan-reset");
        gpio_direction_output(SABRESD_LAN8720_RST, 0);
        msleep(10);
        gpio_direction_output(SABRESD_LAN8720_RST, 1);

       val = phy_read(phydev, 0x0);
        if (val & BMCR_PDOWN)
                phy_write(phydev, 0x0, (val & ~BMCR_PDOWN));

board.jpg (223.7 KB )

board.jpg

lan8720.jpg (156.52 KB )

lan8720.jpg

log.JPG (82.77 KB )

log.JPG

相关帖子

沙发
lishilong988@|  楼主 | 2015-9-2 16:58 | 只看该作者
顶一个

使用特权

评论回复
板凳
ccw1986| | 2015-9-3 21:57 | 只看该作者
肯定是哪个初始化的地方设置的不对

使用特权

评论回复
地板
lishilong988917| | 2015-9-5 16:13 | 只看该作者
请问下,这个初始化应该怎样做 ?能详细介绍哈初始化过程麽 ?谢谢了~

使用特权

评论回复
5
mini1986| | 2015-9-6 10:13 | 只看该作者
static struct fec_platform_data fec_data __initdata = {
        .init = mx6q_sabresd_fec_phy_init,
        .phy = PHY_INTERFACE_MODE_RGMII,
        .gpio_irq = MX6_ENET_IRQ,
};
修改成
static struct fec_platform_data fec_data __initdata = {
        .init = mx6q_sabresd_fec_phy_init,
        .phy = PHY_INTERFACE_MODE_RMII,
        .gpio_irq = MX6_ENET_IRQ,
};
以上内容,你改了么......

使用特权

评论回复
6
dayuan_123456| | 2015-9-6 10:14 | 只看该作者
关注下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝