硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5271|回复: 18
收起左侧

[以太网] H743 以太网复位,程序第一能初始化成功,拔掉网线再初始化就不能复位成功

  [复制链接]

1

主题

11

回帖

14

积分

新手上路

积分
14
发表于 2020-5-16 23:56:30 | 显示全部楼层 |阅读模式
硬件是好的,程序第一跑起来很正常,突然拔掉网线再初始化就不能成功,就会进入下面的超时。
是参考大佬的RL-NET模板移植的。
SET_BIT(heth->Instance->DMAMR, ETH_DMAMR_SWR);

  /* Get tick */
  tickstart = HAL_GetTick();

  /* Wait for software reset */
  while (READ_BIT(heth->Instance->DMAMR, ETH_DMAMR_SWR) > 0U)
  {
    if(((HAL_GetTick() - tickstart ) > ETH_SWRESET_TIMEOUT))
    {
      /* Set Error Code */
      heth->ErrorCode = HAL_ETH_ERROR_TIMEOUT;
      /* Set State as Error */
      heth->gState = HAL_ETH_STATE_ERROR;
      /* Return Error */
      return HAL_ERROR;
    }
  }

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-5-17 09:42:12 | 显示全部楼层
用的那个PHY
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-5-17 13:43:25 | 显示全部楼层
用的是LAN8742啊,这个地方复位和PHY有关吗?
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-5-26 21:57:58 | 显示全部楼层

测试发现 上电程序先调netInitialize()没问题 ,拔掉网线再掉调netUninitialize();  就会初始化不成功。如果是自己调底层的 HAL_ETH_DeInit 和 HAL_ETH_Init 就不会 while (READ_BIT(heth->Instance->DMAMR, ETH_DMAMR_SWR) > 0U) 超时
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-5-26 22:33:49 | 显示全部楼层
antzhan 发表于 2020-5-17 13:43
用的是LAN8742啊,这个地方复位和PHY有关吗?

H7的NUCLEO板子就是用的就是NUCLEO,我之前测试过插拔,完全没问题。
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-5-26 22:37:34 | 显示全部楼层
eric2013 发表于 2020-5-26 22:33
H7的NUCLEO板子就是用的就是NUCLEO,我之前测试过插拔,完全没问题。

那是生成的EMAC_STM32H7xx.c和PHY_LAN8742A.c,需要做修改吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-5-26 22:38:54 | 显示全部楼层
antzhan 发表于 2020-5-26 22:37
那是生成的EMAC_STM32H7xx.c和PHY_LAN8742A.c,需要做修改吗?

EMAC_STM32H7xx.c请务必使用当前的最新版,也就是说下载最新的STM32H7软件包使用。
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-5-26 22:50:12 | 显示全部楼层
eric2013 发表于 2020-5-26 22:38
EMAC_STM32H7xx.c请务必使用当前的最新版,也就是说下载最新的STM32H7软件包使用。

已经是最新的了,大佬能发一下你之前测试的nucleoH743的工程吗?调了两天没头绪,还有问下这个RL-TCPnet是只有库没有源码吗?
回复

使用道具 举报

28

主题

274

回帖

358

积分

高级会员

积分
358
发表于 2020-5-27 08:39:45 | 显示全部楼层
antzhan 发表于 2020-5-26 22:50
已经是最新的了,大佬能发一下你之前测试的nucleoH743的工程吗?调了两天没头绪,还有问下这个RL-TCPnet ...

https://github.com/suoZhangEmbedded/stm32h7_freertos
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-5-27 23:52:38 | 显示全部楼层
suozhang 发表于 2020-5-27 08:39
https://github.com/suoZhangEmbedded/stm32h7_freertos

谢谢,我现在在测试RL-TCPnet,
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2020-8-3 15:00:45 | 显示全部楼层
antzhan 发表于 2020-5-27 23:52
谢谢,我现在在测试RL-TCPnet,

你的问题解决了吗?我这边也出现了和你一摸一样的问题,同样是拔掉网线再初始化就超时。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-8-3 15:33:21 | 显示全部楼层
gsnkey 发表于 2020-8-3 15:00
你的问题解决了吗?我这边也出现了和你一摸一样的问题,同样是拔掉网线再初始化就超时。

用我的这个方案,另外使用官方的NUCLEO板子测试,还是不行,你的程序没有移植好。

【实战经验分享】一劳永逸的解决网线随意热插拔问题
http://www.armbbs.cn/forum.php?m ... 5386&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2020-8-3 17:06:06 | 显示全部楼层
eric2013 发表于 2020-8-3 15:33
用我的这个方案,另外使用官方的NUCLEO板子测试,还是不行,你的程序没有移植好。

【实战经验分享】一 ...

好的,我再试下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-8-4 08:40:08 | 显示全部楼层
gsnkey 发表于 2020-8-3 17:06
好的,我再试下

遇到什么问题了,可以交流下。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2020-8-5 15:02:05 | 显示全部楼层
eric2013 发表于 2020-8-4 08:40
遇到什么问题了,可以交流下。

NUCLEO-H743ZI2使用您提供的模板,我这边修改下phy驱动确实没有问题,但是lan8720a拔掉网线再初始化就发生超时,初始化不成功。我在插拔时网线时用示波器测lan8720的时钟输出,拔网线时时钟会有短暂消失,之后又出现。lan8742a没有这个现象,查看H7手册,里面有关于复位时钟的要求,不知道是不是跟这有关系 1C48BF2F-2A79-49d1-9B91-8DE6FB964D44.png
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2020-8-6 07:46:24 | 显示全部楼层
gsnkey 发表于 2020-8-5 15:02
NUCLEO-H743ZI2使用您提供的模板,我这边修改下phy驱动确实没有问题,但是lan8720a拔掉网线再初始化就发 ...

我的8720a也有这个问题,回去试试你的方法
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-8-6 09:23:16 | 显示全部楼层
gsnkey 发表于 2020-8-5 15:02
NUCLEO-H743ZI2使用您提供的模板,我这边修改下phy驱动确实没有问题,但是lan8720a拔掉网线再初始化就发 ...

分享个修正版RL-TCPnet V7.X和LwIP的LAN8720驱动,符合CMSIS-Driver驱动规范,适用于所有STM32系列
http://www.armbbs.cn/forum.php?m ... 7297&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107026
QQ
发表于 2020-8-6 09:23:23 | 显示全部楼层
miaoqiongb 发表于 2020-8-6 07:46
我的8720a也有这个问题,回去试试你的方法

分享个修正版RL-TCPnet V7.X和LwIP的LAN8720驱动,符合CMSIS-Driver驱动规范,适用于所有STM32系列
http://www.armbbs.cn/forum.php?m ... 7297&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

57

回帖

57

积分

初级会员

积分
57
发表于 2020-8-18 15:49:13 | 显示全部楼层
我之前遇到过,我的问题是在重连网线后没重新调用HAL_ETH_Start()
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 11:47 , Processed in 0.288234 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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