66 ESP32 ethernet\basic实验记录

本文记录了一位开发者在使用ESP32以太网开发板时遇到的问题及解决过程。在尝试运行esp-idf的ethernet_basicdemo时,设备上电后不断重启。通过查阅资料和修改配置,发现LAN8720A需要由ESP32提供50MHz时钟,配置后成功运行并获取到了IP地址。

1.引言

        最近买了一块esp32以太网开发板(如下图示),想测试esp32以太网功能,但新人上手肯定会遇到一些问题,特此记录。

2.实验 

        我的编译环境是:idf,而非arduino。使用的SDK是4.4版本。

        选择的demo是esp-idf-v4.4\examples\ethernet\basic。遇到的问题是,编译配置esp32的ethernet\basic demo后,烧录至设备,esp32上电不断重启,打印如下log。

I (254) cpu_start: Pro cpu up.
I (255) cpu_start: Starting app cpu, entry point is 0x400810b4
I (241) cpu_start: App cpu up.
I (269) cpu_start: Pro cpu start user code
I (269) cpu_start: cpu freq: 160000000
I (269) cpu_start: Application information:
I (273) cpu_start: Project name:     ethernet_basic
I (279) cpu_start: App version:      v4.4-dirty
I (284) cpu_start: Compile time:     Apr  7 2022
### 配置 ESP32 Ethernet 基础示例使用 menuconfig 以启用外部 25MHz 晶振 在 ESP-IDF 开发环境中,配置 ESP32 以太网接口以使用外部 25MHz 晶振,需要通过 `menuconfig` 工具进行相关设置。具体步骤如下: - 在项目目录下运行 `idf.py menuconfig`,进入配置界面。 - 导航至 `Component config` -> `Ethernet` 选项。 - 在该菜单下找到 `Ethernet clock mode` 选项,并将其设置为 `External clock input`,表示使用外部时钟源作为以太网控制器的时钟输入[^1]。 - 保存配置并退出。 ### 配置示例代码代码中,需要明确设置以太网驱动使用外部时钟源。以下是一个基础的 ESP32 以太网初始化代码示例: ```c #include "esp_eth.h" #include "esp_event.h" #include "esp_log.h" #include "driver/gpio.h" static const char *TAG = "ethernet_config"; void eth_init(void) { eth_config_t config = ETH_DEFAULT_CONFIG(); config.clock_mode = ETH_CLOCK_EXT_IN; // 设置为外部时钟输入 esp_eth_handle_t eth_handle; ESP_ERROR_CHECK(esp_eth_driver_install(&config, &eth_handle)); ESP_ERROR_CHECK(esp_eth_start(eth_handle)); ESP_LOGI(TAG, "以太网驱动已启动,使用外部25MHz晶振"); } void app_main(void) { ESP_ERROR_CHECK(esp_event_loop_create_default()); eth_init(); } ``` ### 硬件连接要求 确保外部 25MHz 晶振正确连接至以太网 PHY 芯片的时钟输入引脚。通常,PHY 芯片如 LAN8720 的 XTAL 引脚需要连接至 25MHz 晶振。同时,ESP32以太网接口引脚(如 REF_CLK、MDIO、MDC 等)应与 PHY 芯片对应连接[^1]。 ### 注意事项 - **晶振稳定性**:选择高质量、低抖动的 25MHz 晶振,以确保以太网通信的稳定性。 - **电源管理**:确保以太网模块和晶振的供电稳定,避免因电压波动导致初始化失败。 - **驱动兼容性**:确认使用的 ESP-IDF 版本支持以太网功能,并且已正确配置 PHY 芯片驱动。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值