WIFI技术
直播中

jf_36651975

未满1年用户 8经验值
擅长:嵌入式技术 接口/总线/驱动 控制/MCU
私信 关注
[经验]

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

网口通信LED燈 (2)

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

目录
一、概述
二、ESP32 C3模块介绍&产品定位
三、DM9051ANX介绍
四、开发环境
4.1准备工作
4.2.ESP32 C3與DM9051ANX开发版硬件接法
五、ESP-IDF安装,配置
5.1使用版本( ESP-IDF v5.4 )
5.2 IDF软件安装流程说明(步骤1~6)
六、编译以太网DM9051ANX例程
6.1烧录例程 (步骤1~4)
6.2以太网口功能演示(步骤1~8)
七、Iperf网络性能测试工具实测
7.1 相关配置命令
7.2 Iperf命令
7.3 DM9051ANX网口性能数据实测


一、概述
本篇文章旨在介绍ESP32芯片,SPI有线以太网芯片DM9051ANX以及ESP IDF等。
ESP32 C系列具有高性能、高集成、低功耗和多种接口的特点,可为独立系统或从设备提供 Wi-Fi应用功能。
SPI以太网芯片DM9051ANX体积小,QFN24管脚包装,功耗更低以及周边RBOM成本更省等有优点,将ESP32 CDM9051ANX作为简易型网关方案,是一个性价比高,并符合行业实际应用的方案捆绑。
此篇帖子以ESP IDF最新版V5.4来进行开发与调适。

二、ESP32 C3模块介绍&产品定位
在这里说下为什么选择ESP32 C3这样的方案来做行业网关,当初选型ESP32 S3C3选型时,两者同样支持IEEE802.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普遍是做无线应用,如果遇到需要有线以太网口的场景,我们其实可以利用SPIUARTGPIO较少的硬件接口,作为对外通信,在这里我选用在市场上广泛被采用且仅4条线通信的SPI接口与以太网进行通信。
这样一来,C3可作无线网关带网口应用,主要任务是做无线与有线数据之间的传输,很适合各行业应用;但是,如果项目要求C3不仅要做传输数据,还要处理其他应用功能,这种多任务处理就不是C3擅长了。
S3就不同做一个小总结,我们可以这样理解,要多任务任务处理、AI应用功能等,S3比较合适,价格也稍贵些,毕竟规格摆在那儿;如果要做一般应用且单一任务,例如:无线网关带有线网口应用,C3就有性价比了了,S3在作数据传输时,同时可以处理外设功能,可以有一定程度的响应速度,而且AI应用开发资源丰富。
做一个小总结,我们可以这样理解,要多任务任务处理、AI应用功能等,S3比较合适,价格也稍贵些,毕竟规格摆在那儿;如果要做一般应用且单一任务,例如:无线网关带有线网口应用,C3就有性价比了!

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


四、开发环境
4.1准备工作
1ESP32 开发板:我手上的开发板是合宙ESP32-C3-xxxx
1DM9051ANX开发板。
1USB 数据线:Type A Micro-B
1台电脑:Windows微软系统
市面上有开发板是 USB TypeC 接口,请选择合适USB接口的数据线来连接。

4.2. ESP32 C3DM9051ANX开发版硬件接法
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
1.)    合宙ESP32 C3开发版Pin Out示意图
合宙ESP32-C3开发版的硬件设计文档,请参考连结网址:

2.)    DM9051ANX开发版SPI接口Pin Out表
DM9051A pin out

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

5.2 IDF软件安装流程说明(步骤1~6)
*步骤1我们可以到乐鑫 IoT 开发框架 (esp-idf) 的文档中心去下载ESP-IDF
*步骤2:建议同学们选择V 5.4 离线下载版本,避免出现网络传输的问题。
点击离线下载版本,依照当下条件选择合适自己的语言版本。
*步骤3:建议要点选“应用修复” 避免接下来运行时,出现错误。
*步骤4:在安装中途,ESP IDF会出现一个窗口:是否安装USB UART 芯片驱动?
*步骤5:最后,终于完成安装了!慢点,因为我们调试项目时,还需要用串口 ,可以找自已习惯的串口软件,微软也有提供免费的工具。
*步骤6:接下来,我们来进入”串口调试助手”,硬件接口是用到UART接口,而波特率设置为 115200 ,并开启左下角的 “终端模式”,方便我们输入指令。

六、编译以太网DM9051ANX例程
ESP-IDF 开发工具提供一系列灵活好用的 API,为外部以太网通信以及外部 SPI有线以太网SPI-Ethernet通信模块提供良好支持,更多说明请参考下列链结:
6.1烧录例程 (步骤1~4)
ESP-IDF 中,在 examples 目录下的get-started/hello_world 工程开始。
我们点击桌面上的ESP-IDF5.4 CMD ESP-IDF 5.4PowerShell ,这儿使用的是后者,相关的工具连接都配置好了,我们不用再手动去配置。然后,我们切换到c:Espressifframeworksesp-idf-v5.4examplesget-startedhello_world 目录中。
*步骤1:先进行ESP32 C3 配置:idf.pyset-target esp32c3
*步骤2:之后就可以开始编译:idf.py build
*步骤3:如果没出现错误,我们就可以用idf.py -p COM3 flash命令烧写, 在这里要注意的是“COM” 要大写,然后按下Enter回车键。
*步骤4:这时候,我们可以在串口调试助手中,看到ESP C3SPI以太网DM9051ANX模块运行起来,并且输出 “Hello world!”,那就表示SPI以太网DM9051ANX通信成功。

6.2以太网口功能演示(步骤1~8)
当成功通信后,我们来实际演示SPI以太网口DM9051ANX的通信功能,切换到c:Espressifframeworksesp-idf-v5.4examplesethernetbasic 目录中。
*步骤1:与之前动作一样,先配置ESP32 C3:idf.py set-targetesp32c3
*步骤2:这时,我们对ESP32 C3开启 DM9051 以太网通信功能: idf.pymenuconfig
*步骤3:ESP-IDF菜单中,选择 “Example EthernetConfiguration”
*步骤4:我们在 “SPI Ethernet”菜单中,点选”DM9051 Module”
*步骤5: 另外还要修改 DHCPS 功能,避免 DHCP 和路由冲突。
关闭  DHCPS 功能


退出时记得储存
*步骤6:开始编idf.py build
*步骤7:完成后,进行烧写idf.py -p COM3 flash
*步骤8:完成后,可以在串口看到系统跑起来,并且取得ip 地址,使用 ping 功能测试,结果正常。

七、Iperf网络性能测试工具实测
7.1 相关配置命令
在这里和之前配置进行都一样,只是测试代码在c:Espressifframeworksesp-idf-v5.4examplesethernetiperf
*相同的命令流程:
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 -i3
(相关说明,请参考c:Espressifframeworksesp-idf-v5.4examplesethernetiperfREADME.md 文档)
7.3 DM9051ANX网口性能数据实测
DM9051ANX网口芯片在 100兆全双工模式,得出实测数据为11.63Mbps 还行!但我觉得应该可以更快一些,再重新运行 idf.pymenuconfig,修改 SPI clock speed(Mhz) 60Mhz这个SPI clock要依照使用的网线质量去作调整,这样测试下来,我留意到,当SPI Clock超过 60Mhz时,就有些不稳定了。
重新调整SPI clock后,再测试一次!
最后测出DM9051ANX网口性能为 22.12Mbps,这样的网口数据在一般行业的项目应用是足够了!不仅如此,以这样的性能数据,更可以扩大ESP32 C3/C6+DM9051ANX无线网关的应用范围!

网口通信LED燈 (1)

更多回帖

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