参考连接:
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