OpenEdv-开源电子网

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

探索者V2标准库+LAN8720A移植到探索者V3板子上的YT8512C

[复制链接]

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
发表于 2023-11-16 09:22:25 | 显示全部楼层 |阅读模式
5金钱
使用的开发板是探索者V3(F707),使用探索者V3资料盘里面的LWIP的裸机例程,结果显示屏、串口和ping都成功,说明网线正常、防火墙关了。因为探索者V3中的LWIP例程是HAL版本的,本人想要使用标准库版本的,所以移植了探索者V2(LAN8720A)中LWIP标准库中的裸机程序。探索者V3的YT8512C和探索者V2的LAN8720A硬件电路图引脚配置是一样的,PHY地址设定都是由硬件电路决定的(0x00)。YT8512C的RMII2的模式中“注: RMII1 模式和 RMII2 模式的选择是由 YT8521C 的 RX_DV(8) 和 RXD3(12) 引脚
决定, 具体如何选择,请读者参考“YT8512C.PDF”手册的 17 到 18 页的内容。
”,其中RX_DV(8)连接了3.3V,RXD3(12)内部是弱下拉,所以工作在RMII2模式下。 V3.png V2.png V31.png V21.png 。将探索者V2的LAN8720A的程序修改了上图所示的地方,下载到探索者V3的YT8512C中,屏显示正常、串口助手也显示正常,但是ping不通。

最佳答案

查看完整内容[请看2#楼]

就是在eth_init函数进去,这里面有eth软复位,自动协商等操作的,接着看一下设置网速和双工的if语句看看,正常是设置100m全双工的,如果debug进入的是100m半双工那就是错了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2023-11-19
在线时间
0 小时
发表于 2023-11-16 09:22:26 来自手机 | 显示全部楼层
就是在eth_init函数进去,这里面有eth软复位,自动协商等操作的,接着看一下设置网速和双工的if语句看看,正常是设置100m全双工的,如果debug进入的是100m半双工那就是错了。
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11405
金钱
11405
注册时间
2014-4-1
在线时间
1282 小时
发表于 2023-11-16 12:12:05 | 显示全部楼层

按说也就是 PHY 硬件地址、BCR、BSR、SR 这些东西,如果操作没有错,就会 ping 得通。

仿真器跟一下,深入到语句中,看看问题出在哪里。

比如,把 PHY_SR 的值取出来,看看到底是多少,然后分析。

另外,不了解你的硬件情况。提示一点:不同的 PHY,要求网络连接器的连接方式是不一样的。
比如有的 PHY 要求变压器中心抽头接地(可能要串电容),有的则是接 3.3v 电源。


回复

使用道具 举报

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
 楼主| 发表于 2023-11-16 13:18:20 | 显示全部楼层
xuande 发表于 2023-11-16 12:12
按说也就是 PHY 硬件地址、BCR、BSR、SR 这些东西,如果操作没有错,就会 ping 得通。

仿真器跟一下, ...

3.png 2.png 使用的原子的板子,这是两者的电路图。引脚的的定义都是一样的。
回复

使用道具 举报

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
 楼主| 发表于 2023-11-16 13:26:50 | 显示全部楼层
xuande 发表于 2023-11-16 12:12
按说也就是 PHY 硬件地址、BCR、BSR、SR 这些东西,如果操作没有错,就会 ping 得通。

仿真器跟一下, ...

硬件电路是原子的板子,应该不是硬件电路的问题
回复

使用道具 举报

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
 楼主| 发表于 2023-11-16 15:09:56 | 显示全部楼层
使用的开发板为探索者V3(YT8512C)。下载配套例程的裸机LWIP(hal版本的)测试成功,通过HAL_ETH_ReadPHYRegister读取BCR(0)为0x1000,BSR(1)为0x796D,特殊功能寄存器(17)为0x7FC0。移植探索者V2(标准库+LAN8720A)的程序到探索者V3(YT8512C),通过标准库的函数ETH_ReadPHYRegister读取BCR(0)为0x1000,BSR(1)为0x796D,特殊功能寄存器(17)为0x7FC0。3个寄存器的值是一样的,但移植的ping不通。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2023-11-19
在线时间
0 小时
发表于 2023-11-19 11:46:12 来自手机 | 显示全部楼层
在你的标准库例程debug一下,进入eth驱动库是否是100M,全双工模式。好像这个操作在标准库与hal顺序反了
回复

使用道具 举报

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
 楼主| 发表于 2023-11-21 08:32:29 | 显示全部楼层
xiaofeng123123 发表于 2023-11-19 12:05
就是在eth_init函数进去,这里面有eth软复位,自动协商等操作的,接着看一下设置网速和双工的if语句看看, ...

1.png 对于我这种刚了解stm32以太网的人来说,十分感谢您的这次解答!已经ping通了,有时间再看原子的资料和视频,慢慢了解。
回复

使用道具 举报

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
 楼主| 发表于 2023-11-21 08:40:02 | 显示全部楼层
xiaofeng123123 发表于 2023-11-19 12:05
就是在eth_init函数进去,这里面有eth软复位,自动协商等操作的,接着看一下设置网速和双工的if语句看看, ...

1.png 对于刚入门的小白来说,十分感谢您的回答,已经ping通了,接下来就慢慢的看原子的视频的资料。再麻烦问一下您,刚一开始计划使用STM32F407+FreeRTOS+LWIP实现SNMP,前几天在贴吧中看到FreeRTOS中自带了FREERTOS-PLUS-TCP(资料比较少吧),请问以那种方式实现比较好?
回复

使用道具 举报

35

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
768
金钱
768
注册时间
2016-3-17
在线时间
178 小时
 楼主| 发表于 2023-11-21 08:42:13 | 显示全部楼层
xiaofeng123123 发表于 2023-11-19 11:46
在你的标准库例程debug一下,进入eth驱动库是否是100M,全双工模式。好像这个操作在标准库与hal顺序反了

1.png 对于刚入门的小白来说,十分感谢您的回答,已经ping通了,接下来就慢慢的看原子的视频的资料。再麻烦问一下您,刚一开始计划使用STM32F407+FreeRTOS+LWIP实现SNMP,前几天在贴吧中看到FreeRTOS中自带了FREERTOS-PLUS-TCP(资料比较少吧),请问以那种方式实现比较好?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 04:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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