0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32 添加SPI以太网口芯片DM9051ANX通讯开发指导以及ESP IDF V.5.4介绍(精选笔记)[手把手教程,图多消化好]

jf_36651975 来源:jf_36651975 作者:jf_36651975 2025-09-22 11:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

最近公司有新项目会用到 ESP32系列芯片,需要添加有线以太网口,我对这一块不熟悉,可以说是新手小白,那该如何准备开发工作及快速入门呢?让我以这份纪录来回顾当初新项目ESP32硬件开发、软件环境ESP-IDF V5.4以及运行有线以太网DM9051ANX与通信演示。

一、概述

本篇文章旨在介绍ESP32芯片,SPI有线以太网芯片DM9051ANX以及ESP IDF等。

ESP32 C系列具有高性能、高集成、低功耗和多种接口的特点,可为独立系统或从设备提供 Wi-Fi应用功能。

而SPI以太网芯片DM9051ANX体积小,QFN24管脚包装,功耗更低以及周边RBOM成本更省等有优点,将ESP32 C与DM9051ANX作为简易型网关方案,是一个性价比高,並符合行业实际应用的方案捆绑。

此篇帖子以ESP IDF最新版V5.4来进行开发与调适。

二、ESP32 C3模块介绍&产品定位

在这里说下为什么选择ESP32 C3这样的方案来做行业网关,当初选型ESP32 S3与C3选型时,两者同样支持IEEE 802.11b/g/n 2.4G以及Bluetooth 5 & Bluetooth mesh,索性自己就做了规格比较:

ESP32 C3 ESP32 S3
CPU 单核RISC-V 双核CPU SoC
主频 160MHz 240MHz
SRAM 400KB 512KB
GPIO 22根 45根
SPI 3个 4个
UART 2个 3个
LCD接口 1个
DVP摄像头接口 1个

除了两者规格比较之外,在实际应用上,同學稍微作下功课,就可以知道C3普遍是做无线应用,如果遇到需要有線以太网口的场景,我们其实可以利用SPI、UART等GPIO较少的硬件街口,作為对外通信,在这里我选用在市场上广泛被采用且仅4条线通信的SPI接口與以太网进行通信。这样一来,C3可作无线网关帶网口应用,主要任务是做无线與有線數據之間的传输,很适合各行业应用;但是,如果项目要求C3不仅要做传输数据,还要处理其他应用功能,這種多任务处理就不是C3擅长了。而S3就不同了,S3在作数据传输时,同时可以处理外设功能,可以有一定程度的响应速度,而且AI应用开发资源丰富。做一个小总结,我们可以这样理解,要多任务任务处理、AI应用功能等,S3比较合适,价格也稍贵些,毕竟规格摆在那儿;如果要做一般应用且单一任务,例如:无线网关带有线网口应用,C3就有性价比了。

三、DM9051ANX介绍

DM9051ANX是一个SPI接口以太网芯片,24管脚OFN包装,自带MAC传输层与10/100兆PHY,以SPI接口与主控进行通信,相较于老款,DM9051ANX体积更小,功耗更低、能节省外部周围零件,降低RBOM成本,每个芯片内置独立MAC地址,并有1.8V, 2.5V, 3.3V I/O电压可供选择,适用于各种MCU与CPU等各式主控的SPI接口以太网通信需求。

四、开发环境

4.1准备工作

1个ESP32开发板:我手上的开发板是合宙ESP32-C3-xxxx

1个DM9051ANX开发。

1条USB数据线:Type A转 Micro-B

1台电脑:Windows微软系统

wKgZPGjQwBGAcGklAAHjblUhZyY091.png

市面上有开发板是 USB Type C接口,请选择合适USB接口的数据线来连接。

4.2.开发版硬件接法

1.)在模块的硬件部分,依照合宙ESP32 C3开发版的Pinout接口,连接DM9051ANX开发版對應的SPI接口,简单整理下兩者的硬件接法。

引脚名 ESP32 C3
开发版
DM9051ANX
开发板
Pinout 说明 Pinout 说明
3.3v 18 3.3V 11 PWR_IN
gnd 17 GND 9 D_GND
SPI_CK 19 GPIO2 7 SPI_CLK
SPI_MOSI 20 GPIO3 3 SPI_MOSI
SPI_MISO 21 GPIO10 5 SPI_MISO
INT 22 GPIO6 2 SPI_INT
SPI_CS 23 GPIO7 1 SPI_SS

wKgZO2jQwCSAUG7YAACaXAqQ4Wo266.png

2.)合宙ESP32 C3开发版Pin Out示意图

wKgZPGjQwCeAGEl7AAMiyoHVvn0901.png

合宙ESP32-C3开发版的硬件设计文档,请参考连结网址:https://wiki.luatos.com/chips/esp32c3/hardware.html

3.)DM9051ANX开发版SPI接口Pin Out表

wKgZPGfhCJWAeBW6AAEUh1N1k28770.png

wKgZO2jQwNqAKmFwAAKv0AxZ1W8019.pngDM9051ANX开发版

五、ESP-IDF安装,配置

5.1使用版本( ESP-IDF v5.4 )

ESP-IDF是ESP32全系列芯片的官方开发工具,非常好用,我这里使用的是:ESP-IDF最新稳定版本 V5.4,相关版本介绍的文档,请参考下面链结。

https://docs.espressif.com/projects/esp-idf/zh_CN/v5.3.1/esp32/versions.html

5.2 IDF软件安装流程说明(步骤1~6)

*步骤1:我们可以到乐鑫 IoT开发框架 (esp-idf)的文档中心,去下载ESP-IDF。

https://docs.espressif.com/projects/esp-idf/zh_CN/stable/

wKgZO2jQwVuAFPc7AAG0fDsR0As357.pngwKgZO2jQwZeAVVcQAAIwn-EIlLQ859.png

*步骤2:建议同学们选择V 5.4离线下载版本,避免出现网络传输的问题。

wKgZO2fhCSmAAct5AAD-SGtJfmw448.png

点击离线下载版本,依照当下条件选择合适自己的语言版本。

wKgZO2fhCUKAMdAxAAGLty9U9Xc957.pngwKgZO2fhCVmANeswAAKZ-J8srXw181.png

*步骤3:建议要点选“应用修复”避免接下来运行时,出现错误。

wKgZPGfhCW-AUEmmAAHxJ8QOeUU215.pngwKgZO2fhCYiAUxa2AAM4tiA61Jo311.pngwKgZPGfhCZSAZnzzAALXvnsZTtg968.pngwKgZPGjQwmaADvUgAAKlDBk_Mv4147.png

*步骤4:在安装中途,ESP IDF会出现一个窗口:是否安装USB转 UART芯片驱动?

wKgZPGfhCcaAdOGaAAEmiMdOKB8423.pngwKgZO2fhCdKAdK3PAAHTBaLcZkM781.png

*步骤5:最后,终于完成安装了!慢点,因为我们调试项目时,还需要用串口,可以找自已习惯的串口软件,微软也有提供免费的工具。

wKgZO2jQwt2AEWQqAAD9DiBk0ZI889.png

*步骤6:接下来,我们来进入”串口调试助手”,硬件接口是用到UART接口,而波特率设置为 115200,并开启左下角的 “终端模式”,方便我们输入指令

wKgZO2jQw5CACswIAAELrKCvk_E957.png

六、编译以太网DM9051ANX例程

ESP-IDF开发工具提供一系列灵活好用的 API,为外部以太网通信以及外部 SPI有线以太网SPI-Ethernet通信模块提供良好支持,更多说明请参考下列链结:

https://docs.espressif.com/projects/esp-idf/zh_CN/v5.4/esp32/api-reference/network/esp_eth.html

6.1烧录例程 (步骤1~4)

从 ESP-IDF中,在 examples目录下的 get-started/hello_world工程开始。

我们点击桌面上的ESP-IDF 5.4 CMD或 ESP-IDF 5.4 PowerShell,这儿使用的是后者,相关的工具连接都配置好了,我们不用再手动去配置。

然后,我们切换到 c:Espressifframeworksesp-idf-v5.4examplesget-startedhello_world目录中。

wKgZO2fhCnSABVnJAAGOSobBo5w455.png

*步骤1:先进行ESP32 C3配置:idf.py set-target esp32c3

wKgZPGjQw8aARR8gAAIKKSqyvRg683.png

*步骤2:之后就可以开始编译:idf.py build

wKgZO2jQw_eAUkoqAANu_v7WKtY274.png

*步骤3:如果没出现错误,我们就可以用idf.py -p COM3 flash命令烧写,在这里要注意的是“COM”要大写,然后按下Enter回车键。

wKgZPGjQxA2AZiWtAAH_sMnprvc704.png

*步骤4:这时候,我们可以在”串口调试助手”中,看到ESP C3与SPI以太网DM9051ANX模块运行起来,并且输出 “Hello world!”,那就表示SPI以太网DM9051ANX通信成功。

wKgZPGjQxB6AYQ9CAAI8obQLzMM907.png

6.2以太网口功能演示(步骤1~8)

当成功通信后,我们来实际演示SPI以太网口DM9051ANX的通信功能,切换到 c:Espressifframeworksesp-idf-v5.4examplesethernetbasic目录中。

*步骤1:与之前动作一样,先配置ESP32 C3:idf.py set-target esp32c3

wKgZPGfhDMuATkA2AADVesSg8p8432.png

*步骤2:这时,我们对ESP32 C3开启 DM9051以太网通信功能:idf.py menuconfig

wKgZPGjQxIKAJM2SAAL_26GkB9M480.png

*步骤3:在ESP-IDF菜单中,选择 “Example Ethernet Configuration”

wKgZO2jQxJeAZZzdAAFqcGO3BQ8740.png

*步骤4:我们在 “SPI Ethernet”菜单中,点选”DM9051 Module”

wKgZPGjQxLqAUed3AALyCqHkJt0477.png

*步骤5:另外还要修改 DHCPS功能,避免 DHCP和路由有冲突

wKgZO2jQxMqAZHZGAAEZDzGwHZE079.pngwKgZPGfhDSOAUtUkAAIa4fKJaQc601.png

关闭 DHCPS功能

wKgZPGjQxcmAOkp7AAHwDELIQq4268.png

退出时记得储存

wKgZO2jQxeOAaIKrAAErgAsu4-s353.png

*步骤6:开始编idf.py build

wKgZO2jQxfaAXMhvAALHM9sWqIQ646.png

*步骤7:完成后,进行烧写idf.py -p COM3 flash

wKgZO2jQxgiAQR1xAAKtue02sj4880.png

*步骤8:完成后,可以在串口看到系统跑起来,并且取得ip 地址,使用 ping 功能测试,结果正常。

wKgZO2fhDYGAffL-AANKOdUUw3w276.png

七、Iperf网络性能测试工具实测

7.1相关配置

在这里和之前配置进行都一样,只是测试代码在c:Espressifframeworksesp-idf-v5.4examplesethernetiperf

*步骤1:相同的命令流程:

idf.py set-target esp32c3

idf.py menuconfig

idf.py build

idf.py -p COM3 flash

7.2 Iperf命令

在PC端使用 Iperf软件,我们输入命令为 iperf -u -s ,而在ESP IDF这儿使用串口调试助手软件,接着输入命令 iperf -u -c xxx.xxx.xxx.xxx -t 60 -i 3

(相关说明,请参考 c:Espressifframeworksesp-idf-v5.4examplesethernetiperfREADME.md文档)

wKgZO2fhDZuACWUoAAOKZl1XQxU385.png

7.3 DM9051ANX网口性能数据

DM9051ANX网口芯片在 100兆全双工模式,得出实测数据为 11.63Mbps,还行!我觉得应该可以更快一些,再重新运行idf.py menuconfig,修改 SPI clock speed (Mhz)到 60Mhz,这个SPI clock要依照使用的网线质量去作调整,这样测试下来,我留意到,当SPI Clock超过 60Mhz时,就有些不稳定了。

wKgZO2jQ7GiAHd3sAAF3qE6B2v4912.png

重新调整SPI clock后,再测试一次!

wKgZPGfhDcyALzh1AAN4_RrkKiA127.png

最后测出DM9051ANX网口性能为 22.12Mbps,这样的网口數據在一般行业的項目应用是足够了!不仅如此,以这样的性能数据,更可以扩大ESP32 C3/C6+DM9051ANX无线网关的应用范围!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    41

    文章

    5924

    浏览量

    179538
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99817
  • ESP32
    +关注

    关注

    24

    文章

    1083

    浏览量

    20861
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件
    的头像 发表于 11-28 07:27 707次阅读

    idf.py --version` 提示“不是内部或外部命令”(ESP32S3小智调试中遇到)

    idf.py --version` 提示“不是内部或外部命令”(ESP32S3小智调试中遇到)
    的头像 发表于 11-28 07:22 399次阅读

    低成本开源!用乐鑫科技ESP32-S3开发板轻松驱动无刷电机,保姆级教程来了!

    想用ESP32-S3开发板驱动无刷电机却不知从何下手?本教程将手把手教你完成从硬件连接到软件编程的全流程,无论你是新手还是有一定经验的开发者,都能轻松掌握!本教程代码已全部开源!后台私
    的头像 发表于 11-06 18:03 242次阅读
    低成本开源!用乐鑫科技<b class='flag-5'>ESP32</b>-S3<b class='flag-5'>开发</b>板轻松驱动无刷电机,保姆级教程来了!

    SPI以太网方案DM9051ANX与W5500的BOM物料清单一览

    SPI接口以太网方案选型,DM9051ANX相比W5500具有显著成本优势。W5500需额外增加EMI防护元件(如阻尼电阻等),导致其外围物料成本达10.71元,而DM9051ANX
    的头像 发表于 11-03 17:13 593次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>以太网</b><b class='flag-5'>口</b>方案<b class='flag-5'>DM9051ANX</b>与W5500的BOM物料清单一览

    LVGL实战指南:手把手教你玩转ESP32-S3 2.8寸串口屏UI开发

    你是否也曾被ESP32的显示开发折磨到“头秃”?环境配置报错、LVGL移植失败、屏幕死活不亮……无数个小时在调试中白白浪费。别担心,这篇指南就是你的“速救手册”。我们将跳过所有繁琐的坑,直击核心
    的头像 发表于 10-30 18:04 1427次阅读
    LVGL实战指南:<b class='flag-5'>手把手</b>教你玩转<b class='flag-5'>ESP32</b>-S3 2.8寸串口屏UI<b class='flag-5'>开发</b>

    SPI以太网芯片DM9051ANXESP32 C3进行iPerf测试

    DM9051ANX进行Iperf测试,以不同的SPI CLK 进行,并在30秒内分别传输了62.2、62、62、50、43、25.8MB数据,这些SPI以太网
    的头像 发表于 10-20 10:53 328次阅读

    DM9051ANX与W5500性能與规格比较

    在最近项目中,本小工在乐鑫ESP32、雅特力AT32F415與AT32F423、STM32F103以及MTK平台上,一連玩去了官方参考设计推荐的SPI有线网方案,前后搞了
    的头像 发表于 10-14 10:28 332次阅读

    ESP32DM9051ANX开发版引脚接法说明

    ESP32 C3使用SPI芯片DM9051ANX时,以此硬件引腳接法作为参考,使项目目发展
    的头像 发表于 10-01 10:35 316次阅读
    <b class='flag-5'>ESP32</b>与<b class='flag-5'>DM9051ANX</b><b class='flag-5'>开发</b>版引脚接法说明

    全开源!从安装到烧录,手把手教你用ESP32-P4-TINY开发板实现一秒闪白光!

    Windows环境下通过WSL2编译ESP-IDF,搭建ESP32-P4开发环境,并最终实现板载LED白光闪烁的完整流程。本次演示使用启明云端最新推出的WT9932P4-TINY开发
    的头像 发表于 09-22 18:04 995次阅读
    全开源!从安装到烧录,<b class='flag-5'>手把手</b>教你用<b class='flag-5'>ESP32</b>-P4-TINY<b class='flag-5'>开发</b>板实现一秒闪白光!

    DM9051ANX新旧版差异介绍

    DM9051ANX新版芯片在性能上全面超越旧版DM9051NP:采用1.8-3.3V可变电压供电,1功耗分别降至32mA/45mA(旧版106mA/142mA);自帶MAC地址,外围元
    的头像 发表于 09-19 11:26 450次阅读

    ESP32开发板元件资料

    ESP32开发板元件
    发表于 07-21 14:47 14次下载

    ESP32平台 + SPI接口芯片DM9051ANX实现以太网通信

    本帖最后由 LZZ19880228 于 2025-10-30 10:47 编辑 一、概述 本篇文章旨在介绍ESP32芯片SPI有线以太网
    发表于 05-23 10:22

    ESP32平台使用以太网DM9051ANX自带的MAC地址

    本帖最后由 jf_36651975 于 2025-4-11 10:38 编辑 在之前的ESP32行业网关项目上,需要以太网通信功能,当时选用了DM9051ANX,相较于老款,每一个
    发表于 04-10 17:17

    (精选笔记)ESP32 C3添加SPI以太网芯片DM9051ANX通讯开发指导以及ESP IDF V5.4介绍 [手把手教程,消化]

    环境ESP-IDF V5.4以及运行有线以太网DM9051ANX与通信演示。 目录一、概述二、ESP32
    发表于 03-24 15:20

    DM9051A替换DM9051介绍

    dm9051a是davicom最新推出的一款10/100mbps spi接口芯片 dm9051a相较于dm9051脚位更少,体积更小
    的头像 发表于 02-19 16:24 1104次阅读
    <b class='flag-5'>DM9051</b>A替换<b class='flag-5'>DM9051</b><b class='flag-5'>介绍</b>