硬汉嵌入式论坛

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

[有问必答] STM32F407 RL-TCPnet(RTX)移植问题

[复制链接]

4

主题

11

回帖

28

积分

新手上路

积分
28
发表于 2021-5-29 16:54:56 | 显示全部楼层 |阅读模式
移植STM32F407 RL-TCPnet(RTX)到STM32F407(LAN8720)平台上,网口灯都未闪烁。debug发现netETH_Notify()函数停留在netETH_LinkDown状态。PowerControl()中PHY_ID1读出来为0xFFFF,不知道哪里移植有问题。移植步骤:
1、下载“V5-1000_RL-TCPnet V7.X实验_工程移植模板(RTX5)”程序作为模板;
2、修改系统时钟、KEY、LED驱动。
3、用硬汉分享个修正版RL-TCPnet V7.X和LwIP的LAN8720驱动,符合CMSIS-Driver驱动规范,适用于所有STM32系列(V1.0) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)提供的LAN8720驱动替换DM9161驱动。
4、检查PHY地址,编译测试。
结果:网口灯都未闪烁,网线插上显示未接电缆。LED和KEY可正常工作。

请问是哪里没有配置或者漏掉了吗?硬件是OK的,用其他程序测试可以正常通讯。

ETH_INIT.c文件中有:
/*
   移植注意事项:
   除了本文件中的配置,还有三个地方要根据自己制作的硬件做适配
   1、bsp.h文件中,函数MPU_Config做的以太网收发描述符地址空间的MPU配置。
   2、stm32h7xx_hal_conf.h文件做的发送ETH_TX_DESC_CNT和接收ETH_RX_DESC_CNT描述符个数配置。
   3、根据使用的以太网PHY芯片,选择合适的PHY驱动。
*/

但实际文件中1和2没有找到描述需要修改的内容,这个文件是否不对?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2021-5-29 19:10:41 | 显示全部楼层

回帖奖励 +1 个金币

你是F407要看F407的移植教程,这个帖子里面的V5就是,F407的RTE是经典配置方式,要简单很多

http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243

回复

使用道具 举报

4

主题

11

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2021-5-29 19:39:16 | 显示全部楼层
eric2013 发表于 2021-5-29 19:10
你是F407要看F407的移植教程,这个帖子里面的V5就是,F407的RTE是经典配置方式,要简单很多

http://www. ...

是参照帖子中V5的例程进行修改的,但是PowerControl()函数中读取PHY的ID为0xFFFF,这应该是有问题的吧?g_ucEthLinkStatus一直都为1!
回复

使用道具 举报

0

主题

244

回帖

244

积分

高级会员

积分
244
发表于 2021-5-30 12:05:03 | 显示全部楼层
PHY的地址配置对不对。
回复

使用道具 举报

0

主题

244

回帖

244

积分

高级会员

积分
244
发表于 2021-5-30 12:06:18 | 显示全部楼层
PHY的地址配置对不对。
不同PHY芯片的MDIO地址是不同的,还会有不同的引脚来决定,结合硬件看看,然后修改文件中对应的地址
回复

使用道具 举报

4

主题

11

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2021-5-30 22:03:45 | 显示全部楼层
regbbs 发表于 2021-5-30 12:06
PHY的地址配置对不对。
不同PHY芯片的MDIO地址是不同的,还会有不同的引脚来决定,结合硬件看看,然后修改 ...

谢谢回答。结合硬件对比了,PHY地址是对的。我在硬汉V5版本的RL-TCPnet模板上修改的,我怀疑是不是PHY的IO没初始化好,复位IO没有配置(没找到),不知道是不是会有问题。下载程序后网口灯都不闪烁。用Cyclone尝试移植了下,网口灯闪烁了,但是没有ping通。网络这一块不太熟,真是头大。。。
回复

使用道具 举报

4

主题

11

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2021-6-2 09:54:51 | 显示全部楼层
caiheng19910621 发表于 2021-5-30 22:03
谢谢回答。结合硬件对比了,PHY地址是对的。我在硬汉V5版本的RL-TCPnet模板上修改的,我怀疑是不是PHY的I ...

问题已解决,也学习下硬汉大哥钻研分享的精神:用的正点原子的STM32F407做的实验,移植过来之后PHY始终读不到寄存器数据,网口灯也不闪的原因:确实是复位IO造成的,在执行netInitialize()之前,对开发板上的PHY进行一次硬件复位即可。在正点原子的STM32F407上也尝试移植了Cyclone TCP的demo,也发现两个坑:一个是注意手动修改RMII/MII接口引脚,这个不是在RTE_Device.h中配置的,另外一个移植后发现一直提示分配内存错误,找了好久发现需要修改启动文件如:startup_stm32f407xx.s中的堆栈大小,RTX对这一块是有要求的,硬汉大哥有个帖子中也有提到,分配小了就算能ping通,建立连接后也会失败然后不能ping通,稍微分配大点试验下(我分配了0x2000)。后面有个时间写个总结帖出来分享下经验,公司电脑是加密的也传不了模板,后面在家里电脑一起弄吧。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2021-6-2 10:32:19 | 显示全部楼层
caiheng19910621 发表于 2021-6-2 09:54
问题已解决,也学习下硬汉大哥钻研分享的精神:用的正点原子的STM32F407做的实验,移植过来之后PHY始终读 ...

解决了就好。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 06:49 , Processed in 0.327140 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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