49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# 添加LAN8720以太网驱动实现计划
|
||
|
||
## 1. 项目分析
|
||
- 项目使用模块化BSP结构和HAL抽象层
|
||
- 已有的BSP配置中包含以太网功能标志(BSP_BOARD_FEATURE_ETH)
|
||
- STM32F4xx_HAL_Driver中已包含以太网驱动源码
|
||
- 需要添加LAN8720 PHY芯片的支持
|
||
|
||
## 2. 实现步骤
|
||
|
||
### 2.1 HAL层扩展
|
||
- 在`HAL/Inc`目录添加`hal_eth.h`头文件,定义以太网接口
|
||
- 在`HAL/Src`目录添加`hal_eth.c`实现文件
|
||
- 在`HAL/Inc/arch/stm32f4`目录添加`hal_stm32f4_eth.h`
|
||
- 在`HAL/Src/arch/stm32f4`目录添加`hal_stm32f4_eth.c`实现
|
||
|
||
### 2.2 BSP层扩展
|
||
- 在`bsp_board.h`中添加以太网配置结构
|
||
- 在`bsp_board.h`的初始化函数结构中添加以太网初始化函数指针
|
||
- 在`stm32f407vet6_board.c`中添加以太网硬件配置
|
||
|
||
### 2.3 LAN8720驱动实现
|
||
- 在`BSP/Inc`目录添加`bsp_eth.h`头文件
|
||
- 在`BSP/Src`目录添加`bsp_eth.c`实现文件
|
||
- 实现LAN8720 PHY芯片的初始化和配置
|
||
- 实现以太网接口的基本操作函数
|
||
|
||
### 2.4 系统配置修改
|
||
- 修改`stm32f4xx_hal_conf.h`,启用以太网模块
|
||
- 修改系统时钟配置,确保以太网时钟正确设置
|
||
- 在`bsp_init.c`中添加以太网初始化调用
|
||
|
||
### 2.5 主程序集成
|
||
- 在`main.c`中添加以太网初始化代码
|
||
- 实现基本的以太网功能测试(如MAC地址获取、链路状态检测)
|
||
- 添加以太网相关的日志输出
|
||
|
||
## 3. 技术要点
|
||
- LAN8720 PHY芯片使用RMII接口
|
||
- 需要正确配置以太网相关的GPIO引脚
|
||
- 实现PHY芯片的复位和初始化流程
|
||
- 配置以太网MAC控制器和PHY芯片的通信
|
||
- 集成到现有的BSP和HAL架构中
|
||
|
||
## 4. 预期成果
|
||
- 成功初始化LAN8720以太网模块
|
||
- 能够检测以太网链路状态
|
||
- 能够获取和设置MAC地址
|
||
- 为后续的TCP/IP协议栈集成做好准备 |