乐鑫技术交流
直播中

洒下墨色

9年用户 917经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

使用esp32外接lan8720模块做ethernet,编译后报错的原因?

我使用esp32外接lan8720模块做ethernet。使用esp-idf-release-v3.2的Ethernet示例代码进行编译。clock信号使用的是lan8720模块上的50MHz晶振,nINT/REFCLKO引脚与gpio0连接,模式选择为Ethernet PHY Clock Mode (GPIO0 Input) 。编译后报错E (1301) emac: Reset EMAC timeout。
具体log如下:
I (0) cpu_start: App cpu up.I (232) heap_init: Initializing. RAM available for dynamic allocation:I (239) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAMI (245) heap_init: At 3FFB4090 len 0002BF70 (175 KiB): DRAMI (251) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAMI (257) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAMI (264) heap_init: At 40089B48 len 000164B8 (89 KiB): IRAMI (270) cpu_start: Pro cpu start user codeI (288) cpu_start: Starting scheduler on PRO CPU.I (0) cpu_start: Starting scheduler on APP CPU.I (291) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSEE (1301) emac: Reset EMAC Timeout
请教大神这是什么原因导致的,我该怎么做?谢谢!
                                                                                                                                                                    

回帖(1)

刘芳

2024-6-25 17:10:22
以下是一些建议和可能的原因:

1. 检查硬件连接:确保ESP32与LAN8720模块之间的所有连接都正确无误,包括电源、时钟、数据和控制信号。

2. 检查晶振:您提到使用的是LAN8720模块上的50MHz晶振。请确保晶振工作正常,频率准确。

3. 检查GPIO0配置:您提到将nINT/REFCLKO引脚与GPIO0连接,并设置为Ethernet PHY Clock Mode (GPIO0 Input)。请确保GPIO0的配置正确,没有其他干扰。

4. 检查ESP-IDF版本:您使用的是esp-idf-release-v3.2版本。虽然这个版本应该是兼容的,但您可以尝试升级到最新版本的ESP-IDF,看看是否能解决问题。

5. 检查示例代码:请确保您使用的示例代码是针对ESP32和LAN8720模块的,没有其他不兼容的地方。

6. 检查错误日志:错误日志中的 "E (1301) emac: Reset EMAC Timeout" 表示EMAC(以太网媒体访问控制器)在重置过程中超时。这可能是由于硬件问题、固件问题或配置问题导致的。请仔细检查您的硬件和软件设置,确保一切正常。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分