硬汉嵌入式论坛

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

[CMSIS-Driver] CMSIS-Driver驱动各种以太网PHY芯片,读取ID前建议加上软件复位

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
发表于 2019-11-22 08:42:31 | 显示全部楼层 |阅读模式
实际测试发现这个CMSIS-Drvier驱动DM916X没有这个问题,而驱动LAN8720的时候

偶尔有上电无法使用的问题,在此处加上一个PHY芯片的软件复位后,就非常好用了。

QQ截图20191122084928.jpg





回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2019-11-22 08:50:11 | 显示全部楼层
为了方便大家复制粘贴,直接将这段代码贴出来:


  1.            {
  2.                 uint32_t tout;
  3.                  
  4.                 PHY.reg_wr(ETH_PHY_ADDR, REG_BMCR, BMCR_RESET);
  5.                 for (tout = 0; tout < 0x10000; tout++)
  6.                 {
  7.                         PHY.reg_rd(ETH_PHY_ADDR, REG_BMCR, &val);
  8.                         if (!(val & 0x8000))
  9.                         {
  10.                                 break;
  11.                         }
  12.                 }
  13.          
  14.           }
复制代码


回复

使用道具 举报

3

主题

1222

回帖

1231

积分

至尊会员

积分
1231
发表于 2019-11-22 09:10:17 | 显示全部楼层
硬汉大哥行动好快!!!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2019-11-22 14:33:16 | 显示全部楼层
用 83848替代 9612 有什么注意事项吗?工程用的硬汉的"V7-1000_RL-TCPnet V7.X实验_工程移植模板(RTX5)", 目前 插拔网线的状态可以识别,但是ping 不通.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2019-11-22 14:35:28 | 显示全部楼层
icemagicisme 发表于 2019-11-22 14:33
用 83848替代 9612 有什么注意事项吗?工程用的硬汉的"V7-1000_RL-TCPnet V7.X实验_工程移植模板(RTX5)",  ...

83848可以实际使用这个现成的驱动
QQ截图20191122143634.jpg
回复

使用道具 举报

7

主题

18

回帖

39

积分

新手上路

积分
39
发表于 2019-12-21 22:40:53 | 显示全部楼层
我也是移植了例程,正常上电能ping通,拔掉后再插上就没法ping通了,PHY换成LAN8742A
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2019-12-22 10:01:52 | 显示全部楼层
pokemonds 发表于 2019-12-21 22:40
我也是移植了例程,正常上电能ping通,拔掉后再插上就没法ping通了,PHY换成LAN8742A

8742也没问题,NUCLEO板子就是用的这个。
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2019-12-22 17:12:16 | 显示全部楼层
硬汉,我的网络连接有时候能连上,有时候连不上,一直卡在下图的连接状态,应该怎么分析原因?
123.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2019-12-23 00:24:02 | 显示全部楼层
miaoqiongb 发表于 2019-12-22 17:12
硬汉,我的网络连接有时候能连上,有时候连不上,一直卡在下图的连接状态,应该怎么分析原因?

多试试。
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2019-12-23 08:35:01 | 显示全部楼层

找到原因了,我用了一段延长线导致连接不稳定,把线改短就可以了
回复

使用道具 举报

5

主题

95

回帖

110

积分

初级会员

积分
110
发表于 2020-1-11 22:58:38 | 显示全部楼层
今天遇到了类似的问题,刚下完程序后,ping不通,需要断电再上电硬件复位后才正常,芯片用的lan8720,感觉工作异常之后,再次使用前必须保证要硬复位一样
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2020-3-12 10:52:54 | 显示全部楼层
eric2013 发表于 2019-11-22 14:35
83848可以实际使用这个现成的驱动

但是CMSIS-Drvier里没有提供Ethernet  MAC驱动,在哪里可以找到呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2020-3-12 11:09:34 | 显示全部楼层
nonono青蛙 发表于 2020-3-12 10:52
但是CMSIS-Drvier里没有提供Ethernet  MAC驱动,在哪里可以找到呢?

也在RTE环境里面呢,用户安装STM32FX的软件包即可,自带MAC的,安装后就会展示出来。
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2020-4-26 15:18:28 | 显示全部楼层
请教下,我下载这段代码后,显示的串口输出都正确,但是显示无法访问目标主机是什么原因呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2020-4-26 17:08:35 | 显示全部楼层
yuanzhongda 发表于 2020-4-26 15:18
请教下,我下载这段代码后,显示的串口输出都正确,但是显示无法访问目标主机是什么原因呢

这里有完整测试代码:

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

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2020-4-27 09:48:53 | 显示全部楼层
eric2013 发表于 2020-4-26 17:08
这里有完整测试代码:

分享个修正版RL-TCPnet V7.X和LwIP的LAN8720驱动,符合CMSIS-Driver驱动规范, ...

硬汉哥,我找到产生的原因了,RTX的global dynamic memory size你这写的是20480,我一旦改大一点就出错,这是为什么呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2020-4-27 10:49:24 | 显示全部楼层
yuanzhongda 发表于 2020-4-27 09:48
硬汉哥,我找到产生的原因了,RTX的global dynamic memory size你这写的是20480,我一旦改大一点就出错, ...

是不是RAM超了,IDE没有检测出来。
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2020-4-30 09:56:04 | 显示全部楼层
eric2013 发表于 2020-4-27 10:49
是不是RAM超了,IDE没有检测出来。

确实是,还有个问题请教下,如果想从这种中断时间的方法改为轮训是更改哪里呢,我看这个中断是RLTCP自己使能的吧entinit里面只是使能nvic
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2020-4-30 10:38:24 | 显示全部楼层
yuanzhongda 发表于 2020-4-30 09:56
确实是,还有个问题请教下,如果想从这种中断时间的方法改为轮训是更改哪里呢,我看这个中断是RLTCP自己 ...

老版的好改,新版的还没有研究在哪里可以方便的修改。

默认情况下是他们的任务封装起来了。
回复

使用道具 举报

2

主题

61

回帖

67

积分

初级会员

积分
67
发表于 2020-9-25 10:57:46 | 显示全部楼层
我想问一下 硬汉哥,在管脚初始化中增加了硬件复位,这个软件复位就不需要了吧
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2020-10-3 11:16:28 | 显示全部楼层
heluo1985 发表于 2020-9-25 10:57
我想问一下 硬汉哥,在管脚初始化中增加了硬件复位,这个软件复位就不需要了吧

同问,我也想给LAN8720A的复位引脚上加类似于单片机的复位引脚的阻容复位法,不知道是否可行?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2020-10-3 20:55:23 | 显示全部楼层
return_0 发表于 2020-10-3 11:16
同问,我也想给LAN8720A的复位引脚上加类似于单片机的复位引脚的阻容复位法,不知道是否可行?

需要,务必要同时加上软件复位:

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
 楼主| 发表于 2020-10-3 20:55:44 | 显示全部楼层
return_0 发表于 2020-10-3 11:16
同问,我也想给LAN8720A的复位引脚上加类似于单片机的复位引脚的阻容复位法,不知道是否可行?

需要,务必要同时加上软件复位:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 16:15 , Processed in 0.410203 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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