ESP32以太网(ETH)环境和参数配置,基于内部mac和外部PHY(LAN8720A)

这篇具有很好参考价值的文章主要介绍了ESP32以太网(ETH)环境和参数配置,基于内部mac和外部PHY(LAN8720A)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ESP32在网上的资料很多,但问题也各式各样。由于ESP32主要做wifi功能,因此对于以太网的资料也很少。相对应的开发板也很少。

本人使用的是淘宝上购买的雨甄机电的带网口的开发板(如下图)安信可ESP-32S

esp32 网口,ESP32开发,es,ide,vscode

参考资料主要以热心博主《兴趣使然_》的(5条消息) ESP32 单片机学习笔记 - 06 - (以太网)Ethernet转Wifi_esp32 以太网_兴趣使然_的博客-CSDN博客这篇文章。

对于我一个小白来说,先得学习一些理论知识。

首先,以太网是局域网的通讯方式,以太网是具有TCP/IP协议,以太网常用接口有RJ45接口。

然后以太网的组成包括mac和phy芯片和RJ45的座子。然后一个芯片说支不支持网络说的是是否具有内部mac,不支持的就需要外接W5500等模块(W5500就是把mac和phy组合到一个芯片上,然后利用SPI的方式和主板通信)。(mac和phy芯片中间有种通信方式叫RMII或MII,类似于SPI的东西,对于运用来说,两者主要区别就是一个的信号线多,一个的信号线少)。(理论知识太多了,我也看不到太懂,这就是我的理解)。

然后利用VS code 创建一个工程,创建工程之前需要先下载ESP的插件,下载方法网上很多。下载完毕后,打开vscode,此时快捷方式输入ctrl+shift+p,打开工程示例。

esp32 网口,ESP32开发,es,ide,vscode

打开工程示例后,根据左边的目录找到ethernet>>basic

esp32 网口,ESP32开发,es,ide,vscode

选中目标项目后进行创建

esp32 网口,ESP32开发,es,ide,vscode

此时项目创建完成(也可以使用idf工具创建,但代码不好编辑查找)

esp32 网口,ESP32开发,es,ide,vscode

由于vs code编译较慢,因此,采用idf编译,烧录和观察,采用vs cod来编辑代码

此时打开idf工具,找到此项目(由于idf工具没有ls等命令,只有cd,因此需要记得自己项目保存的位置)

esp32 网口,ESP32开发,es,ide,vscode

因为第一次编译较慢,因此我们先编译一下(骗人的,第一次编译慢,之后每次改配置编译都慢),输入编译命令 idf.py build

esp32 网口,ESP32开发,es,ide,vscode

等待编译完成

esp32 网口,ESP32开发,es,ide,vscode

编译完成后,我们先将代码烧录进入开发板,由于我采用的开发板是带烧录功能的,因此直接使用type C线接好就可以烧录。输入烧录命令idf.py -p COM7 flash  (COM7具体情况来输入)

esp32 网口,ESP32开发,es,ide,vscode

烧录完成后,此时可以运行一下观察现象(一般情况下,此时运行没有问题,就算完成了,但没有问题是基本不可能的,接坑才刚刚开始)

输入运行命令:idf.py -p COM7 monitor

此时观察log

我们出现的现象是

esp32 网口,ESP32开发,es,ide,vscode

从打印我们可以看出是内存的问题,此时我们就需要修改配置了,修改方法有两种

方法一:采用idf工具修改,输入配置命令:idf.py menuconfig

输入命令idf.py menuconfig打开配置界面,进入Serial flasher config,按需将Flash size改为自己的大小。比较常用的两个模组:安信可ESP-32S乐鑫ESP32-WROOM-32,flash都是4MB。连续按Esc退出,按y保存。

esp32 网口,ESP32开发,es,ide,vscode

此时再编译烧录,发现代码已经正常运行,不需要再进行修改(这就结束了吗?哦呜阔斯诺特)我们的代码之所以能正常运行,是因为之前已经进行了配置,正常情况下你可能会出现以下问题

  1. 不断重启
  2. 复位超时

esp32 网口,ESP32开发,es,ide,vscode

  1. w550错误

esp32 网口,ESP32开发,es,ide,vscode

这些都是配置的问题,如果配置不对,你是解决不了这些问题的。

接下来就看看我们的配置(idf工具自行配置,作者英文不好,也不擅长使用命令,配置方式还是配置命令到配置界面配置)

按照如下方式进行配置:

esp32 网口,ESP32开发,es,ide,vscode

不配置时钟会导致不断重启,参考(5条消息) 66 ESP32 ethernet\basic实验记录_esp32 以太网_Chasing_Chasing的博客-CSDN博客进行时钟配置

esp32 网口,ESP32开发,es,ide,vscode

配置完毕后再编译代码烧录观察。如果不出意外就会出现正常打印到

Ethernet Started

esp32 网口,ESP32开发,es,ide,vscode

看起来是正常了。但是等待一段时间后,后出现错误打印,也可能是我哪里配置的原因,反正是正常可用了(如下):

esp32 网口,ESP32开发,es,ide,vscode

此时是因为网线没插或者网线坏了等原因,我们只需要接入正常网线即可出现如下打印,此时,网口配置完成(如果还出现错误,则需要自行排查了)

(什么是正常网线呢?一般情况下,未插入网线时,RJ45亮橙(黄)色灯,当网线正常时亮绿灯,可以数据交互时橙(黄)色灯闪烁,所以我们的正常情况为:绿灯亮起,橙(黄)色灯闪烁。

esp32 网口,ESP32开发,es,ide,vscode

如何检验是否正常工作,一般我们采用的都是ping的方式,也就是拿两个网线将电脑和ESP32都接到同一个路由器,电脑上打开命令窗口,然后输入指令ping 192.168.1.1查看连接情况,ping通了就可以证明配置完成且可用。

esp32 网口,ESP32开发,es,ide,vscode

此时,配置完成。文章来源地址https://www.toymoban.com/news/detail-613049.html

到了这里,关于ESP32以太网(ETH)环境和参数配置,基于内部mac和外部PHY(LAN8720A)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32以太网接口的配置和使用方法详解

    STM32 微控制器提供了多种系列和型号,不同型号的芯片可能有不同的以太网接口,包括MAC(媒体访问控制器)和PHY(物理层接口)等组件。 在这里,我们以STM32F4系列为例来详细介绍以太网接口的配置和使用方法。 ✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

    2024年04月26日
    浏览(14)
  • STM32H723配置以太网+Freertos注意事项

    由于STM32H743涨价到300元以上,项目换用了Pin2Pin替换的STM32H723,看上去cpu运行速度快了20%达到550Mhz。 但是内存布局存在很大不一样,而且ST官方代码库升级迭代快,要手动修改地方每个版本不一样,在有H743的经验下,花了2天时间搞好了记录一下。很多信息来源于英文ST支持论

    2023年04月18日
    浏览(14)
  • STM32+RTThread配置以太网无法ping通,无法获取动态ip的问题

    记录一个非常蠢的问题,今天在移植rtthread的以太网驱动的时候出现无法获取动态ip的问题,问题如下: 设置为动态ip时不管是连接路由器还是电脑主机都无法ping通,也无法获取dns地址。 设置为静态ip时无法ping通主机。 使用wireshark抓包,源码debug以及各种方法尝试半天后依然

    2024年02月10日
    浏览(16)
  • 基于FPGA的百兆以太网通信(一)——MDIO配置PHY芯片

     一、以太网简介   之前提了个引子,接下来我会分享一下基于FPGA的百兆以太网通信学习过程。第一部分是对于以太网PHY芯片的配置和状态读取。   一般来说,FPGA以太网通信是需要外接的PHY芯片的,目前的很多FPGA出厂的底板上已经焊好了PHY芯片,所以这一点是比较方便的。

    2024年04月10日
    浏览(21)
  • STM32的以太网外设+PHY(LAN8720)使用详解(5):MAC及DMA配置

    stm32的ETH外设挂载在AHB1总线上,位于RCC_AHB1ENR的bit25-bit27: 相关语句如下: 直接调用ETH_DeInit函数来复位ETH外设 上述语句操作的寄存器如下: 首先设置位25为1复位以太网MAC(复位MAC寄存器到默认值),然后设置为0取消复位。 首先调用ETH_SoftwareReset函数复位MAC的DMA 上述语句操

    2024年02月03日
    浏览(14)
  • 雅特力 AT32F437 配置RT-Thread 以太网(UDP/TCP Server)

    好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录。 雅特力 AT32F437 配置RT-Thread 以太网(UDP/TCP Server) 目录         一、前言         二、ENV配置         三、结语   一、前言 ENV版本:v1.3.5 rt-thread版本:V5+

    2024年02月12日
    浏览(14)
  • 保姆级AT32F437 配置RT-Thread 以太网(UDP/TCP Server)

    好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录。 雅特力 AT32F437 配置RT-Thread 以太网(UDP/TCP Server) 目录         一、前言         二、ENV配置         三、结语   一、前言 ENV版本:v1.3.5 rt-thread版本:V5+

    2024年02月12日
    浏览(17)
  • 手把手教-gd32f450基于rt-thread发布的bsp包手动添加以太网外设

    一、开发环境 rt-thread发布版本4.1.0; bsp包选用的是gd32目录下的gd32450z-eval 开发板gd32f450z系列开发板。 二、手动添加以太网ETH外设 先看下初始结构 可以看到,配置中什么也没有。 手动添加步骤如下: ①复制相应的驱动到gd32_drivers文件夹中,同时修改该文件夹中的SConscript文件

    2024年02月15日
    浏览(15)
  • STM32的以太网外设+PHY(LAN8720)使用详解(6):以太网数据接收及发送

    1.1.1 检查是否接收到一帧完整报文 使用轮询的方式接收以太网数据是一种简单但是效率低下的方法,为了保证及时处理以太网数据我们需要在主循环内高频轮询是否接收到了以太网数据。轮询的函数为ETH_CheckFrameReceived,内容如下: 当以太网帧大于我们设置的DMA描述符buffer大

    2024年01月23日
    浏览(19)
  • STM32以太网通信-LWIP简介

    LwIP全名:Light weight IP,意思是轻量化的TCP/IP协议,是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。 LwIP的设计初衷是:用少量的资源消耗实现一个较为完整的TCP/IP协议栈,其中“完整”主要指的是TCP协议的完整性,实现的重点是在保持TCP协议主要功能

    2024年02月07日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包