ESP32驱动LAN8720网卡

简介

ESP32 使用内置的 MAC 驱动外置的 PHY(LAN8720),软件和版本为 ESP-IDF-V4.3

连接ESP32和LAN8720

  • 接线示意图如下图所示,其中GPIO17可不接

ESP32驱动LAN8720网卡_第1张图片

  • 接线线序

以下引脚不能更改线序:

GPIO RMII Signal ESP32 EMAC Function
0 REF_CLK EMAC_TX_CLK
21 TX_EN EMAC_TX_EN
19 TX0 EMAC_TXD0
22 TX1 EMAC_TXD1
25 RX0 EMAC_RXD0
26 RX1 EMAC_RXD1
27 CRS_DV EMAC_RX_DRV

以下2个引脚可以根据自己的硬件,任意选择,默认配置如下:

Default Example GPIO RMII Signal
23 MDC
18 MDIO

TIPS: 接线测试的线序要正确,尽量使用质量好的杜邦线保证通信质量

代码改造及测试

本例程是在官方提供的 IDF\examples\ethernet\basic 的例程上修改而来

  1. 修改工程配置,例程配置使用内置 MAC 控制 LAN8720,并配置相关引脚

ESP32驱动LAN8720网卡_第2张图片

  1. 修改工程配置,配置使能 ESP32 内置MAC,并失能 SPI to Ethernet Module
    ESP32驱动LAN8720网卡_第3张图片
    ESP32驱动LAN8720网卡_第4张图片

**TIPS:**RMII的时钟信号是由外部的有源晶振提供的;如果使用 GPIO0 软件提供时钟信号可能会导致 MAC 侧与 PHY 侧的相位偏差进而产生无法获取IP地址的问题,建议使用外部晶振提供 RMII 的时钟

  1. 更多配置及详细描述请查看《ESPRESS-API Reference-Networking APIS-Ethernet》
  2. 配置完成后保存,点击 ESP-IDF 扩展的编译、烧录、检测,使用网线将 LAN8720 连接到路由器,等待烧录成功后,检测窗口显示的信息,可以查好看到设备能够通过 DHCP 获取到路由器分配的 IP

ESP32驱动LAN8720网卡_第5张图片


如果我的文章对您有用,欢迎关注点赞哦!

你可能感兴趣的:(ESP32,嵌入式,物联网)