硬汉嵌入式论坛

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

关于cubemx6.8以上版本配置PHY芯片地址问题

[复制链接]

4

主题

19

回帖

31

积分

新手上路

积分
31
发表于 2024-3-9 17:01:46 | 显示全部楼层 |阅读模式
最近用cubemx配置lwip+freertos,板子是stm32f429igt6,LAN8720芯片的PHYAD0引脚是悬空的,代表其地址是0。发现一个神奇的事情,首先6.8以上版本的cubemx在ETH这里没有关于PHY_ADDRESS的配置项了,网上有教程说在stm32f4xx_hal_conf.h里面可以更改#define LAN8742A_PHY_ADDRESS这个宏定义,而且每次重新生成工程都需要修改为0U(默认是1U),但是我在整个工程搜索“LAN8742A_PHY_ADDRESS”这个宏定义发现它从来没有被调用过!于是我开始试验:发现它不管是1还是0都不影响网络,板子都可以ping通!同时裸机配置lwip也是如此。然后又有教程说在lan8720.c文件中修改LAN8742_Init这个函数里面的一句:pObj->Devaddr=0x1。但是我的文件中没有这句话。。。。所以我想请教各位,这个PHY芯片的地址到底是在哪里设置,或者说在哪里被使用到?附上我的LAN8742_Init函数。
图1:LAN8742A_PHY_ADDRESS宏定义及全局搜索结果



图2:教程中的修改位置

图3:我自己的LAN8742_Init函数,LAN8742_MAX_DEV_ADDR这个宏定义的值是31U


回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-9 17:04:01 | 显示全部楼层
不好意思,这是图1
屏幕截图1.png
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-9 17:06:29 | 显示全部楼层
按顺序,图2和图3,图3这个函数太长了,分两节
屏幕截图 2.png
屏幕截图3.png
屏幕截图 4.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2024-3-10 09:58:34 | 显示全部楼层
没弄过悬空方式,我的是手动下拉的接地的

12.png
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-10 17:17:43 | 显示全部楼层
正点原子的电路图上是悬空的,芯片手册里表示这个引脚默认是0

回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-10 17:22:52 | 显示全部楼层
然后我今天试着配置了一下网口的工作模式和速度,发现cubemx在这方面的配置直接没用。。。配置如下:
网口工作模式和速度.png
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-10 17:27:05 | 显示全部楼层
我在任务里面调用LAN8742_GetLinkState循环打印网口状态,无论我在cubemx里面配置成10M还是100M或者自动协商,串口输出的结果一直是2!也就是百兆全双工,但是按照我现在这个0x0014的配置,第31个寄存器的4:2应该是101,也就是10M全双工吧。
循环打印网口状态.png
LAN8742.h里面的宏定义.png
31寄存器.png
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-10 17:28:05 | 显示全部楼层
实在是迷惑了 到底哪些配置有用呢
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-3-10 17:41:24 | 显示全部楼层
PHY地址的疑惑解开了,代码在这里会遍历每个adddress,哪个有回应就是哪个。我粗心没认真看注释,给硬汉哥添麻烦了哈哈
代码.png
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-8-7 18:05:40 | 显示全部楼层
1和0都可ping通,但是LAN8720配置1会拒绝其他IP连接不能TCP通信。
回复

使用道具 举报

4

主题

1403

回帖

1415

积分

至尊会员

积分
1415
发表于 2024-10-9 09:37:47 | 显示全部楼层
character 发表于 2024-8-7 18:05
1和0都可ping通,但是LAN8720配置1会拒绝其他IP连接不能TCP通信。

你这个问题,解决了吗?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-10-10 17:03:12 | 显示全部楼层
菜鸟9号 发表于 2024-3-10 17:22
然后我今天试着配置了一下网口的工作模式和速度,发现cubemx在这方面的配置直接没用。。。配置如下:

博主,你这个设置界面的软件版本是哪个?mx6.8吗?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-10-10 17:05:04 | 显示全部楼层
菜鸟9号 发表于 2024-3-10 17:22
然后我今天试着配置了一下网口的工作模式和速度,发现cubemx在这方面的配置直接没用。。。配置如下:

博主,你这个设置界面的软件版本是哪个?mx6.8吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 07:23 , Processed in 0.395675 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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