1. 先搞清楚这两块板子到底差在哪
1.1 从芯片定位说起:S3 和 C3 根本不是同一档产品
很多人第一次接触这两块板子,看到名字里都带个“Mini”,价格又都在二三十块上下,就下意识觉得它们是同一类东西,只是型号不同。实际上,ESP32-S3 和 ESP32-C3 在芯片定位上差了一整个档次,买之前如果不把这个搞清楚,后面选型一定会后悔。
ESP32-C3 是单核 RISC-V 架构,主频 160MHz,没有原生 USB OTG,只有 USB Serial/JTAG 控制器(注意,这个不是完整的 USB Host/Device),GPIO 数量也少,适合做简单的 Wi-Fi + BLE 联网终端,比如传感器节点、智能开关、简单的 HTTP 请求设备。它的定位就是“够用就好”的入门级联网芯片。
ESP32-S3 是双核 Xtensa LX7 架构,主频 240MHz,带完整的 USB OTG(支持 Host 和 Device 模式),支持更大的 PSRAM 扩展(最高 8MB Octal SPI PSRAM),GPIO 数量多,还带 AI 指令扩展。它适合做需要跑摄像头、音频、USB 设备、LVGL 界面、轻量级边缘计算的项目。
所以选型的第一条铁律是:如果你的项目需要 USB Host、摄像头、屏幕、音频、或者需要跑稍微复杂一点的应用,直接上 S3,不要犹豫。C3 省下来的那几块钱,后面会在功能受限上让你加倍还回来。
1.2 PSRAM 这件事,买之前必须确认清楚
PSRAM 是这两块板子采购时最容易踩坑的地方,没有之一。同样是“ESP32-S3 Mini”,市面上至少有四种配置:无 PSRAM、2MB Quad SPI PSRAM、4MB Quad SPI PSRAM、8MB Octal SPI PSRAM。价格从十几块到四十几块不等,外观几乎一模一样,但能力天差地别。
为什么 PSRAM 这么关键?因为 ESP32-S3 内部 SRAM 只有 512KB,扣掉系统占用和 Wi-Fi 协议栈,实际能给你用的也就 200-300KB。你要跑个 LVGL 界面,一个 320x240 的 RGB565 帧缓冲就要 150KB,双缓冲直接 300KB 没了。你要跑摄像头,一帧 JPEG 解码后的 RGB 数据轻松上兆。这时候没有 PSRAM,程序根本跑不起来,或者跑起来就各种内存分配失败。
Quad SPI PSRAM 和 Octal SPI PSRAM 的区别也要注意。Octal 的带宽是 Quad 的两倍左右,对于摄像头、高刷屏幕这类高带宽场景,Octal 是刚需。但 Octal PSRAM 会占用更多的 GPIO(通常占用 GPIO 33-37 这一组),如果你买的板子把这些脚引出来了,用了 Octal PSRAM 之后这些脚就不能再当普通 GPIO 用了。
采购时一定要看商品详情页有没有明确写“PSRAM 型号”和“PSRAM 容量”。只写“带 PSRAM”但不写容量和类型的,大概率是 2MB Quad,别抱太高期望。
1.3 USB 接口的坑:不是所有 Type-C 都能当 USB 用
这是第二个高频踩坑点。ESP32-S3 和 C3 的 Mini 开发板上通常有两个 Type-C 口,一个标着“USB”,一个标着“UART”或者“COM”。很多人以为两个口随便插哪个都能下载程序,结果插错了死活连不上。
实际情况是这样的:UART 口是通过板载的 USB 转串口芯片(常见的是 CH343、CP2102、FT231X 等)连接到芯片的 UART0,用于下载和串口通信。这个口在电脑上会识别为一个串口设备,需要装对应的驱动。USB 口是直接连接到芯片原生的 USB Serial/JTAG 控制器或者 USB OTG 引脚,不需要额外的转换芯片,但需要芯片固件支持。
对于 ESP32-C3,原生 USB 只是 USB Serial/JTAG,功能比较单一,主要用来下载和调试。对于 ESP32-S3,原生 USB 是完整的 OTG,可以当 Host 接键盘鼠标 U 盘,也可以当 Device 模拟各种 USB 设备。
采购时的建议是:优先选带原生 USB 口且引出了 USB OTG 引脚的板子。有些廉价板子为了省成本,只留了 UART 口,原生 USB 引脚根本没引出来,你想玩 USB Host 都没得玩。
1.4 一张可核对的采购对照表
说了这么多,直接上表最直观。下面这张表是我自己采购时用来核对的,你可以直接抄:
| 核对项 | ESP32-C3 Mini | ESP32-S3 Mini | 备注 |
|---|---|---|---|
| 核心架构 | 单核 RISC-V 160MHz | 双核 LX7 240MHz | S3 性能碾压 |
| 内部 SRAM | 400KB | 512KB | 实际可用都打对折 |
| PSRAM 支持 | 不支持 | 2/4/8MB 可选 | C3 无 PSRAM |
| 原生 USB | USB Serial/JTAG | USB OTG | S3 可做 Host |
| USB 转串口芯片 | CH343/CP2102 常见 | CH343/CP2102 常见 | 看具体板子 |
| GPIO 数量 | 约 22 个 | 约 36 个 | S3 多很多 |
| Wi-Fi | 2.4G b/g/n | 2.4G b/g/n | 一样 |
| BLE | 5.0 | 5.0 | 一样 |
| 典型价格 | 12-20 元 | 25-45 元 | 看 PSRAM 配置 |
| 适合场景 | 简单联网终端 | 摄像头/屏幕/USB | 按需选 |
这张表建议你采购时直接对着商品详情页一项一项核对,尤其是 PSRAM 和 USB 这两项,商家描述经常含糊其辞。
2. 采购前的需求拆解与选型逻辑
2.1 先问自己三个问题,再决定买哪块
我在帮朋友选板子的时候,从来不会直接推荐型号,而是先问三个问题。这三个问题回答清楚了,选型基本就定了。
第一个问题:你的项目需要 USB Host 吗?比如要接 USB 键盘、鼠标、U 盘、USB 摄像头、USB 转串口模块。如果需要,直接 S3,C3 想都别想。C3 的 USB 控制器不支持 Host 模式,这是硬件限制,没有任何变通办法。
第二个问题:你的项目需要 PSRAM 吗?判断标准很简单:你要跑屏幕(尤其是 LVGL)、要跑摄像头、要处理音频、要开大缓冲区做网络收发,这四种情况任意一种,就需要 PSRAM。不需要的话,C3 或者无 PSRAM 的 S3 都能用。
第三个问题:你的项目对 GPIO 数量有要求吗?如果你要接一堆传感器、按键、LED、继电器,C3 那 22 个 GPIO 扣掉启动脚、USB 脚、串口脚,实际能用的可能就十五六个,很容易不够。S3 的 36 个 GPIO 就宽裕很多。
这三个问题回答完,选型基本就锁定了。我见过太多人图便宜买了 C3,结果项目做到一半发现要加个屏幕,只能重新买 S3,前面的板子全吃灰。
2.2 PSRAM 容量怎么算才够用
PSRAM 买多大,这个问题很多人拿不准。买小了不够用,买大了浪费钱。我给你一个粗略的估算方法。
先算你的帧缓冲需求。如果你用 SPI 屏幕跑 LVGL,假设屏幕分辨率 320x240,颜色格式 RGB565(每像素 2 字节),单缓冲就是 320 × 240 × 2 = 153600 字节,约 150KB。LVGL 推荐双缓冲,那就是 300KB。如果你用 480x320 的屏幕,单缓冲 307200 字节约 300KB,双缓冲 600KB。
再算你的应用数据。如果你要缓存网络请求的响应、要存图片、要存音频采样,这些都要额外算。一个 1MB 的图片解码后可能变成 3-4MB 的 RGB 数据。
把这些加起来,再留 50% 的余量,就是你应该买的 PSRAM 容量。实际经验是:跑 LVGL 小屏,2MB 够用;跑 LVGL 大屏或者摄像头,4MB 起步;要跑摄像头加屏幕加网络,直接 8MB Octal。
这里有个细节要注意:ESP32-S3 的 PSRAM 是通过 SPI 总线挂在芯片上的,访问速度比内部 SRAM 慢不少。所以 PSRAM 适合放帧缓冲、大数组这类“容量优先”的数据,不适合放频繁访问的变量。中断服务程序里用的变量、DMA 描述符这些,必须放在内部 SRAM 里。
2.3 USB 转串口芯片的选择:CH343 vs CP2102 vs FT231X
板载的 USB 转串口芯片,常见的有三种:CH343(国产沁恒)、CP2102(Silicon Labs)、FT231X(FTDI)。这三种在采购时经常被忽略,但实际使用体验差别不小。
CH343 是近两年国产板子用得最多的,便宜,支持最高 6Mbps 波特率,Windows 10/11 免驱(系统自带驱动),Linux 内核 5.10 以上也自带驱动。缺点是某些老版本 Windows 或者精简版系统可能识别不了,需要手动装驱动。
CP2102 是老牌方案,稳定性好,驱动成熟,各大系统都支持。缺点是贵一点,而且假货多,有些廉价板子上的 CP2102 是翻新或者山寨的,会出现枚举失败、掉线等问题。
FT231X 是 FTDI 的方案,驱动最稳定,但价格最贵,一般只在稍微贵一点的板子上见到。如果你做工业级或者对稳定性要求高的项目,FTDI 是首选。
采购建议:如果只是自己玩,CH343 完全够用,免驱这点很省心。如果要做产品或者对稳定性要求高,优先选 CP2102 正品或者 FT231X。收到板子后第一件事就是插上电脑看设备管理器里识别成什么,如果识别异常,先装对应驱动再排查。
2.4 天线形式:PCB 天线还是外置天线
Mini 板子通常有两种天线形式:板载 PCB 天线和 IPEX 外置天线接口。有些板子两者都有,通过一个电阻或者电容选择。
PCB 天线的好处是方便,不用额外接天线,适合大多数室内场景。缺点是增益低,方向性差,信号弱的时候比较吃亏。IPEX 外置天线可以接高增益天线,信号覆盖好很多,适合穿墙、远距离、金属外壳内等场景。
采购时的建议是:优先选带 IPEX 接口的板子,哪怕你暂时用不上。因为 PCB 天线是焊死的,后期想改外置天线很麻烦。带 IPEX 的板子你可以先不接天线用 PCB 的,需要的时候再插一根外置天线,灵活性高很多。
3. 到手后的验证与实操流程
3.1 开箱第一件事:核对硬件配置
板子到手后,别急着写代码,先花十分钟把硬件核对一遍。这一步能帮你及早发现发错货、虚标配置等问题。
第一步,看丝印。板子正面或背面通常会印型号和配置,比如“ESP32-S3 Mini”“ESP32-C3 Mini”“N4R8”之类的。N4R8 表示 4MB Flash + 8MB PSRAM,N8R2 表示 8MB Flash + 2MB PSRAM。如果丝印和商品描述对不上,直接找卖家。
第二步,看芯片。用放大镜或者手机微距看主控芯片上的丝印,确认是 ESP32-S3 还是 ESP32-C3。有些不良商家会用 C3 冒充 S3,虽然概率不高,但核对一下没坏处。
第三步,看 USB 转串口芯片。找到那个小芯片,看丝印是 CH343、CP2102 还是 FT231X。这决定了你要装什么驱动。
第四步,看 PSRAM 芯片。如果板子带 PSRAM,通常会有一颗额外的芯片,丝印可能是 ESP-PSRAM64、APS6404 之类的。没有这颗芯片的,就是无 PSRAM 版本。
3.2 驱动安装与串口识别
核对完硬件,接下来装驱动。CH343 在 Windows 10/11 上一般免驱,插上就能在设备管理器里看到“USB-Enhanced-SERIAL CH343”之类的串口设备。如果没识别,去沁恒官网下载 CH343 驱动装上。
CP2102 需要装 Silicon Labs 的 CP210x 驱动,官网有下载。FT231X 需要装 FTDI 的 VCP 驱动。这两个驱动都比较成熟,装完重启一下设备管理器就能看到串口。
Linux 下这三种芯片基本都免驱,插上后用ls /dev/ttyUSB*或ls /dev/ttyACM*就能看到。如果看不到,用dmesg | tail看一下内核日志,通常会提示识别到了什么设备。
注意:ESP32-S3 的原生 USB 口在电脑上会识别为“USB JTAG/serial debug unit”,这个不是串口,是 JTAG 调试接口。如果你要用它下载程序,需要在 ESP-IDF 或者 Arduino 里选择对应的下载方式。很多人插了原生 USB 口发现没有串口,就是因为这个。
3.3 用 esptool 验证芯片和 PSRAM
驱动装好、串口识别之后,用 esptool 做一次芯片信息读取,这是最可靠的验证方式。esptool 是 ESP 系列的官方烧录工具,ESP-IDF 和 Arduino 都自带,也可以单独 pip 安装。
pip install esptool然后读取芯片信息:
esptool.py --port /dev/ttyUSB0 flash_idWindows 下端口换成COM3之类的。这条命令会输出芯片型号、Flash 大小、MAC 地址等信息。重点看芯片型号是不是 ESP32-S3 或 ESP32-C3,Flash 大小是不是和标称一致。
要验证 PSRAM,需要用 esptool 的read_mac或者更详细的命令。实际上 esptool 本身不直接读 PSRAM 大小,最可靠的方法是在 ESP-IDF 里跑一个例程,用esp_psram_get_size()函数读取。或者用 Arduino 的ESP.getPsramSize()函数。
// Arduino 下读取 PSRAM 大小 void setup() { Serial.begin(115200); Serial.printf("PSRAM Size: %d bytes\n", ESP.getPsramSize()); Serial.printf("Free PSRAM: %d bytes\n", ESP.getFreePsram()); }如果输出是 0,说明要么没有 PSRAM,要么 PSRAM 没被正确初始化。ESP32-S3 的 PSRAM 需要在 menuconfig 或者 Arduino 的板子选项里手动开启,默认可能是关闭的。
3.4 ESP-IDF 环境搭建要点
如果你用 ESP-IDF 开发,环境搭建这一步有几个坑要提前知道。
第一个坑是 Python 版本。ESP-IDF 对 Python 版本有要求,太新或太旧都可能出问题。目前 ESP-IDF 5.x 推荐 Python 3.8-3.11,Python 3.12 在某些版本上会有兼容性问题。建议用 pyenv 或者 conda 建一个独立的 Python 环境,不要用系统自带的。
第二个坑是工具链下载。ESP-IDF 安装时会下载一堆工具链,国内网络环境下可能很慢或者失败。可以设置镜像源加速,具体方法是在安装脚本里指定IDF_GITHUB_ASSETS环境变量指向国内镜像。
第三个坑是串口权限。Linux 下普通用户默认没有串口访问权限,需要把自己加到 dialout 组:
sudo usermod -a -G dialout $USER然后重新登录生效。Windows 下一般没这个问题,但如果串口被其他软件占用(比如串口助手没关),也会打不开。
3.5 Arduino 环境配置:板子包和 PSRAM 选项
用 Arduino 开发的话,需要先装 ESP32 的板子包。在 Arduino IDE 的“首选项”里添加开发板管理器网址:
https://espressif.github.io/arduino-esp32/package_esp32_index.json然后在开发板管理器里搜索“esp32”安装。安装完成后,在“工具”菜单里选择对应的板子。注意,ESP32-S3 和 C3 是不同的选项,不要选错。
选完板子后,重点看几个选项:
- PSRAM:选“OPI PSRAM”或“QSPI PSRAM”,根据你的板子实际配置选。选错了会导致 PSRAM 初始化失败。
- Flash Size:选和板子实际一致的,通常是 4MB 或 8MB。
- Partition Scheme:根据你的需求选,跑大程序要选带大 APP 分区的方案。
- USB CDC On Boot:如果要用原生 USB 口输出串口日志,这个要选“Enabled”。
这几个选项配错了,轻则功能不正常,重则程序跑不起来。我见过有人 PSRAM 选项选错,程序一直重启,排查了半天才发现是配置问题。
4. 常见问题与排查技巧实录
4.1 下载失败:从现象到原因的排查路径
下载失败是最高频的问题,现象通常是 esptool 报“Failed to connect”“Timed out waiting for packet header”之类的错误。排查路径我整理成了一个流程,按顺序走基本都能定位。
先确认串口选对了。设备管理器或者ls /dev/tty*看一下,确认你选的端口就是板子对应的端口。有时候电脑上插了好几个 USB 设备,端口号会变。
再确认驱动装对了。设备管理器里如果有黄色感叹号,说明驱动有问题。卸载设备重新插拔,或者手动指定驱动。
然后确认板子进入了下载模式。大部分 Mini 板子有自动下载电路,不需要手动按键。但有些板子自动下载电路设计有问题,需要手动操作:按住 BOOT 键,点一下 RST 键,松开 RST,再松开 BOOT。这时候板子进入下载模式,再点下载。
还要确认波特率。默认 921600 有时候太快,老电脑或者劣质 USB 线会丢包。降到 115200 试试,如果 115200 能下载,说明是线或者端口的问题。
最后确认 USB 线。有些 USB 线是“只充电不传数据”的,这种线插上电脑能供电,但识别不到设备。换一根确定能传数据的线试试。Type-C 线尤其要注意,很多便宜线只有充电功能。
4.2 PSRAM 识别不到:配置和硬件两头查
PSRAM 识别不到,表现为ESP.getPsramSize()返回 0,或者 ESP-IDF 里esp_psram_get_size()返回 0。这个问题分软件和硬件两种原因。
软件原因最常见的是配置没开。Arduino 下要在板子选项里选对 PSRAM 类型,ESP-IDF 下要在 menuconfig 里开启CONFIG_SPIRAM并选对模式。ESP32-S3 支持 Quad 和 Octal 两种 PSRAM,选错了就识别不到。
硬件原因可能是板子根本没焊 PSRAM 芯片,或者焊的是坏片。这种情况只能找卖家换货。还有一种情况是 PSRAM 芯片虚焊,表现为时好时坏,按压板子有时候能识别有时候不能。这种也要换货。
排查方法:先确认配置正确,配置没问题再怀疑硬件。如果配置正确但识别不到,用万用表量一下 PSRAM 芯片的供电引脚,正常应该是 3.3V。供电正常但识别不到,基本就是芯片或者焊接问题。
4.3 USB 口不识别:原生 USB 和转串口 USB 要分清
USB 口插上电脑没反应,先分清楚你插的是哪个口。
如果是 UART 口(转串口芯片那个),不识别通常是驱动问题。装对应驱动即可。CH343、CP2102、FT231X 的驱动前面说过了。
如果是原生 USB 口,不识别的原因就多了。首先,原生 USB 口要芯片固件支持才会枚举。如果芯片里是空片或者固件没开启 USB,插上电脑是没反应的。这时候你需要用 UART 口先烧一个开启 USB 的固件进去。
其次,原生 USB 口在 ESP32-S3 上默认是 USB Serial/JTAG 模式,这个模式下电脑会识别为 JTAG 设备而不是串口。如果你想要串口,需要在固件里配置成 USB CDC 模式。
还有一种情况是 USB 线的问题。原生 USB 口对线材质量要求比 UART 口高,劣质线可能导致枚举失败。换一根好线试试。
4.4 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决方式 |
|---|---|---|---|
| 下载失败,超时 | 串口选错/驱动没装/没进下载模式 | 核对端口、看设备管理器、手动进下载模式 | 选对端口、装驱动、手动按键 |
| PSRAM 识别为 0 | 配置没开/选错类型/硬件问题 | 检查 menuconfig 或 Arduino 选项 | 开启 PSRAM、选对类型、换货 |
| 原生 USB 不识别 | 固件不支持/线材问题/模式不对 | 换线、用 UART 口烧固件 | 烧开启 USB 的固件、换好线 |
| 程序频繁重启 | 内存不足/看门狗/电源问题 | 看串口日志的报错信息 | 开 PSRAM、优化内存、换电源 |
| Wi-Fi 连不上 | 天线问题/信道问题/密码错误 | 靠近路由器试、换信道 | 接外置天线、换信道 |
| 串口乱码 | 波特率不对/晶振问题 | 换波特率试 | 统一波特率、检查晶振 |
| 板子发烫 | 短路/电源问题/芯片损坏 | 断电检查、量电压 | 排查短路、换板子 |
这张表建议收藏,遇到问题先对照排查,能省不少时间。
4.5 几个容易被忽略的实操心得
第一个心得:买板子的时候多买一块备用。尤其是做项目的时候,板子坏了或者配置不对,有备用板能立刻替换,不耽误进度。Mini 板子便宜,多买一块成本很低。
第二个心得:USB 线要专门准备几根好的。劣质 USB 线是很多玄学问题的根源。建议买几根带屏蔽、线径粗的线,专门用于开发板。充电线和大厂手机附带的线通常质量不错,可以拿来用。
第三个心得:PSRAM 买大不买小。差价可能就几块钱,但后期不够用的时候,换板子的成本远不止几块钱。尤其是做摄像头、屏幕类项目,直接上 8MB Octal,省心。
第四个心得:原生 USB 口和 UART 口都引出来的板子优先。有些板子只引出一个口,用起来受限。两个口都有的板子,调试和功能开发都方便。
第五个心得:收到板子先跑一遍官方例程。ESP-IDF 和 Arduino 都有 blink、Wi-Fi scan 之类的例程,跑一遍能快速验证板子基本功能是否正常。别等写了半天代码才发现板子有问题。
5. 采购清单模板与下单核对
5.1 一份可以直接抄的采购清单
下面这份清单是我自己采购时用的,你可以直接抄,按需删减。
必买项:
- ESP32-S3 Mini 开发板 × 2(一块用一块备),选 8MB Flash + 8MB Octal PSRAM 版本,带原生 USB 口和 IPEX 天线接口
- ESP32-C3 Mini 开发板 × 1(如果项目需要简单联网终端),选 4MB Flash 版本
- USB 数据线 × 3(Type-C 转 USB-A,带数据传输功能,线径粗的)
- USB 转串口模块 × 1(CH343 或 CP2102,备用调试)
- 面包板 × 1
- 杜邦线若干(公对公、公对母、母对母各一组)
选买项:
- IPEX 外置天线 × 2(信号弱的环境需要)
- USB OTG 转接头 × 1(Type-C 转 USB-A 母口,玩 USB Host 用)
- 散热片 × 若干(长时间高负载跑的时候贴芯片上)
工具项:
- 万用表 × 1(排查供电和短路)
- 逻辑分析仪 × 1(调试 SPI、I2C、UART 时序)
- USB 电流表 × 1(看板子功耗,排查电源问题)
5.2 下单前的最后核对
下单前,把商品详情页打开,对着下面这几项逐一核对:
- 芯片型号:确认是 ESP32-S3 还是 ESP32-C3,别买错
- Flash 大小:4MB 还是 8MB,按需选
- PSRAM 大小和类型:2MB Quad / 4MB Quad / 8MB Octal,按需选
- USB 口数量:几个 Type-C,分别是什么功能
- 天线形式:PCB 天线还是 IPEX,还是两者都有
- 引脚是否引出:尤其是 USB OTG 引脚、PSRAM 占用的引脚
- 板子尺寸和孔位:确认能装进你的外壳或者固定方式
- 发货地和物流:急用的话选国内发货
这几项核对完,基本不会买错。如果商品详情页写得含糊,直接问客服,问清楚再下单。别嫌麻烦,买错了退换货更麻烦。
5.3 关于价格的一些经验
ESP32-S3 Mini 的价格区间很大,从十几块到四十几块都有。价格差异主要来自几个方面:PSRAM 配置、USB 转串口芯片、板子做工、品牌溢价。
我的经验是:不要买最便宜的,也不要买最贵的。最便宜的那种通常是缩水版,PSRAM 可能是 2MB Quad 甚至没有,USB 转串口芯片可能是山寨的,用起来问题多。最贵的往往是品牌溢价,实际配置和中等价位的差不多。
中等价位(25-35 元)的 S3 Mini,通常配置比较均衡,8MB Flash + 8MB Octal PSRAM,CH343 或 CP2102 转串口,做工也过得去。这个价位是我比较推荐的。
C3 Mini 的价格区间小一些,12-20 元。C3 本身成本低,配置差异主要在 Flash 大小和转串口芯片。选 4MB Flash + CH343 的版本就够用。
买的时候可以看看销量和评价,尤其是带图评价,能看出板子的实际做工。有些卖家会用官方图,实际发货的板子和图不一样,看买家秀更靠谱。
5.4 收到货后的验收流程
收到货后,按这个流程验收,有问题及时找卖家:
第一步,检查包装和外观。板子有没有明显磕碰、焊点有没有虚焊、元件有没有缺失。
第二步,插上电脑看识别。UART 口插上应该能识别到串口,原生 USB 口插上应该能识别到 JTAG 或串口设备。识别不到先排查驱动和线材。
第三步,用 esptool 读芯片信息。确认芯片型号、Flash 大小和标称一致。
第四步,烧一个简单例程。blink 或者 Wi-Fi scan 都行,能跑起来说明基本功能正常。
第五步,验证 PSRAM。跑前面说的 PSRAM 读取代码,确认容量和标称一致。
这五步走完,板子基本就验收完了。有问题的话,前两步就能发现大部分。及时联系卖家换货,别拖。
6. 一些延伸的选型思考
6.1 什么时候该考虑其他型号
S3 和 C3 不是万能的,有些场景下其他型号更合适。
如果你需要以太网,ESP32 经典款或者 ESP32-S3 加 PHY 芯片更合适。C3 没有以太网 MAC,做不了有线网络。
如果你需要极低功耗,ESP32-C6 或者 ESP32-H2 更合适。C6 支持 Wi-Fi 6 和 Thread,H2 支持 Thread 和 Zigbee,功耗都比 S3 和 C3 低。
如果你需要双频 Wi-Fi,ESP32-C5 是唯一选择。S3 和 C3 都只支持 2.4G。
如果你需要更强的 AI 算力,ESP32-P4 是新一代选择,双核 RISC-V 加 AI 扩展,性能比 S3 强不少。不过 P4 目前生态还在完善中,量产项目要谨慎。
选型的时候,先把需求列清楚,再对照各型号的特性选。别盲目追新,也别死守老型号。适合的才是最好的。
6.2 关于开发框架的选择
S3 和 C3 都支持 ESP-IDF 和 Arduino 两种主流框架,选哪个看你的需求和习惯。
ESP-IDF 是官方框架,功能最全,性能最好,适合做产品或者对性能要求高的项目。缺点是学习曲线陡,配置项多,新手容易懵。
Arduino 上手快,生态丰富,适合快速原型开发和小项目。缺点是封装层次高,有些底层功能不好控制,性能也比 ESP-IDF 差一点。
我的建议是:新手先用 Arduino 入门,把板子玩起来,再逐步学 ESP-IDF。两个框架不是对立的,Arduino 底层也是跑在 ESP-IDF 之上的。学会了 Arduino,再学 ESP-IDF 会容易很多。
还有一个选择是 PlatformIO,它支持 ESP-IDF 和 Arduino 两种框架,还能管理依赖,适合稍微正式一点的项目。VS Code 加 PlatformIO 插件,开发体验比 Arduino IDE 好不少。
6.3 采购渠道的一些观察
采购渠道主要分几类:官方旗舰店、第三方店铺、二手平台。
官方旗舰店(比如乐鑫官方店)价格稍贵,但品质有保障,适合做产品或者对品质要求高的。第三方店铺价格便宜,但品质参差不齐,需要仔细挑。二手平台价格最低,但风险也最大,适合有经验的玩家淘。
我的经验是:做项目用官方店或者信誉好的第三方店,玩票可以用二手。不管哪个渠道,收到货都要按前面的验收流程走一遍,有问题及时处理。
买的时候注意看店铺评分、销量、评价。评分低于 4.8 的谨慎,销量太低的谨慎,评价里差评多的谨慎。尤其是那种评价里说“PSRAM 识别不到”“下载失败”的,直接避开。
最后说一句,板子这东西,一分钱一分货。省下的几块钱,可能会在调试上花掉你几个小时。时间比板子贵,选靠谱的渠道和配置,把精力留给真正的开发工作。