搜索
bottom↓
回复: 1

请教LPC1778+DP83848 初始化PHY不成功的问题

[复制链接]

出0入0汤圆

发表于 2013-8-1 10:48:17 | 显示全部楼层 |阅读模式
硬件平台用的是LPC1778+DP83848,原理图附件

部分初始化程序如下:
       
        /* Power Up the EMAC controller. */
        LPC_SC->PCONP |= (0x1<<30);
       
       
        LPC_IOCON->P1_0  &= ~0x07;        /*  ENET I/O config */
        LPC_IOCON->P1_0  |= 0x01;                /* ENET_TXD0 */
        LPC_IOCON->P1_1  &= ~0x07;       
        LPC_IOCON->P1_1  |= 0x01;                /* ENET_TXD1 */
        LPC_IOCON->P1_4  &= ~0x07;
        LPC_IOCON->P1_4  |= 0x01;                /* ENET_TXEN */
        LPC_IOCON->P1_8  &= ~0x07;       
        LPC_IOCON->P1_8  |= 0x01;                /* ENET_CRS */
        LPC_IOCON->P1_9  &= ~0x07;       
        LPC_IOCON->P1_9  |= 0x01;                /* ENET_RXD0 */
        LPC_IOCON->P1_10 &= ~0x07;       
        LPC_IOCON->P1_10 |= 0x01;                /* ENET_RXD1 */
        LPC_IOCON->P1_14 &= ~0x07;       
        LPC_IOCON->P1_14 |= 0x01;                /* ENET_RX_ER */
        LPC_IOCON->P1_15 &= ~0x07;       
        LPC_IOCON->P1_15 |= 0x01;                /* ENET_REF_CLK */
       
        LPC_IOCON->P2_8 &= ~0x07;        /* ENET/PHY I/O config */
        LPC_IOCON->P2_8 |= 0x04;                /* ENET_MDC */
       
        // LPC_IOCON->P1_16 &= ~0x07;        /* ENET/PHY I/O config */
        // LPC_IOCON->P1_16 |= 0x01;                /* ENET_MDC */
        LPC_IOCON->P1_17 &= ~0x07;       
        LPC_IOCON->P1_17 |= 0x01;                /* ENET_MDIO */
        //  LPC_IOCON->LOC_ENET_MDIO = 0x01;
       
       
        LPC_EMAC->MAC1 = 0xCF00;

        LPC_EMAC->Command = 0x0038;
        // Short delay
        for (loop = 100; loop; loop--);
        LPC_EMAC->MAC1 = 0x0;
       
        LPC_EMAC->Command &= ~0x02;
        LPC_EMAC->Command &= ~0x01;
        LPC_EMAC->MAC1    &= ~0x01;
       
        LPC_EMAC->MAC2 = 0x00;        /* initialize MAC2 register to default value */
       
        /* Non back to back inter-packet gap */
        LPC_EMAC->IPGR = 0x0012;    /* use the default value recommended in the users manual */
       
        LPC_EMAC->CLRT = 0x370F;    /* Use the default value in the users manual */
        LPC_EMAC->MAXF = 0x0600;    /* Use the default value in the users manual */
       
        /* PHY Select RMII */
        LPC_EMAC->MCFG |= 0x0018;
       
        /* RMII configuration */
        LPC_EMAC->Command = 0x0240;
       
        /*  (note bit 4 was set in original test, although spec says its unused) */
        LPC_EMAC->SUPP = 0x0000;
       
        for(i=1;i<32;i++)
        {
                phyid1 = Read_PHY(i , 2 );
                if(phyid1 == 0x2000) {
                        break;
                }
        }
       
        if(i >= 32) {
                while(1);
        }
但读出来的phyid总是为0xFFFF,应该是硬件的问题,不知道原理图是不是哪里有问题?请教下各位大神

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-8-2 15:07:52 | 显示全部楼层
找到问题的原因了
是那几个电容要并联在一起的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-10 17:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表