ESP32——基于LAN8720A的以太网通讯测试

文章描述了一个基于ESP32-WROVER-IE-N8R8模块的Ethernet测试,由于GPIO17不可用,不能由ESP32提供RMII时钟到PHY。问题在于LAN8720A的时钟影响模块启动,需独立供电并先启动MT9700。调试过程中遇到电源问题导致初始化失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考连接:

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit.html#rmii-clock-sourced-externally-by-phyhttps://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit.html#rmii-clock-sourced-externally-by-phy

一、简介

这是一个官方示例“examples\ethernet\basic”的测试记录。

因未来的项目要求选用了ESP32-WROVER-IE-N8R8模块,这就导致了GPIO17引脚无法使用进而无法采用常用的由ESP32提供时钟到PHY芯片的方式,后面还将提到这一点。

二、电路图和程序

这个图是最终版,第一版没有MT9700相关电路。

引脚和PHY_ADDR地址定义

#define CONFIG_EXAMPLE_ETH_MDC_GPIO 23
#define CONFIG_EXAMPLE_ETH_MDIO_GPIO 18
#define CONFIG_EXAMPLE_ETH_PHY_RST_GPIO 15
#define CONFIG_EXAMPLE_ETH_PHY_ADDR 0

配置项

三、调试

    示例程序可以运行,但首次上电不能正常启动,需要按复位按键(一般还需要按多次才能成功一次)才行。本文档开头部分提供的官方链接对此原因有详细说明,简单说就是如不分开供电,LAN8720A会先输出50MHZ时钟到ESP32模块的GPIO0口,电平不能稳定在高电平,造成模块不能启动运行。修改电路图后和程序后(上电先启动MT9700)再次测试,正常。

注:测试中遇到下面问题,原因时LAN8720A的电源地位于芯片底部,焊接时忘记了。

E (514) lan8720: lan8720_pwrctl(359): power up failed
E (514) lan8720: lan8720_init(421): power control failed
E (514) esp_eth: esp_eth_driver_install(205): init phy failed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值