caiheng19910621 发表于 2021-6-2 17:25:27

RTX+RL-TCPnet移植流程分享(STM32F429ZGT6+KSZ8041)

移植说明:
      这里用的硬件平台MCU为STM32F429ZGT6,PHY为KSZ8041,接口为RMII,PHY部分的原理图如下:

1、准备工程模板,可参考如下网址,任选一个模板:
【新提醒】【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至50章(2021-05-24) - STM32F429 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)
我这里选择:

2、打开工程后,首先更改器件型号,模板工程采用的是STM32F429BIT6,这里替换为STM32F429ZGT6,如下:

查看是否更改成功:

3、修改RTE_Device.h文件
由于更换了器件型号,故需要重新配置下RTE_Device.h文件(主要是PHY接口IO),相关引脚如下:




TXD0---------------PB12
TXD1---------------PB13
TX_EN--------------PB11
RXD0---------------PC4
RXD1---------------PC5
REF_CLK------------PA1
CRS_DV-------------PA7
MDC----------------PC1
MDIO---------------PA2
---------------------------------------------------------------------------
INT------------------PA6
RX_EN---------------PB10
故RTE_Device.h文件具体配置如下:

4、系统时钟配置
1)晶振设置,我这里的硬件平台系统时钟源为HSE,HSE为8MHz,故需要修改stm32f4xx_hal_conf.h文件(注意:有两个该文件,都需要修改)中HSE_VALUE宏定义:

2)系统时钟配置
适配自己移植的硬件平台,需要修改SystemClock_Config():修改PLLM、PLLN、PLLP、PLLQ
由于我移植的硬件平台采用HSE(8MHz晶振)作为输入时钟,这里将系统时钟配置为168MHz,配置结果如下:PLLM=8、PLLN=336、PLLP=2、PLLQ=4(具体含义查看参考手册)

5、修改其他硬件配置,适用于自己移植的硬件平台。这里选择的模板需要修改如下配置:

1)LED修改
根据自己硬件修改LED配置,由于V6模板中没有直接使用MCU的IO来控制LED,所以我将V5模板中的LED驱动文件复制过来替换了(也可自行编写LED驱动),定义内容如下:

我这里只有LED0、1、2、3,分别为PE5、PE4、PE3、PE2


最终bsp_led.c文件修改部分如下(根据自己的硬件自行配置,不得不说,硬汉的这个文件做的太棒了,移植好方便!):

2)其他修改
因为我的硬件上没有按键和串口,所以这一部分我直接屏蔽了,大家可以根据自己的硬件平台自行修改,结果如下:

注意,没有使用模板中的按键驱动,需要屏蔽如下函数

*特别说明:由于我的硬件没有串口,所以我屏蔽了工程中所有printf函数,这一点需要注意!
6、根据自己的硬件修改PHY驱动(相关驱动在网上寻找资源,参照DM9161修改即可)
我这里是用的是KSZ8041,将KSZ8041驱动替换掉LAN8720即可,具体如下:

注意,驱动中PHY地址和时钟注意与自己的硬件匹配。
7、编译验证即可(如果采用直连,注意按照硬汉的步骤操作)

(工程后面完善好附上,加密了)最后,祝大家顺利~~~!



eric2013 发表于 2021-6-3 08:31:53

谢谢分享。

alex1938 发表于 2021-7-30 16:49:17

(工程后面完善好附上,加密了)最后,祝大家顺利~~~!

zx5290 发表于 2022-3-11 11:27:20

谢谢分享。

eric2013 发表于 2022-3-11 17:01:07

把这个帖子整理了下,方便快速浏览。

brightzeng 发表于 2022-7-4 08:55:30

感谢分享{:8:}

brightzeng 发表于 2022-7-4 08:56:30

感谢分享{:8:}

xzp114 发表于 2024-1-29 10:28:32

很好,可以学习一下,感谢
页: [1]
查看完整版本: RTX+RL-TCPnet移植流程分享(STM32F429ZGT6+KSZ8041)