APM32F4xx 系列内置以太网 MAC 控制器,搭配 LAN8720A PHY 芯片与 RMII 接口,可轻松实现 10/100M 网络通信。AN1088 应用笔记完整讲解ETH 外设驱动、LwIP 协议栈移植、网卡接口对接、PING 测试全套流程,按步骤操作即可快速实现嵌入式网络功能,大幅降低网络开发门槛。
资料获取:AN1088_APM32F4xx系列ETH移植LWIP应用笔记
1. 方案整体介绍
APM32F4xx + LAN8720A + LwIP 轻量级网络方案特点:
- 接口:RMII(仅 7 根信号线,省 IO、省空间)
- PHY:LAN8720A(25MHz 晶振,内部 PLL 输出 50MHz RMII 时钟)
- 协议栈:LwIP 1.4.1(轻量 TCP/IP,裸机直接跑)
- 支持:ARP、ICMP、UDP、TCP、DHCP、DNS
- 实测:PING 连通、TCP 透传、HTTP 服务器均可稳定实现
2. 硬件设计要点(直接照抄)
2.1 RMII 接口引脚(APM32F407)
- PA1:RMII_REF_CLK(50MHz 时钟)
- PA2:ETH_MDIO(PHY 管理数据)
- PC1:ETH_MDC(PHY 管理时钟)
- PC4:RMII_RXD0
- PC5:RMII_RXDV
- PG11:RMII_TX_EN
- PG13:RMII_TXD0
- PG14:RMII_TXD1
- PD11:ETH_RESET(控制 PHY 复位)
2.2 PHY 关键电路
3. LwIP 移植 7 步标准流程(AN1088 官方步骤)
3.1 添加 ETH 驱动
加入官方驱动文件:
- apm32f4xx_eth.c / .h
- board_LAN8720A.c/.h(PHY 初始化)
3.2 加入 LwIP 源码
添加以下核心目录:
- src/api
- src/core
- src/netif
- src/ipv4
3.3 添加移植头文件
复制 arch 文件夹,包含:
- cc.h
- cpu.h
- sys_arch.h
3.4 添加协议栈配置文件
加入 lwipopts.h,配置:
- 内存大小
- 有无 OS
- TCP/UDP 使能
- 缓冲区长度
3.5 修改网卡接口 ethernetif.c
实现三个底层函数:
- low_level_init:初始化 MAC+DMA+PHY
- low_level_input:从 ETH 读取数据包
- low_level_output:把数据包发给 ETH
3.6 初始化 LwIP 协议栈
mem_init(); // 初始化内存堆
memp_init(); // 初始化内存池
IP4_ADDR(&ipaddr, 192,168,73,22);
IP4_ADDR(&netmask,255,255,255,0);
IP4_ADDR(&gw,192,168,73,1);
netif_add(&UserNetif, &ipaddr,&netmask,&gw,NULL,ethernetif_init,ethernet_input);
netif_set_default(&UserNetif);
netif_set_up(&UserNetif);
3.7 提供系统时基
- SysTick 1ms 中断
- 提供
sys_now()获取系统时钟 - 主循环调用
sys_check_timeouts()
4. 主循环处理(必须跑)
while(1)
{
// 检查是否收到网包
if(ETH_ReadRxPacketSize() > 0)
{
ethernetif_input(&UserNetif);
}
// LwIP超时处理
sys_check_timeouts();
}
5. 测试:PING 连通
设置电脑同网段 IP:
- 电脑 IP:192.168.73.122
- 开发板 IP:192.168.73.22
- 网关:192.168.73.1
- 掩码:255.255.255.0
CMD 输入:
ping 192.168.73.22
出现 “丢失 = 0” 即移植成功。
6. 常见问题速解(AN1088 重点)
- PHY 无法初始化:检查复位时序、MDIO/MDC 接线
- 收不到包:RMII 时钟是否 50MHz、REF_CLK 是否接对
- PING 不通:IP 不在同一网段、ARP 未处理
- 运行死机:内存配置不足、缓冲区太小
- 网口不稳定:增加 RMII 走线差分处理、滤波电容
AN1088 是 APM32F4xx 以太网最实用的LwIP 移植官方手册,提供从硬件、驱动、协议栈到测试的完整流程。移植后可直接扩展TCP 客户端 / 服务器、UDP、HTTP、Modbus TCP等功能,是工业控制、网关、数据采集等网络项目的最优基础方案。
阅读全文
279