ESP 以太网应用资料整理

本文主要介绍了使用ESP32和ESP32-S2进行以太网应用开发时遇到的问题及解决方法。内容包括ESP32-Ethernet-Kit开发板的PHY芯片配置、ESP32-S2的SPI以太网驱动、以及针对PHY芯片时钟问题的解决方案。此外,还提到了以太网初始化失败的故障排查和ESP32-S2的Wi-FiSTA与以太网共存的可能性。
摘要由CSDN通过智能技术生成
  • 可选用 ESP32-Ethernet-Kit 开发板进行测试。

  • ESP32-Ethernet-Kit 开发板默认使用的 PHY 芯片是 IP101 ,可参考 ESP32-Ethernet-Kit V1.2 入门指南 说明。

  • ESP-IDF 目前支持的 EMAC PHY 芯片有 5 种: LAN8720, IP101, DP83848 、KSZ8041 和 RTL8201 ,可参考 例程 esp-idf/examples/ethernet ,在 menuconfig 配置中可配置为其他型号,如下:

  • EMAC PHY

    menuconfig -> Example Configuration -> Ethernet PHY Device
    在这里插入图片描述

  • SPI PHY :

menuconfig→ Example Ethernet Configuration → SPI Ethernet → Ethernet SPI
在这里插入图片描述

其中 phy_w5500.c 、phy_dm9051.c 的驱动库是独立的 SPI PHY 模块,不是配合 EMAC PHY 使用的。但理论上只要以太网驱动初始化正确,是可以使用 esp-idf/examples/ethernet/eth2ap 例程来测试,但我们不建议用 SPI 以太网来运行这个例程。

常见问题


  • 用 ESP32 的以太网接口,加 PHY 芯片 DM9162EP 出现板子上电时偶尔会进入下载模式,由于 GPIO0 接了 PHY 芯片的 CLK 引脚,而且这个 RMII 时钟不能修改为其他引脚。 请问有什么方法可以避免这个问题吗?

在这里插入图片描述
在这里插入图片描述

1. 对于 PHY 芯片时钟的启动,请阅读 “ESP32-Ethernet-Kit V1.2 入门指南” 说明。
在这里插入图片描述
2. 作为时钟输入的确只有 GPIO0,如果是时钟输出可以有 IO0 、IO16、 IO17。我们推荐使用时钟输入的方案,可以自行评估使用时钟输出的方案,但时钟输出方案针对某些 PHY 芯片型号可能会出现掉线的问题,一般不推荐。以太网时钟输入和时钟输出方案的软件配置说明参见 此链接。 以太网时钟可以由外部晶振或 PHY 产生。当时钟由 ESP32 GPIO16/17输出时,使用 APLL_CLK 作为时钟源。需要记住的是,不要与具有相同时钟源的 I2S 冲突。

3. 针对当前时钟输入的方案出现的偶尔进入下载模式的问题 ,解决方案如下:

【说明】
保证 ESP32 芯片正常启动后再使能 PHY 芯片,但这里有个问题是,有的 PHY 芯片有使能管脚,可以保证 Disable 之后不输出时钟;有的 PHY 芯片使能管脚无法完全关闭输出,可能要靠控制电源或者直接控制 PHY 连接的晶振来断掉时钟输出。为了保证 ESP32 启动之前 PHY 不会输出时钟,一般有下面两种方法:

  • 用一个 IO 控制 PHY 的使能。
  • 如果 PHY 的使能无法完全关闭时钟输出,那么需要采用有源晶振,用 IO 控制有源晶振。

Q: 使用 ESP32 设计以太网应用,出现如下报错,是什么原因?

E (5556) emac: Timed out waiting for PHY rdgister 0x2 to have value 0x0022 (mask 0xffff). Current value 0xffff
E (6556) emac: Timed out waiting for PHY register 0x3 to have value 0x1430 (mask 0xfff0). Current value 0xffff  
  • 出现此问题一般是硬件电路有问题,RMII 时钟没有正常供给 PHY 芯片。遇到读 PHY 寄存器失败,大部分情况都是硬件电路的问题。
  • 或者软件初始化的问题,但跟硬件设计有关系,因为初始化也是要根据硬件电路来的。

Q: 如何使用 ESP32-S2 来做 以太网应用?

  • ESP32-S2 作以太网的话,只能选择通过 SPI 来驱动 EMAC PHY 的模块,可选择 W5500 或 DM9051 的模块 (SPI PHY 模块是通过 SPI 驱动 EMAC+PHY 芯片)。硬件接线可以参考例程下的 Readme 说明。

  • 对应的 SPI + MAC 芯片的驱动库文件可参见

    其中 phy_w5500.c 、phy_dm9051.c 的驱动库是独立的 SPI PHY 模块,不是配合 EMAC PHY 使用的。但理论上只要以太网驱动初始化正确,是可以使用 esp-idf/examples/ethernet/eth2ap 例程来测试,但我们不建议用 SPI 以太网来运行这个例程。


Q: ESP32-S2 的 Wi-Fi STA 和以太网能否共存?

  • 可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值