先说个真实的采购事故。上个月有个朋友照着别人推荐买了块 ESP32-S3 Mini结果到货发现是 8MB Flash 无 PSRAM 版本跑 LVGL 界面一开就内存不足又有人在群里吐槽 C3 Mini 插上电脑后设备管理器里一直显示“Unknown USB Device”折腾一晚上最后发现是用了根只能充电不能传数据的线。这两个问题全都是在“怎么买”这个环节埋下的雷。这篇采购笔记就干一件事把 ESP32-S3 Mini 和 C3 Mini 从芯片差异、PSRAM 需求、USB 接口形态到最终下单前逐项核对的采购单一条条捋清楚。不管你是第一次买板子的新人还是已经踩过坑想换型号的老手照着这张单子核对基本不会买错。1. 先分清两颗芯片的底子S3 和 C3 到底差在哪很多人一看“Mini”就以为只是大小区别实际上 Mini 是第三方厂商合宙、微雪、Seeed、WeAct 等在官方模组或裸芯片基础上做出来的紧凑型开发板去掉冗余引脚、缩小面积但同一颗芯片的本质能力不会变。所以选 S3 Mini 还是 C3 Mini本质上是选 ESP32-S3 还是 ESP32-C3。1.1 芯片底子不同S3 是“全能选手”C3 是“低功耗轻骑兵”ESP32-S3 是双核 Xtensa LX7 架构最高主频 240MHz带 SIMD 向量指令适合处理图像、音频、FFT 这类计算ESP32-C3 是单核 RISC-V最高主频 160MHz定位是低成本、低功耗的 WiFi/BLE 模组。两者的 WiFi 和 BLE 都是 802.11 b/g/n BLE 5这部分日常使用几乎没差别。最关键的差异在内存。C3 内部 SRAM 是 400KB 左右而且不支持外挂 PSRAM也就是说 C3 Mini 不管哪个版本都不可能通过外接内存芯片扩容。S3 内部 SRAM 约 320KB部分被 cache 占用但它带 PSRAM 控制器可以外挂 Quad/Octal PSRAM常见 Mini 板配置是 2MB、4MB、8MB。这个差异直接决定了你能不能跑 LVGL 界面、摄像头、TTS 这类吃内存的应用。其次差异在 USB 外设。S3 带完整的 USB-OTG 控制器既能当设备也能当主机可以做虚拟串口、HID 键鼠、U 盘MSC甚至 USB 主机去读外部 U 盘C3 只有官方叫USB-Serial-JTAG的外设只能用于烧录、日志输出和 JTAG 调试做不了 USB 主机。这一点在后面的 USB 章节会展开细讲。1.2 Mini 版型的真正含义不是官方命名是第三方紧凑方案乐鑫官方并没有“Mini”这个产品线市面上的 S3 Mini、C3 Mini 都是第三方根据自己的布局做的紧凑开发板。不同家的 Mini 区别非常大有的用 WROOM 模组有的直接板载裸芯片加 Flash/PSRAM 颗粒有的引出完整 GPIO有的为了小巧砍掉了部分引脚有的是 Type-C 直连原生 USB有的还额外挂了 CH340/CP2102 串口芯片。这就意味着买 Mini 板子不能只看“Mini”两个字必须看商品详情页或者开源原理图。我在采购单环节会专门说怎么向客服要原理图、拿到后核对哪几个关键点。否则你买回来的 S3 Mini 很可能 USB 连接方式、PSRAM 配置、天线形式都跟别人手里的不一样照着别人的教程操作就全对不上。这里还有个常见误解很多人以为 C3 Mini 是 S3 Mini 的“低配版”实际它俩是不同芯片、不同定位的两条产品线。做传感器采集、简单的 home assistant 设备、低功耗电池应用C3 Mini 足够了做带屏设备、语音交互、图像相关必须 S3 系列。先想清楚应用场景再往下看否则后面全是纠结。2. PSRAMS3 Mini 选购的第一个岔路口PSRAM 中文叫伪静态随机存储器本质是“挂在外部的 RAM”通过 SPI 接口和主控通信速度比内部 SRAM 慢但容量大得多。ESP32-S3 对 PSRAM 的支持是硬件级的IDF 里也有完善的内存管理机制会用heap_caps把不同内存分开管理。可以这么理解内部 SRAM 是办公桌速度快但地方小PSRAM 是仓库地方大但取东西要走一段路。对小内存应用办公桌够用对大内存应用没有仓库就干不了活。2.1 没有 PSRAM 会怎样两张表说清楚需求边界先给结论以下场景强烈建议买带 PSRAM 的 S3 Mini应用场景原因LVGL 图形界面尤其 320x240 以上分辨率显存、控件对象、字体缓冲动辄几十 KB 到几百 KB摄像头OV2640/OV5640帧缓冲需要大块连续 RAM缩略图也要缓冲JPEG 解码/TTS/音频播放编解码器内部需要大缓冲内部 SRAM 非常紧张JSON 解析、TLS 握手、OTA 下载这些库的堆占用随数据包大小线性增长ESP-DL / TensorFlow Lite Micro模型和中间张量动不动上百 KB不需要 PSRAM 的场景纯 GPIO 控制、简单 TCP/UDP 上报、低功耗传感器采集、蓝牙广播、跑 ESPHome 做温湿度计这类应用内部 SRAM 完全够用买无 PSRAM 版本也能跑得挺顺。那 C3 呢C3 没有 PSRAM 控制器所以C3 Mini 只存在于“无 PSRAM”这一个选项别指望“买个带 PSRAM 的 C3”这种操作不存在。很多新人在淘宝上看到“C3 Mini 4MB Flash”就以为内存也大其实 Flash 是存程序的不是运行内存这个要区分清楚。2.2 带 PSRAM 的 S3 Mini 怎么选颗粒与封装市面上常见的 S3 Mini 有两种 PSRAM 形态一种是直接用 S3-WROOM-1 模组PSRAM 焊在模组内部用户不用操心另一种是板载裸 S3 芯片外挂一颗 PSRAM 颗粒比如 APS64048MB Quad。从维修和可靠性角度看模组封装更稳从成本和灵活性看裸芯片加外挂颗粒的方案更便宜也让玩家可以自己换容量。选型时注意三件事。第一PSRAM 容量不是越大越好Mini 板布局紧凑Octal PSRAM8 线虽然带宽高但占用的引脚和控制逻辑更复杂很多 Mini 板只支持 Quad PSRAM买的时候看清描述是“Quad”还是“Octal”。第二PSRAM 的工作频率需要和 Flash 共用 SPI0/SPI1 总线跑太高会不稳定常见安全速度是 80MHz买回来别一上来就超频。第三看清楚有没有“PSRAM 版本”和“无 PSRAM 版本”之分同一个型号常有 8MB Flash 2MB PSRAM、16MB Flash 8MB PSRAM、纯 8MB Flash 三个 SKU标题稍微不注意就买错。我给一个保守但实用的选择建议如果预算允许S3 Mini 优先选 16MB Flash 8MB PSRAM。Flash 大一点是为了 OTA 和文件系统8MB PSRAM 基本覆盖所有日常场景包括 LVGL 和低分辨率摄像头。2MB PSRAM 也能用但跑 LVGL 的时候剩余空间有限后续扩展余地小。2.3 如何验证你买到的 PSRAM 是真八爪还是假八爪这一步很多人忽略但真的很重要。先看系统启动日志烧入固件后打开串口监视器ESP-IDF 启动时如果有PSRAM: SPI SRAM ...这一行并在末尾显示 PSRAM 容量说明已被正确初始化。Arduino 环境更简单直接打印void setup() { Serial.begin(115200); delay(500); if (psramFound()) { Serial.printf(PSRAM total: %d bytes\n, ESP.getPsramSize()); } else { Serial.println(PSRAM not found!); } } void loop() {}如果psramFound()返回 false先检查两个地方一是编译选项里有没有开启 PSRAM 支持在 Arduino IDE 的 Board 设置里找 “PSRAM” 相关选项选 “Enabled”在 IDF 里是Component config → ESP PSRAM → Support for external, SPI-connected RAM。二是硬件本身有的第三方板子丝印写着 8MB PSRAM实际贴的是劣质颗粒或没贴这种情况最坑。我处理过一块“随机花屏”的板子现象是跑 LVGL 时偶尔显示碎裂、系统重启用heap_caps_get_total_size(MALLOC_CAP_SPIRAM)检查容量是对的但跑内存读写测试时偶发错误。最后定位是 PSRAM 颗粒供电脚虚焊拿烙铁补焊后稳定。这个经验告诉各位PSRAM 一旦出问题先怀疑供电和焊接再怀疑颗粒本身。新到手的板子可以跑一遍idf.py monitor看启动日志再用大块ps_malloc做读写校验能提前发现多数硬件问题。3. USB 形态最容易买错、也最容易踩坑的细节如果说 PSRAM 决定了“能不能跑大应用”那 USB 就决定了“你插上电脑后看到的是什么”。S3 和 C3 的 USB 能力完全不同第三方板子又经常在这个地方做不同设计所以这里值得单独开一章。很多人插上板子没反应就是没搞明白自己手上的板子到底是“原生 USB”还是“串口转 USB”。3.1 直连 USB 与串口转 USB 的区别ESP32-S3 的原生 USB 走的是 GPIO19D-和 GPIO20D直接接 Type-C/Micro-USB 座子上电后电脑会识别为一个 USB 设备。这个原生 USB 通过 TinyUSB 库可以做 CDC 虚拟串口、HID 键鼠、MSC 存储功能很丰富。但 S3 原生 USB 是 Full Speed 12Mbps不是 High Speed 480Mbps很多人以为“USB 口下载肯定很快”实际只是比 UART 快别指望达到 U 盘级别的速度。ESP32-C3 的原生 USB 是 USB-Serial-JTAG同样直连 GPIO18/GPIO19Windows 10 以上系统免驱识别为 COM 口也能烧录和看日志但没有 USB 主机能力接不了 U 盘和键盘。这是 C3 和 S3 在 USB 上的最大差距。另一个常见形态是板载 USB-UART 桥接芯片比如 CH340、CP2102、FT232R。这种板子的 Type-C 口实际连的是串口芯片再通过串口芯片连到主控的 UART 引脚。电脑上看到的是“COM 口USB-SERIAL CH340”之类的名字。它的好处是自动下载电路成熟按一下复位就能进入烧录模式IDE 里配置好直接点烧录不用每次手动按 BOOT坏处是占用了一个 UART且数据走的是串口协议速度上限取决于芯片和波特率一般 1.5Mbps 已经很顶了。怎么区分买到的是哪种两个办法。第一看商品标题和详情页有没有写“原生 USB”“Type-C 直连”“USB-Serial-JTAG”这些字样。第二拿到板子后插上电脑看设备管理器里出现的设备是“COM 口”还是“USB Serial/JTAG Controller”之类的 USB 设备。如果你发现板子同时支持两种有些 S3 Mini 既接出原生 USB 又带串口芯片那就更要注意看原理图搞清楚哪个口对应哪个功能。3.2 正反插、CC 电阻与数据速率Type-C 的底层逻辑开发板上的 Type-C 口正反插都能用是因为 Type-C 连接器有对称的 D/D- 引脚。它靠 CC1/CC2 两根配置通道引脚识别插入方向Source 端供电方比如充电器/电脑在 CC 线上有上拉电阻 RpSink 端用电方比如开发板在下拉电阻 Rd插反时系统通过检测 CC1/CC2 上的电压等级判断方向再把 D/D- 和 VBUS 切换到对应的一组触点。所以严格说不是“正负极自动改变”而是连接器设计成对称结构加上 CC 检测逻辑完成内部通路切换。很多充电线“能充电但不能传数据”是因为里面根本没接 D/D- 数据线CC 电阻甚至被简化成直接短接导致识别不到设备。插开发板时用短而粗的数据线不要用十几米的充电线是排查 USB 识别问题的第一准则。再延伸一个点很多人会把“USB 串口”和“串口协议”的速度搞混。CH340 这类芯片走的是 USB 协议但出来的数据是 UART 格式波特率由固件决定而 S3/C3 的原生 USB CDC 是真正的 USB 协议数据不经过 UART速度快很多也没有波特率匹配问题。如果你经常下载大固件原生 USB CDC 的体验会明显好于 CH340。3.3 用 USB 抓包排查“识别不到板子”的问题热词里有很多关于 USB 抓包、USB 枚举失败的问题。开发板插上后设备管理器出现“Unknown USB Device (Device Descriptor Request Failed)”本质是主机在枚举阶段没有拿到设备的描述符。可能原因包括D/D- 接反、线材只供电无数据、USB 座的 D/D- 引脚虚焊、芯片没有进入 USB 模式、供电电流不足。排查顺序我建议是先换线再换电脑的另一个 USB 口优先机箱后置口避免前置口供电不足然后按住 BOOT 键再插电最后看原理图核对 D/D- 连线。如果还不行可以拿逻辑分析仪或示波器抓 D/D- 波形正常枚举时主机先拉高 D 检测设备连接然后有低速的 SETUP 包交互抓不到任何波形基本可以断定是硬件连线问题。如果是 Windows 7 这类老系统常见坑是缺少 USB CDC 驱动系统里设备显示感叹号。用 Zadig 强制安装 WinUSB 或 usbser 驱动能临时解决但最省心的方式还是换用板载串口芯片的版本CH340 的驱动在 Win7 下非常成熟。如果你在虚拟机里调试比如 VirtualBox记得装增强功能并开启 USB 控制器老系统镜像还可能出现“无法识别 USB 设备”的老毛病基本也是驱动问题跟开发板本身没关系。4. 一张可对着一项项核对的采购清单前面说的都是原理这一章直接给结论。我每次给自己或帮朋友买板子都会把参数列成一张表对着商品页一项项核对。下面这张表是基于当前市面上常见第三方 Mini 板的普遍配置做的参考具体每个店铺可能还有差异但核对项不变。4.1 核对单表格型号、引脚、Flash、PSRAM、USB、天线核对项S3 Mini 推荐选择C3 Mini 推荐选择备注芯片型号ESP32-S3双核 240MHzESP32-C3单核 160MHzS3 可跑大内存应用C3 做轻量应用Flash 容量16MB 优先至少 8MB4MB 足够2MB 太紧影响 OTA 和文件系统PSRAM8MB Quad 优先最低 2MB不支持没有该选项C3 没有 PSRAM 控制器USB 形态原生 USB-OTG 优先或 USB串口双形态原生 USB-Serial-JTAG 优先确认 D/D- 是否直连主控天线PCB 天线或 IPEX 座均可同左IPEX 方便外接天线但占空间排针间距2.54mm 双排针同左方便插面包板板载串口芯片看需求新手建议有 CH340有则更好没有也够用串口芯片简化下载流程工作电压/电流3.3V注意峰值电流3.3V功耗更低S3 WiFi 发射时电流可能到几百 mA开源资料原理图、PCB、示例代码要齐全同左没有原理图的板子慎选兼容环境Arduino、ESP-IDF、ESPHome、MicroPython同左确认有没有对应的 boards 定义价格预期约为同规格 C3 的 1.5~2 倍更便宜价格浮动大以实际为准下单前把这几个参数在商品详情页里找一圈找不到就问客服。很多页面只会写“超低功耗”“Type-C 接口”这种营销话术不会主动告诉你有没有 PSRAM、是原生 USB 还是串口桥接。问客服的时候可以直接说“请发一下这个板子的原理图我想确认 USB 是否直连 GPIO19/GPIO20PSRAM 用的是哪个型号。”客服如果连原理图都拿不出来这种店我一般直接跳过。4.2 下单前最后五项检查除了表格里的硬参数还有五个软性检查项是这些年的血泪教训。第一确认板子的 Flash 型号可以识别。有些劣质板子用的 Flash 颗粒是白牌或二手拆机片容量可能被改标。到手后用 esptool 读一下比什么都可靠python -m esptool --port COM3 flash_id它会返回厂商 ID 和容量信息跟标称对不上直接退。第二确认下载和复位按键的位置。Mini 板面积小有些板子把 BOOT 键放在 Type-C 口旁边插线后手指不好按有些干脆没有 RST 键。新手最好不要选没有独立 RST/BOOT 按键的板子调试的时候会非常痛苦。第三确认排针是“已焊好”还是“需要自己焊”。很多裸板为了节省运输体积排针不焊你买回来还要自己动手。如果你没有烙铁一定选“已焊排针”的版本或者单独备注让店家焊好。第四确认板载 LDO 的型号和输入电压范围。Mini 板多用 ME6211、RT9013 这类小封装 LDO输入电压范围通常到 5.5V直接从 USB 供电没问题。但如果你想用锂电池供电得看有没有充电管理电路没有的话要自己做降压。第五确认外壳。如果你要做成品项目提前看有没有配套外壳。Mini 板尺寸各家不统一随便买的外壳大概率不匹配。这步放在下单前考虑能省掉后面 3D 打印反复改尺寸的时间。4.3 到货后的验货清单与首次上电流程板子到手别急着焊排针先按下面的流程验货。先看丝印。S3 模组上的丝印应该有ESP32-S3-WROOM-1和模组型号批次如果是裸芯片加外挂 PSRAM板上会多一颗标着 APS6404、PN25F 之类的小芯片。拍照存档后续如果出问题可以对照。然后按住 BOOT 键不松手把 Type-C 数据线插到电脑。这时候不要先插别的 USB 设备单独插它。打开设备管理器看枚举出的是什么设备。S3 原生 USB 可能出现“USB JTAG/serial debug unit”或“ESP32-S3”相关的条目C3 则是 USB-Serial 设备如果是 CH340 桥接会出现 COM 口。确认枚举成功后用 esptool 读芯片信息python -m esptool --port COM3 chip_id python -m esptool --port COM3 read_macchip_id能看出是 S3 还是 C3read_mac能配合包装上的 MAC 验证是不是原板。接着烧一个点亮 LED 的例程确认 IO 正常。最后按 2.3 节的方法检查 PSRAM全部通过再动手焊排针。5. 常见问题速查来自群友的真实踩坑记录这一章整理我在各种群里看到的典型问题做成速查表。每一个都有人真实遇到过照着处理基本能解决。现象可能原因处理办法插上 USB 完全没反应灯不亮线是充电线无数据线USB 口供电不足换数据线换后置 USB 口再按住 BOOT 插设备管理器显示 Unknown USB Device枚举失败D/D- 接反或虚焊供电不足换线/换口检查原理图逻辑分析仪抓波形C3 Mini 烧录时提示 Could not open portCOM 口被占用没有进入下载模式驱动不对拔掉所有占用串口的软件按住 BOOT 再插重装 CP210x/CH340 驱动S3 跑 LVGL 随机重启PSRAM 未稳定SPI 时钟过高供电电流不足检查 PSRAM 焊点降 SPI 时钟到 80MHz换供电电源psramFound()返回 false编译没开 PSRAM硬件没贴颗粒Board 设置里开 PSRAM看启动日志确认容量USB CDC 在 Win7 下识别不了缺少 usbser 驱动Zadig 装 WinUSB或者换串口芯片版本开着 IDE 下载时其他软件占用 COM 口串口监视器未关闭关掉所有串口监视器在设备管理器确认占用虚拟机里 USB 透传后客户机没反应客户机缺驱动或没有开启 USB 控制器装客户机增强功能开 USB 2.0/3.0 控制器6. 一个容易被忽略的扩展方向原生 USB 的玩法空间既然你已经买了带原生 USB 的 S3 Mini这里多说一句它的延展价值。ESP32-S3 的原生 USB-OTG 配合 TinyUSB 库可以让你把板子变成任意 USB 设备USB 转串口、USB HID 键盘、USB Mass Storage。比如做自动化测试的时候可以用 Python 的 pyusb/pyserial 直接跟板子通信甚至让 S3 模拟一个 USB-SPI 桥接器去控制外部 SPI 设备省掉逻辑分析仪以外的转接工具。这部分官方 IDF 提供了tinyusb组件STM32 上你怎么琢磨 USB 描述符和枚举在这里同一套逻辑都适用只不过 Espressif 把底层封装得更友好。C3 就没有这个空间了它的 USB-Serial-JTAG 只能用于烧录和日志。所以如果你预感自己迟早会玩到 USB 设备模拟直接买 S3 Mini别在 C3 上省钱。我个人在实际采购中的习惯是先写一行需求摘要比如“做 3.5 寸屏幕的温湿度计需要 LVGL”然后对着采购单把 PSRAM、Flash、USB 形态三项标出来最后才进店搜。这么一来不管商家页面写得天花乱坠都影响不到我的选择。拿到板子后别急着焊排针先插电用 esptool 读一次芯片信息和 Flash 容量把照片发到手机存好。这些操作加起来不到十分钟却能帮你避开后面一整周的调试噩梦。
阅读完成 · 觉得有帮助?