OpenEdv-开源电子网

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

stm32f407 + dp83848

[复制链接]

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-4-2
在线时间
0 小时
发表于 2014-4-2 08:50:17 | 显示全部楼层 |阅读模式
小弟最近要做 stm32f407 网口的开发, dp83848 网卡 RMII 模式, 外部50M 晶振提供时钟。
都弄 快 两周了还是没有 ping 通, 真心求教啊!!!

看相关例程 都是 PLL 提供给 dp83848 的时钟, 怎样设置才能让 外部的 50M 晶振提供dp83848 时钟呢?
需要操作那些寄存器?
小弟是菜鸟一枚, 望大神不吝赐教

例程如下, 需要怎样修改呢?
void ETH_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|
                      RCC_AHB1Periph_GPIOB|
                      RCC_AHB1Periph_GPIOC,
                      ENABLE); 
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); //????SYSCFG???è?±??

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  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);              
  
RCC_MCO1Config(RCC_MCO1Source_PLLCLK,RCC_MCO1Div_2);  // 这句应该是表示从 PA8 脚上输出 50M 信号吧?
SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_RMII); //??PHY?????¨??????RMII????

/* Ethernet pins configuration ************************************************/
   /*
        ETH_MDIO -------------------------> PA2
        ETH_MDC --------------------------> PC1
        ETH_MII_RX_CLK/ETH_RMII_REF_CLK---> PA1
        ETH_MII_RX_DV/ETH_RMII_CRS_DV ----> PA7
        ETH_MII_RXD0/ETH_RMII_RXD0 -------> PC4
        ETH_MII_RXD1/ETH_RMII_RXD1 -------> PC5
        ETH_MII_TX_EN/ETH_RMII_TX_EN -----> PB11
        ETH_MII_TXD0/ETH_RMII_TXD0 -------> PB12
        ETH_MII_TXD1/ETH_RMII_TXD1 -------> PB13
ETH_MII_RESET/ETH_RMII_RESET -----> PC0
                                                  */

  /* Configure PA1, PA2 and PA7 */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_ETH);
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH);
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_ETH);

  /* Configure PB11,PB12 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);

  /* Configure PC1, 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);
  GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_ETH);
  GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_ETH);
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-11-12 11:19:04 | 显示全部楼层
回复【15楼】song19881218:
---------------------------------
PA8不配好像不通,
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 1 反对 0

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 10:06:57 | 显示全部楼层
跟踪一下初始化完成了吗?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-4-2
在线时间
0 小时
 楼主| 发表于 2014-4-2 10:11:13 | 显示全部楼层
完成了呀, 我现在网口的指示灯, 小黄灯一上电就一直亮, 是不是我的网卡坏了呀
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 10:12:41 | 显示全部楼层
ping不通,是否可以打开网页?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 10:20:53 | 显示全部楼层
RCC_MCO1Config(RCC_MCO1Source_PLLCLK,RCC_MCO1Div_2);  
SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_RMII); //??PHY?????¨??????RMII????
这两句可以不用管,因为你的dp83848接的是外部时钟,不会影响,
1、用外部时钟,PA8必须配置,否则程序会死在软件复位的语句里;
2、确定你的程序是在RMII模式下运行的
3、协议栈时钟是否添加
4、把IP由自动获取改为静态配置
5、如果ping不通可以打开网页,说明ICMP没打开,打开即可
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 10:24:22 | 显示全部楼层
回复【3楼】honghongbuqi:
---------------------------------
最好跟踪试试,这个过程就是初始化的过程,初始化完成了,就可以通了,现在通不了,问题可能就在初始化里了
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-4-2
在线时间
0 小时
 楼主| 发表于 2014-4-2 10:26:42 | 显示全部楼层
现在网页没打开, 程序是在 RMII模式下的, IP 也是静态IP
3、协议栈时钟是否添加 ?? 这是什么意思??
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 10:30:29 | 显示全部楼层
回复【7楼】honghongbuqi:
---------------------------------
void Time_Update(void)
{
  LocalTime += SYSTEMTICK_PERIOD_MS;
}
这个函数是否正常调用?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 10:32:55 | 显示全部楼层
if (ETH_CheckFrameReceived())
      { 
        /* process received ethernet packet */
        LwIP_Pkt_Handle();
      }
LwIP_Periodic_Handle(LocalTime); 
这个if语句可以进的去吗?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-4-2
在线时间
0 小时
 楼主| 发表于 2014-4-2 10:41:00 | 显示全部楼层
if (ETH_CheckFrameReceived()) 
      {  
        /* process received ethernet packet */ 
        LwIP_Pkt_Handle(); 
      } 
这个 if 进不去啊 !什么问题?
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 11:05:13 | 显示全部楼层
while里加个灯闪看看,是否正常?
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 11:06:40 | 显示全部楼层
如果不正常很明显初始化没完成,不是小黄灯闪烁就表示成功了
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-4-2
在线时间
0 小时
 楼主| 发表于 2014-4-2 11:21:37 | 显示全部楼层
我现在的现象是只要上电, 小黄灯就常亮不闪烁, 不插网线也亮 , 正常吗?
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-4-2 12:28:04 | 显示全部楼层
回复【13楼】honghongbuqi:
---------------------------------
这个只是表象,没记错的话,这个官网代码里,如果不插网线,死在一个等待里的,跟踪数据去查找!
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

5

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2011-9-24
在线时间
9 小时
发表于 2014-11-4 09:42:22 | 显示全部楼层
都用外部时钟了,干嘛还配置PA8
回复 支持 反对

使用道具 举报

25

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2014-7-16
在线时间
5 小时
发表于 2014-11-15 02:03:22 | 显示全部楼层
回复【10楼】honghongbuqi:
---------------------------------
我也进不去
光圈电子科技 晓航 多多 啾儿 实验室
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-5-5
在线时间
0 小时
发表于 2015-5-6 20:33:10 | 显示全部楼层
LZ 解决问题了么?
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-3-14
在线时间
2 小时
发表于 2015-11-5 19:57:32 | 显示全部楼层
用外部50M晶振了, A8要配置成什么模式?
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4368
金钱
4368
注册时间
2017-5-30
在线时间
579 小时
发表于 2017-11-20 19:37:39 | 显示全部楼层
楼主解决了吗
回复 支持 反对

使用道具 举报

2

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2017-8-9
在线时间
30 小时
发表于 2018-1-29 22:36:32 | 显示全部楼层

楼主解决了吗
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2018-4-18
在线时间
2 小时
发表于 2019-8-3 11:12:55 | 显示全部楼层
象牙塔 发表于 2014-4-2 10:20
RCC_MCO1Config(RCC_MCO1Source_PLLCLK,RCC_MCO1Div_2);  
SYSCFG_ETH_MediaInterfaceConfig(SYS ...

请问一下,既然使用了外部时钟为啥还要配置MCO输出?我也遇到了类似的问题,必须初始化以太网的PA8 侧可以正常运行,但是如果不配置的话就会卡死在以太网软件复位的地方。
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2019-8-12 09:00:37 | 显示全部楼层
Sunshin 发表于 2019-8-3 11:12
请问一下,既然使用了外部时钟为啥还要配置MCO输出?我也遇到了类似的问题,必须初始化以太网的PA8 侧可 ...

这个问题没有解决,就是把PA8配置了,后来再没有探讨这个问题了,大家有好的解决方法的可以分享一下
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

38

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2015-12-16
在线时间
50 小时
发表于 2020-1-18 10:11:43 | 显示全部楼层
象牙塔 发表于 2014-4-2 12:28
回复【13楼】honghongbuqi:
---------------------------------
这个只是表象,没记错的话,这个官网代码里 ...

我用的官网代码,插了网线,也配置了PA8,但是由于电路设计上没使用PA8,所以我是给phy一个外接25M的时钟,但现在一直停在while (ETH_GetSoftwareResetStatus() == SET)这条mac的DMA软件复位这里,请问你知道怎么解决吗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-11 08:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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