OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5817|回复: 15

求助stm32f407 LAN8720 初始化成功,DHCP超时的原因

[复制链接]

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
发表于 2019-2-13 10:48:57 | 显示全部楼层 |阅读模式
参考原子哥stm34407原理图设计了一个板子,根据需求,采用的是STM32F407VET6这个板子,不添加外部SRAM,所以ETH管脚做了一些相应的改变,板子做出来用   《网络实验8 NETCONN_TCP 客户端》这个历程进行修改,LAN8720的时钟管脚25MHz,和MDC管脚输出50MHz都正常,网口俩LED也正常亮,初始化LAN8720正确,读取寄存器信息正常,lan8720的6号管脚输出电压1.2v,判定硬件是没问题了,可是DHCP超时,ping不通。搞了几天,无从下手啊,原子哥,跟各位路过的高手帮指点指点

LAN8720原理图

LAN8720原理图

串口打印信息

串口打印信息
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-13 10:49:43 | 显示全部楼层
测试时,已经将网口处连个ESD芯片去除
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-13 11:07:26 | 显示全部楼层
打印信息再补充一下,免得看不明白
3.jpg
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-13 14:39:02 | 显示全部楼层
测试波形

网口波形

网口波形
7.png
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-13 14:44:55 | 显示全部楼层
LAN8720的KDIO管脚波形,有170mv的50MHz

MDIO管脚有50MHz,但是幅度为170mv

MDIO管脚有50MHz,但是幅度为170mv
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2019-2-14 08:33:48 | 显示全部楼层
楼主上程序看看
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-14 09:24:09 | 显示全部楼层

想看那一部分的代码呀,全是原子哥例子的程序,我就上我把端口改的那一段程序吧[mw_shl_code=c,true]u8 LAN8720_Init(void)
{
        u8 rval=0;
        GPIO_InitTypeDef GPIO_InitStructure;
  
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD, ENABLE);//ê1ÄüGPIOê±Öó RMII½ó¿ú
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);   //ê1ÄüSYSCFGê±Öó
  
        SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_RMII); //MACoíPHYÖ®¼äê1óÃRMII½ó¿ú

        /*íøÂçòy½ÅéèÖà RMII½ó¿ú
          ETH_MDIO -------------------------> PA2
          ETH_MDC --------------------------> PC1
          ETH_RMII_REF_CLK------------------> PA1
          ETH_RMII_CRS_DV ------------------> PA7
          ETH_RMII_RXD0 --------------------> PC4
          ETH_RMII_RXD1 --------------------> PC5
          ETH_RMII_TX_EN -------------------> PB11**
          ETH_RMII_TXD0 --------------------> PB12**
          ETH_RMII_TXD1 --------------------> PB13**
          ETH_RESET-------------------------> PD3*/
                                       
          //ÅäÖ&#195A1 PA2 PA7
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;  
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_ETH); //òy½Å¸′óÃμ½íøÂç½ó¿úéÏ
        GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_ETH);

        //ÅäÖ&#195C1,PC4 and PC5
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOC, GPIO_PinSource1, GPIO_AF_ETH); //òy½Å¸′óÃμ½íøÂç½ó¿úéÏ
        GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_ETH);
                                
        //ÅäÖ&#195B11, PB14 and PB13
        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_ETH);
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_ETH);
       
        //ÅäÖ&#195D3ÎaíÆíêêä3ö
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;        //íÆíêêä3ö
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;  
        GPIO_Init(GPIOD, &GPIO_InitStructure);
       
        LAN8720_RST=0;                                        //ó2¼t¸′λLAN8720
        printf("¸′λLAN8720 \r\n");
        delay_ms(200);       
        LAN8720_RST=1;                                         //¸′λ½áêø
        ETHERNET_NVICConfiguration();        //éèÖÃÖD¶ÏóÅÏ輶
        rval=ETH_MACDMA_Config();                //ÅäÖÃMAC¼°DMA
        if(!rval)
        {
                printf("LAN87203õê¼»ˉ꧰ü\r\n");
                return !rval;       
        }
        else
        {
                printf("LAN87203õê¼3é1|\r\n");
                return !rval;                                        //ETHμÄ1æÔòÎa:0,꧰ü;1,3é1|;ËùòÔòaè¡·′ò»ÏÂ
        }
       
}[/mw_shl_code]
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2019-2-14 10:14:45 | 显示全部楼层
张万春 发表于 2019-2-14 09:24
想看那一部分的代码呀,全是原子哥例子的程序,我就上我把端口改的那一段程序吧[mw_shl_code=c,true]u8 L ...

直接上工程
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-14 10:21:32 | 显示全部楼层

整个完整工程

RAW_TCP客户端实验.rar

7.89 MB, 下载次数: 1761

回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-15 10:24:10 | 显示全部楼层

大哥,分享分享点经验呀
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-15 10:48:13 | 显示全部楼层
我感觉我找到原因了,原理图错了,先修改一下,在上传
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2019-2-15 20:36:42 | 显示全部楼层
张万春 发表于 2019-2-15 10:48
我感觉我找到原因了,原理图错了,先修改一下,在上传

软件验证过可以正常工作,应该是你硬件问题
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-2-18 14:39:06 | 显示全部楼层
yklstudent 发表于 2019-2-15 20:36
软件验证过可以正常工作,应该是你硬件问题

是的,我已经解决了,我原理图确实出问题了,谢谢了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-2-28
在线时间
1 小时
发表于 2019-2-28 20:27:53 来自手机 | 显示全部楼层
楼主你好,我的问题也和你一样,其他都调通了旦DHCP超时,一直没发现原因,请问一下你的问题的原因是什么?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-2-28
在线时间
1 小时
发表于 2019-3-1 08:26:18 来自手机 | 显示全部楼层
我怀疑我的原理图是否也会存在问题,但对比原子哥的原理图好像也没发现差别,能请告诉一下你是怎么解决的吗?
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-2-13
在线时间
10 小时
 楼主| 发表于 2019-3-12 15:27:34 | 显示全部楼层
孟庆丰 发表于 2019-3-1 08:26
我怀疑我的原理图是否也会存在问题,但对比原子哥的原理图好像也没发现差别,能请告诉一下你是怎么解决的吗 ...

我是TXD0跟TXD1搞反了,这是粗心造成的错误,多检查一下你的电路吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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