STM32F4+LAN8720以太网开发实战:从硬件设计到LWIP移植全流程解析
在嵌入式系统开发中,以太网通信已成为设备联网的基础功能需求。对于使用STM32F4系列微控制器的开发者而言,搭配LAN8720 PHY芯片实现以太网功能是一种经济高效的解决方案。本文将带您完整走过从硬件设计到协议栈移植的每一个关键步骤,特别聚焦实际开发中容易遇到的"坑点"和解决方案。
1. 硬件设计与连接要点
1.1 LAN8720基础电路设计
LAN8720作为一款低功耗10/100M以太网PHY芯片,其硬件设计有几个关键点需要特别注意:
-
时钟配置:LAN8720支持REFCLK-In和REFCLK-Out两种模式。在REFCLK-Out模式下,仅需25MHz晶振即可通过内部PLL生成50MHz时钟,显著降低成本。典型连接方式如下:
LAN8720_XTAL1 — 25MHz晶振 — LAN8720_XTAL2 LAN8720_REFCLKO — 50MHz时钟输出 — STM32_REF_CLK -
PHY地址设置:通过RXER/PHYAD0引脚电平设置,默认接地(0x00)。多PHY系统需注意地址分配。
-
复位电路:nRST引脚通常需要10kΩ上拉电阻,开发板设计时常被忽略导致PHY无法正常工作。
1.2 STM32F4与LAN8720接口连接
STM32F4的以太网外设通过RMII接口与PHY连接,相比MII接口可节省9个引脚。关键信号连接如下表所示:
| STM32F4引脚 | LAN8720引脚 | 功能描述 |
|---|---|---|
| ETH_RMII_REF_CLK | REF_CLK | 50MHz参考时钟 |
| ETH_RMII_CRS_DV | CRS_DV | 载波侦听/数据有效 |
| ETH_RMII_RXD0 | RXD0 | 接收数据位0 |
| ETH_RMII_RXD1 | RXD1 | 接收数据位1 |
| ETH_RMII_TXD0 | TXD0 | 发送数据位0 |


2073

被折叠的 条评论
为什么被折叠?



