Arduino-ESP32 开发板选型完全指南:从 SoC 家族到官方开发板与第三方板卡
【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32
本指南以 Arduino-ESP32 官方文档(docs/en/boards/boards.rst)为骨架,面向正准备入手 ESP32 开发板的开发者,系统讲解 ESP32 芯片家族的分类与差异、SoC / 模组 / 开发板三层结构的关系、购板前的关键考量点,并逐一介绍 Espressif 官方推荐的 ESP32-DevKitC-1、ESP32-S2-Saola-1、ESP32-C3-DevKitM-1 三款开发板的规格、引脚定义、启动配置(Strapping)引脚与使用限制,同时结合本仓库的 boards.txt、docs/en/getting_started.rst 与
variants/目录源码,给出可落地的选型与上手指引。读完本文,你将能根据项目需求(Wi-Fi/BLE、Zigbee/Thread、USB、低成本等)准确选择 SoC 与板卡,并规避常见的引脚误用问题。
一、从"一个 ESP32 管所有"说起:ESP32 家族全景
很多初学者最大的困惑是:市面上有 ESP32、ESP32-S2、ESP32-S3、ESP32-C3、ESP32-C6……型号多得让人眼花缭乱。事实上,ESP32 是按"家族(Family)"划分的,每个家族对应一颗不同的 SoC(片上系统),它们面向不同的应用场景。官方文档在 docs/en/boards/boards.rst 中给出了完整的家族列表,各家族核心能力如下:
| SoC 家族 | 核心特性 |
|---|---|
| ESP32 | Wi-Fi、蓝牙经典(BT)与 BLE 4.x |
| ESP32-C2 [#rebuild-required]_ | Wi-Fi 与 BLE 5 |
| ESP32-C3 | Wi-Fi 与 BLE 5(RISC-V 单核) |
| ESP32-C5 | 双频 Wi-Fi 6、BLE 5 与 IEEE 802.15.4 |
| ESP32-C6 | Wi-Fi 6、BLE 5 与 IEEE 802.15.4 |
| ESP32-C61 [#rebuild-required]_ | Wi-Fi 6 与 BLE 5 |
| ESP32-H2 | BLE 5 与 IEEE 802.15.4(无 Wi-Fi,主打 Thread/Zigbee) |
| ESP32-P4 | 400 MHz 双核 RISC-V CPU、40 MHz ULP 协处理器、单精度 FPU 与 AI 扩展 |
| ESP32-S2 | 仅 Wi-Fi(无蓝牙) |
| ESP32-S3 | Wi-Fi 与 BLE 5 |
关于 ESP32-C2 与 ESP32-C61 的支持方式:这两个家族只有在"使用 Arduino 作为 ESP-IDF 组件"或"重新构建静态库"两种方式下才受 Arduino-ESP32 支持。官方文档在 docs/en/getting_started.rst 的 Supported SoC 表格中同样标注了这一限制,并指引读者参考 esp-idf_component.rst(Arduino 作为 ESP-IDF 组件)或 lib_builder.rst(Lib Builder 重建静态库)两份文档。从本仓库的 boards.txt 也可以印证这一点:
esp32c2.name=ESP32C2 Dev Module后紧跟一行esp32c2.hide=true,即 ESP32-C2 的板卡定义默认是隐藏的,普通 Arduino IDE 的板卡管理器列表中并不会直接显示它。
各家族在 Arduino-ESP32 中的支持状态
getting_started.rst 的 "Supported SoC's" 章节进一步按Stable(稳定)与Development(开发)两个轨道标注了每个家族在 Arduino-ESP32 中的支持状态:
- Stable + Development:ESP32、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-H2、ESP32-P4、ESP32-S2、ESP32-S3
- 需特殊方式支持:ESP32-C2、ESP32-C61(作为 ESP-IDF 组件或重建静态库)
换句话说,绝大多数开发者日常会接触到的 ESP32 家族芯片,都已经进入 Arduino-ESP32 的稳定支持轨道。本文撰写时仓库 cores/esp32/esp_arduino_version.h 中声明的核心版本为3.3.11(ESP_ARDUINO_VERSION_MAJOR=3、ESP_ARDUINO_VERSION_MINOR=3、ESP_ARDUINO_VERSION_PATCH=11),选型时如遇到较新的芯片(例如 ESP32-C5、ESP32-P4),建议确认所用核心版本是否已覆盖。
二、SoC、模组(Module)与开发板:三层结构的正确理解
ESP32 SoC 与模组结构示意
文档特别强调了"一颗 ESP32 管所有(One ESP32 to rule them all)"这一关键认知:
- SoC(芯片):Espressif 设计的内核芯片本身,例如 ESP32、ESP32-S3。
- 模组(Module):在 SoC 基础上集成外部 Flash、PSRAM(部分型号)、晶振及其他必要电子元件后封装成的整体,例如 ESP32-WROVER、ESP32-WROOM。同一家族的模组,核心用的都是同一颗 SoC。
- 开发板(Development Board):把模组、USB 转串口芯片、电源电路、引脚排针等集成到一块 PCB 上,方便开发者直接接线、烧录和调试。
文档给出了一个非常具体的例子:
假设一颗 SoC 的型号是ESP32-D0WD-V3,它同时被用在ESP32-WROVER(带 PSRAM)和ESP32-WROOM两款模组内部。这意味着这两款模组的"心脏"拥有完全相同的核心特性——区别只在于模组外围(如是否外挂 PSRAM、Flash 容量)以及封装形式。
对于每个家族内部的不同 SoC 变体,差异主要体现在三方面:
- 内嵌 Flash 及其容量;
- 核心数量(双核或单核);
- 其他如 PSRAM、封装尺寸等外围差异。
理解"模组不同、心脏相同"之后,选型时就可以先定 SoC 家族,再定模组(关注 Flash/PSRAM),最后选一块搭载该模组的开发板。关于具体型号的详细选型,Espressif 官方提供了"产品选择器(Espressif Product Selector)"在线工具(datasheet.inc 中亦重复引用了该工具作为各家族数据手册的入口)。
三、购买开发板之前:四个"必须要有"的考量点
boards.rst 明确指出,市面上开发板型号繁多、质量参差不齐,购买前应重点核查以下四个特征,以省钱、省时间:
内嵌 USB 转串口芯片(Embedded USB-to-Serial)通过 USB 直接烧录程序、并用终端查看串口日志,是开发调试最便捷的方式。缺少该芯片的板卡往往需要额外购买 USB-TTL 转接器,徒增接线与排查成本。
面包板友好(Breadboard friendly)如果处于原型验证阶段,排针间距与引脚排布是否兼容标准面包板至关重要,直接影响你把板卡直接插到面包板上连接外设的便利性。
开源硬件(Open-source / open-hardware)优先选择原理图可以下载的板卡。公开原理图在原型设计、排查硬件问题、理解引脚复用关系时帮助极大。
厂商支持(Support)部分厂商会提供高质量的示例工程与演示项目。对初学者而言,厂商是否维护示例代码、是否及时跟进新核心版本,直接决定了上手体验。
建议把上述四点作为"购前检查清单"。尤其对于第三方板卡,由于板卡质量与文档完整度参差不齐,先看原理图、再看示例、最后下单,是比较稳妥的顺序。
四、Espressif 官方开发板详解
Espressif 官方在三款文档化开发板上提供了最完整的规格、引脚表与约束说明,是学习与原型验证的首选。下面依次展开。
官方文档说明:本页面只详细描述了少数几款开发板,更多 Espressif 官方开发板的信息请访问 Espressif 官网的 DevKits 产品页。
4.1 ESP32-DevKitC-1(经典 ESP32 双核首选)
- 文档:docs/en/boards/ESP32-DevKitC-1.rst
- 核心:ESP32,搭载ESP32-WROVER-E模组
- 定位:功能最全的"万金油"开发板,Wi-Fi + 蓝牙双模,自带 PSRAM,适合绝大多数通用项目。
规格要点:
- Wi-Fi 802.11b/g/n(802.11n 最高 150 Mbps)
- 蓝牙 v4.2 BR/EDR 与 BLE
- 内嵌 4 MB SPI Flash、8 MB PSRAM
- PCB 天线或外置天线连接器
- 外设覆盖:SD 卡、UART、SPI、SDIO、I2C、LED PWM、电机 PWM、I2S、IR、脉冲计数(Pulse Counter)、GPIO、电容触摸(Capacitive Touch)、ADC、DAC、TWAI®(兼容 ISO11898-1 的汽车级双线接口)
排针定义(J1 / J3,注意并非所有芯片引脚都引出到排针):
J1 排针:
| No. | 名称 | 类型 | 功能 |
|---|---|---|---|
| 1 | 3V3 | P | 3.3 V 电源 |
| 2 | EN | I | CHIP_PU,复位 |
| 3 | IO36 | I | GPIO36, ADC1_CH0, S_VP |
| 4 | IO39 | I | GPIO39, ADC1_CH3, S_VN |
| 5 | IO34 | I | GPIO34, ADC1_CH6, VDET_1 |
| 6 | IO35 | I | GPIO35, ADC1_CH7, VDET_2 |
| 7 | IO32 | I/O | GPIO32, ADC1_CH4, TOUCH_CH9, XTAL_32K_P |
| 8 | IO33 | I/O | GPIO33, ADC1_CH5, TOUCH_CH8, XTAL_32K_N |
| 9 | IO25 | I/O | GPIO25, ADC1_CH8, DAC_1 |
| 10 | IO26 | I/O | GPIO26, ADC2_CH9, DAC_2 |
| 11 | IO27 | I/O | GPIO27, ADC2_CH7, TOUCH_CH7 |
| 12 | IO14 | I/O | GPIO14, ADC2_CH6, TOUCH_CH6, MTMS |
| 13 | IO12 | I/O | GPIO12, ADC2_CH5, TOUCH_CH5, MTDI |
| 14 | GND | G | 地 |
| 15 | IO13 | I/O | GPIO13, ADC2_CH4, TOUCH_CH4, MTCK |
| 16 | IO9 | I/O | GPIO9, D2 |
| 17 | IO10 | I/O | GPIO10, D3 |
| 18 | IO11 | I/O | GPIO11, CMD |
| 19 | 5V0 | P | 5 V 电源 |
J3 排针:
| No. | 名称 | 类型 | 功能 |
|---|---|---|---|
| 1 | GND | G | 地 |
| 2 | IO23 | I/O | GPIO23 |
| 3 | IO22 | I/O | GPIO22 |
| 4 | IO1 | I/O | GPIO1, U0TXD |
| 5 | IO3 | I/O | GPIO3, U0RXD |
| 6 | IO21 | I/O | GPIO21 |
| 7 | GND | G | 地 |
| 8 | IO19 | I/O | GPIO19 |
| 9 | IO18 | I/O | GPIO18 |
| 10 | IO5 | I/O | GPIO5 |
| 11 | IO17 | I/O | GPIO17 |
| 12 | IO16 | I/O | GPIO16 |
| 13 | IO4 | I/O | GPIO4, ADC2_CH0, TOUCH_CH0 |
| 14 | IO0 | I/O | GPIO0, ADC2_CH1, TOUCH_CH1, Boot |
| 16 | IO2 | I/O | GPIO2, ADC2_CH2, TOUCH_CH2 |
| 17 | IO15 | I/O | GPIO15, ADC2_CH3, TOUCH_CH3, MTDO |
| 17 | IO8 | I/O | GPIO8, D1 |
| 18 | IO7 | I/O | GPIO7, D0 |
| 19 | IO6 | I/O | GPIO6, SCK |
类型图例:P = 电源;I = 输入;O = 输出;T = 高阻态。
ESP32-DevKitC-1 引脚布局
Strapping(启动配置)引脚——这些 GPIO 在启动过程中承担特殊角色,选择引脚时必须留意:
| GPIO | 默认状态 | 功能 | 上拉 | 下拉 |
|---|---|---|---|---|
| IO12 | 下拉 | 内部 LDO 电压(VDD_SDIO) | 1.8 V | 3.3 V |
| IO0 | 上拉 | 启动模式 | SPI Boot | Download Boot |
| IO2 | 下拉 | 启动模式 | Don't Care | Download Boot |
| IO15 | 上拉 | 启动期间日志打印开关 / SDIO 从机时序 | U0TXD Active | U0TXD Silent |
| IO5 | 上拉 | SDIO 从机时序 | 见数据手册 | 见数据手册 |
受限 GPIO(Restricted Usage GPIO):
- 不可使用的引脚(被外部 SPI Flash/PSRAM 占用):IO6、IO7、IO8、IO9、IO10、IO11。
- 仅输入(INPUT ONLY)引脚(不能作为输出):IO34、IO35、IO36、IO39。
在 Arduino 代码中引用这些引脚时(例如
pinMode/digitalWrite),务必避开受限列表;IO34/35/36/39 只读、IO6~IO11 被 Flash 占用,误用会导致程序行为异常或无法启动。
4.2 ESP32-S2-Saola-1(USB 与低成本 Wi-Fi 方案)
- 文档:docs/en/boards/ESP32-S2-Saola-1.rst
- 核心:ESP32-S2(Xtensa® 单核),搭载ESP32-S2-WROVER模组
- 定位:仅 Wi-Fi(无蓝牙)、自带 USB OTG 的极简方案,适合键盘/触控/USB 外设类项目。
规格要点:
- Wi-Fi 802.11b/g/n(最高 150 Mbps)
- 内嵌 4 MB SPI Flash、2 MB PSRAM
- 外设:43 × 可编程 GPIO;2 × 13-bit SAR ADC(最多 20 通道);2 × 8-bit DAC;14 × 触摸感应 IO;4 × SPI;1 × I2S;2 × I2C;2 × UART;RMT(TX/RX);LED PWM 控制器(最多 8 通道);1 × 全速 USB OTG;1 × 温度传感器;1 × DVP 8/16 位摄像头接口(复用 I2S 硬件资源);1 × LCD 接口(8-bit 串行 RGB/8080/6800,复用 SPI2);1 × LCD 接口(8/16/24-bit 并行,复用 I2S);1 × TWAI® 控制器(兼容 ISO 11898-1)
- PCB 天线或外置天线连接器
Strapping 引脚:
| GPIO | 默认状态 | 功能 | 上拉 | 下拉 |
|---|---|---|---|---|
| IO45 | 下拉 | 内部 LDO 电压(VDD_SDIO) | 1.8 V | 3.3 V |
| IO0 | 上拉 | 启动模式 | SPI Boot | Download Boot |
| IO46 | 下拉 | 启动模式 | Don't Care | Download Boot |
| IO46 | 上拉 | 启动期间日志打印开关 / SDIO 从机时序 | U0TXD Active | U0TXD Silent |
受限 GPIO:
- 被 PSRAM 占用不可使用:IO26。
- 仅输入:IO46。
注意:IO19/IO20 同时承担 USB_D- / USB_D+ 与 ADC2 的复用,使用 USB 时不要把它们当作普通 GPIO/ADC 使用;完整排针表(J2/J3,共 40 余个引脚)见 ESP32-S2-Saola-1.rst。
4.3 ESP32-C3-DevKitM-1(低成本 RISC-V 入门首选)
- 文档:docs/en/boards/ESP32-C3-DevKitM-1.rst
- 核心:ESP32-C3(RISC-V 单核),搭载ESP32-C3-MINI-1模组
- 定位:体积小、成本低、带 USB Serial/JTAG 的 Wi-Fi + BLE 5 方案,极其适合小型 IoT 节点与面包板原型。
规格要点:
- 小型 2.4 GHz Wi-Fi(802.11b/g/n)与蓝牙 5 模组
- RISC-V 单核微处理器
- 模组内嵌 4 MB Flash;模组提供 15 个可用 GPIO
- 外设:22 × 可编程 GPIO;3 × SPI;2 × UART;1 × I2C;1 × I2S;远程控制外设(2 发 2 收);LED PWM 控制器(最多 6 通道);全速 USB Serial/JTAG 控制器;通用 DMA 控制器 GDMA(3 发 3 收);1 × TWAI® 控制器(兼容 ISO 11898-1);2 × 12-bit SAR ADC(最多 6 通道);1 × 温度传感器;2 × 54-bit 通用定时器、3 × 看门狗定时器、1 × 52-bit 系统定时器
- PCB 天线或外置天线连接器
Strapping 引脚(GPIO2/GPIO8/GPIO9 为 ESP32-C3FN4 芯片的启动配置引脚,系统复位时锁存电平作为启动位,直至下电):
| GPIO | 默认状态 | 功能 | 上拉 | 下拉 |
|---|---|---|---|---|
| IO2 | N/A | 启动模式 | 见数据手册 | 见数据手册 |
| IO9 | 上拉 | 启动模式 | SPI Boot | Download Boot |
| IO8 | N/A | 启动模式 | Don't Care | Download Boot |
| IO8 | 上拉 | 启动期间日志打印开关 | 见数据手册 | 见数据手册 |
ESP32-C3-DevKitM-1 引脚布局
排针要点:J1 提供 3V3/5V/GND 电源与 IO0~IO10 等引脚;J3 提供 TX(GPIO21/U0TXD)、RX(GPIO20/U0RXD)、IO4~IO9(其中 IO8 板载 RGB LED、IO9 为启动配置脚)、IO18/IO19(USB_D- / USB_D+)等。完整表格见 ESP32-C3-DevKitM-1.rst。
五、第三方开发板与"通用板"模板
除了官方板卡,社区第三方厂商提供了海量选择。文档在 Third Party 一节中给出了两条重要约定:
- 板卡信息由厂商提供:官方文档只列出厂商提供的资料;如果你的常用板卡不在列表中,可以在官方 GitHub 仓库提交 issue 并在描述中直接提及/@ 厂商,推动厂商补充资料。
- 通用模板:文档提供了一个 generic.rst 模板,约定"每个板卡一个文件,或多个板卡共用一个文件,但不要在索引文件(boards.rst)里写板卡描述",以此保持文档结构整洁。
文档当前列出的第三方板卡包括:
- LOLIN(Wemos):LOLIN D32、LOLIN D32 Pro(ESP32 核心,含电池管理、锂电池接口的经典板型)。
- Generic Vendor / 通用板:对应 generic.rst 模板中的占位内容(规格、Header Block、引脚布局均为待填充区域,并同样以 datasheet.inc 作为数据手册资源入口)。
从本仓库的 boards.txt 可以看到,实际支持的板卡远不止文档列出的这几款——包括 AI Thinker ESP32-CAM(esp32cam)、ESP32-S3-Box(esp32s3box)、SparkFun ESP32 Thing 等数百个板卡定义,而每个板卡的引脚映射定义位于 variants 目录下对应的pins_arduino.h中(例如 variants/esp32/pins_arduino.h)。板卡列表是持续扩充的,选型时不必局限于官方文档列举的型号;但要注意,第三方板卡的支持质量取决于厂商维护情况,购买前仍建议按第三节的四点清单核对。
六、数据手册资源清单
官方文档为每个 SoC 家族统一维护了数据手册索引(见 docs/en/common/datasheet.inc,该文件被 boards.rst 与 generic.rst 共同 include):
- ESP32、ESP32-C2、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-P4、ESP32-S2、ESP32-S3 的官方 Datasheet 均可在该索引中获取;
- 选型与引脚规划阶段,请以对应家族的数据手册为准(例如 VDD_SDIO 电压、SDIO 从机时序等细节都只在数据手册中完整给出);
- 各开发板文档的 Resources 小节还会补充模组数据手册(如 ESP32-WROVER-E、ESP32-C3-MINI-1)与**原理图(Schematic)**下载入口,例如 ESP32-DevKitC-1.rst 中的 ESP32-DevKitC Schematic、ESP32-S2-Saola-1.rst 中的 ESP32-S2-Saola-1 原理图。
七、总结:三步完成你的板卡选型
结合官方文档与本仓库实现,推荐的选型路径可概括为:
- 先定 SoC 家族:是否需要蓝牙?是否需要 802.15.4(Thread/Zigbee/Matter,对应 C6/H2/C5)?是否需要 USB 原生外设(S2/S3)?是否需要最强算力(P4)?据此从第一节的家族表中圈定 1~2 个候选家族,同时确认其在 Arduino-ESP32 中的支持轨道(Stable/Development)。
- 再定模组:同家族内根据 Flash 容量、是否带 PSRAM、单核/双核选择模组(如 ESP32-WROOM 与 ESP32-WROVER)。
- 最后定开发板:官方板卡看第三节的三款文档化型号;第三方板卡按"内嵌 USB 转串口、面包板友好、开源硬件、厂商支持"四点清单核查,再对照 boards.txt 与 variants 目录确认该板卡在 Arduino-ESP32 中的引脚定义与板卡配置是否完整。
开发过程中,请始终将启动配置(Strapping)引脚与受限 GPIO(Flash/PSRAM 占用、仅输入引脚)视为"禁区",优先使用各板卡文档中标记为自由 I/O 的引脚,即可避免绝大多数"烧录后无法启动""引脚无响应"类的低级踩坑。
【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考