ESP32-S3 Mini 和 C3 Mini 怎么买?从 PSRAM、USB 到一张可核对的采购单

ESP32-S3 Mini 和 C3 Mini 怎么买?从 PSRAM、USB 到一张可核对的采购单

给一台桌面语音终端买开发板:接麦克风和扬声器,用 Wi-Fi 收发音频,再接一块 320×240 彩屏。商品页同时出现"C3 SuperMini""S3 Mini 8 MB""S3 N4R2",都带 USB 接口,似乎只是性能和价格不同。

先看一个会改变购买决定的事实。乐鑫官方 ESP32-S3-MINI-1 有两种具体配置:N8 是 8 MB Flash、无 PSRAM;N4R2 是 4 MB Flash、2 MB PSRAM。 如果瓶颈在画面和音频的运行缓存,Flash 数字更大的 N8 并不能替代 N4R2。这两个都是 S3,也都叫 MINI,选错甚至不需要跨到 C3。S3-MINI-1 数据手册,型号对比

下面沿这台假设终端完成一次选型:先确定买的是哪种配置,再计算需要什么内存,最后核对 USB、引脚和板上供电。文中的容量计算是给定条件下的估算,板卡事实来自官方资料;没有据此宣称某块实物已通过音频、显示或续航测试。

1. 把"Mini"换成能查到资料的完整型号

ESP32-C3、ESP32-S3 是芯片系列;ESP32-S3-MINI-1 是模组系列;焊了模组、USB 接口、稳压器和排针的整块 PCB 才是开发板。也有开发板直接使用芯片,不经过带屏蔽罩的模组。

三层分别决定不同事情:芯片决定有没有某种控制器,模组决定实际装了哪种存储器及天线,开发板决定这些能力有没有接到你能用的位置。"SuperMini"之类商品名称不能代替这三层资料。

这张表可以作为查看商品详情时的第一张对照表。它比较的是确定配置,不意味着所有同名小板都采用它们。

核对对象 Flash PSRAM 购买时能得出的结论
ESP32-S3-MINI-1-N8 模组 8 MB 无 程序、资源存储容量较大;不能因此假定运行缓存更多
ESP32-S3-MINI-1-N4R2 模组 4 MB 2 MB 可使用外部 RAM;还需核算程序、资源和升级分区能否装下
ESP32-S3-DevKitC-1-N8R8,官方指南列出的板卡配置 8 MB 8 MB 搭载 WROOM-1-N8R8,不能写成 MINI-1-N8R8
只写"C3/S3 SuperMini"的商品 未确定 未确定 先取完整型号、原理图及对应板本,再进入比较

前两行来自 MINI 模组的型号表;第三行来自官方 DevKitC-1 v1.0 指南的订购表,它是具体参考板,不是对所有 DevKitC 或第三方板的概括。DevKitC-1 v1.0 订购信息

N8R8 可以在这个完整料号中读成 8 MB Flash 加 8 MB PSRAM,但不能拿这个后缀去拼造另一个模组系列不存在的配置。小批购买至少应让商品选项、实物模组丝印和资料中的型号表相互对应;卖家无法提供完整型号时,容量就仍然是待确认项。

2. 彩屏和音频会占多少运行内存?

这台假设终端最容易先碰到的是 RAM。Flash 用来保存固件和资源,RAM 用来承载运行中的数据;下载得进去的图片,解码后未必放得进当前可用内存。

先给屏幕规定一个计算条件:320×240 像素,RGB565 每像素 2 字节,使用完整帧缓冲。

text 复制代码
单帧:320 × 240 × 2 = 153,600 字节 = 150 KiB
双帧:153,600 × 2 = 307,200 字节 = 300 KiB

这只是像素本身,不包括界面对象、字体缓存和图片解码临时空间。也不是所有显示方案都必须分配双全帧:如果屏幕控制器和驱动允许分块刷屏,假设只保留 320×20 像素的一块缓冲,就是 12,800 字节,约 12.5 KiB。代价要看刷新方式、总线带宽和界面效果,不能把"小屏"直接等同于小内存,也不能把"彩屏"直接等同于必须双全帧。

再规定一条音频支路:16 kHz、单声道、16 bit PCM,每秒数据量为:

text 复制代码
16,000 × 1 × 2 = 32,000 字节/秒
保留 500 ms:16,000 字节,约 15.6 KiB

如果输入和输出都采用上述格式、各保留 500 ms,就是 32,000 字节;实际设备的播放采样率、声道数和缓存时长可能不同,必须分别算。压缩后的网络音频占多少,与送给采集或播放链路的 PCM 占多少也不能混为一个数字。

在"双全帧加两条上述 PCM 缓冲"这个设计中,两项合计已是 339,200 字节,约 331.25 KiB。此时尚未加入 Wi-Fi、TLS、任务栈、编解码状态和其他临时分配。C3 的片内 SRAM 标称 400 KB,S3 为 512 KB;这些是芯片总量,不是开机后能全部交给应用分配的堆。C3 芯片资料、S3 芯片资料

因此这里更合理的候选是带 PSRAM 的 S3,但理由是这份缓存设计,而非"语音项目只能用 S3"。若把彩屏换成只显示状态的单色屏,采用分块传输、短音频缓存,并移除本地唤醒模型,内存和计算条件都变了,C3 应重新进入候选。它也有 I2S,不能把"不适合本方案"写成"不能处理任何音频"。C3-MINI-1 外设资料

3. 买到 PSRAM 后,仍然要给内部 RAM 留位置

PSRAM 给大型缓存增加了空间,但应用不能只看"总空闲内存"这个数字。以 ESP-IDF v5.5.2 的 S3 文档为准,外部 RAM 的使用受缓存和分配策略约束;DMA 描述符不能放在 PSRAM,默认任务栈也使用内部内存。部分驱动对 DMA 数据缓冲另有要求,要按实际驱动及 SDK 版本核对。S3 外部 RAM 支持与限制

对采购的直接影响是:8 MB PSRAM 并不自动解决内部 DMA 内存不足;把队列放大,也不等于音频就会更连续。采购单需要同时写"大块缓存预计用多少"和"内部内存需留给谁",而不是只填一个 PSRAM 容量。

首块样板到手后,应在目标固件和配置下确认 PSRAM 是否识别、实际可分配多少,并在显示刷新与音频收发同时发生时观察内部可用堆、最大连续可分配块和分配失败。这里描述的是验收动作,并非本文已经完成的测试。只看到启动日志中的 PSRAM 容量,尚不能证明高峰运行时的分配正确。

反过来,选 N4R2 也有代价:Flash 比 N8 少。假设计划保留两个各 1.5 MiB 的应用槽、1 MiB 字体图片资源,这两项已经用满 4 MiB,还没留引导、分区表、配置等空间。这是人为给定的分区预算,不是某个固件的实际尺寸;它说明为什么"有 PSRAM"也不能直接结束选型。解决方法可能是减少资源、调整升级方案,或换有更合适存储组合的完整模组料号,而不是期待 PSRAM 替 Flash 保存升级镜像。

4. USB 接口要追到芯片,不能停在插座

如果这台终端还要插电脑模拟一个快捷键键盘,USB 会变成硬条件。C3 的原生 USB Serial/JTAG 是硬件固定功能,可用于串口通信、下载和调试;它不能通过换一个描述符就变成通用 HID 键盘。C3 USB Serial/JTAG 文档

S3 有可编程的 USB OTG 路径,官方 Device 栈提供 HID 等设备类别及键盘鼠标示例。但芯片支持只回答了第一半问题,还要看插座的数据线连到哪里。S3 USB Device 文档

用官方 DevKitC-1 v1.0 作一个可查证的例子:指南区分了 USB-to-UART Port 和 ESP32-S3 USB Port。前者经过独立串口桥,后者接芯片原生 USB。这两条路径可以都用于开发,却不是同一个接口能力。DevKitC-1 接口说明

text 复制代码
电脑 → 板载串口桥 → UART → S3
电脑 → 原生 USB 数据线 → S3 的 USB 控制器

刷机成功只说明某条下载路径可用。若接在串口桥上,电脑看到的是桥接芯片,不能因此证明 S3 的 HID 固件已连接电脑。S3 原生 USB 的 D−、D+ 分别在 GPIO19、GPIO20;C3 Serial/JTAG 则是 GPIO18、GPIO19。查看第三方小板时,按原理图追这两根线,再查是否与其他接口冲突,不按插座形状推断。S3 接线说明、C3 接线说明

S3 的 USB OTG 和 USB Serial/JTAG 还共享内部 PHY,也就是负责 USB 物理信号收发的部分;两套控制器不能同时占用这一个 PHY。开发 HID 时若只需要日志,可以使用独立 UART;若要求 USB JTAG 与 OTG 同时工作,就需另行核对外部 PHY 等硬件方案,UART 日志不能替代 JTAG 调试。板上多一个插座并不自动增加一套原生 PHY。USB PHY 说明

如果需要的是"把外部 USB 键盘插到终端",终端就要当 Host,选择问题还多了向外设供电和设备类驱动。官方 ESP32-S3-USB-OTG 板明确设计了 Host 接口和供电控制,指南说明其 Host 口提供 5 V、最大 500 mA;这个额定值属于那块板,不能套到一块只带供电插座的小板上。官方 USB-OTG 板指南

所以,一条"接电脑当 HID"的需求和一条"接键盘当 Host"的需求,会形成不同的采购项。前者查原生数据线与设备栈,后者还需查 VBUS 供电路径及相应 Host 类驱动;同一 S3 标签不能代替这些条件。

5. 模组容量变了,可用引脚也可能跟着变

开始连麦克风、功放、彩屏和按键时,不能把芯片标称 GPIO 总数直接写进采购单。芯片引脚要经过模组内部占用、板卡引出和板上器件占用,剩下的才是可分配引脚。

DevKitC-1 v1.0 指南提供了一个很具体的例子:使用相应 Octal SPI 存储配置的 WROOM-1/1U 模组,或 WROOM-2 模组时,GPIO35、36、37 用于内部存储通信,不可供外部使用。这项限制要跟随实际模组配置核对,不能因为另一张同系列引脚图画出了针脚,就认为新板仍可接屏幕。DevKitC-1 引脚限制

这会带来一个反直觉的选择:更大 PSRAM 的版本可能减少你原先打算使用的引脚。容量升级后应重做引脚分配,而不是只修改一行内存配置。

本例在下单前可先画出连接关系:显示需要哪些信号,音频输入输出能否按所选器件共享时钟,哪些按键或背光控制要独占引脚,USB 是否保留,调试口如何接出。这里不规定通用的"I2S 必须占几根线",因为独立麦克风、功放和集成 Codec 的接口并不相同;器件未确定,就不能给出可靠总数。

还要核对启动配置引脚。被外设上电电平影响的引脚,不适合凭"空着"就随意使用。板卡说明、对应模组的数据手册和外设上电行为,需共同支持最终分配。第一次采购如果省掉原理图,后面每一次扩展都会重新遇到这个信息缺口。

6. CPU、无线和供电,怎样影响最后一票?

内存、USB 和引脚能否满足之后,CPU 才进入同一方案内的余量比较。先把仍然影响选择的芯片参数放到一起:

芯片能力 ESP32-C3 ESP32-S3
CPU 单核 RISC-V,最高 160 MHz 双核 Xtensa LX7,最高 240 MHz
片内 SRAM 400 KB 512 KB
Wi-Fi 2.4 GHz,802.11 b/g/n 2.4 GHz,802.11 b/g/n
蓝牙 Bluetooth LE Bluetooth LE
原生 USB 固定功能 Serial/JTAG Serial/JTAG 及可编程 OTG

双核提供并行调度空间,但共享数据、驱动串行化和计算负载决定能否受益,不能把主频和核数相乘就给应用速度下结论。C3 产品页、S3 产品页

对语音终端,值得核查的是"采集、编码、网络和显示能否同时按时完成"。S3 的向量指令也需要相应算法实现利用,并不意味着任意模型都能在板上运行。购买带所谓 AI 功能的小板时,应索取目标算法支持的芯片、内存需求和版本说明;一个唤醒词示例跑通,不能证明完整语音问答都能离线运行。

两者都支持 2.4 GHz Wi-Fi 和 Bluetooth LE。若已有外设要求经典蓝牙,不能看到商品写着"蓝牙"就认定兼容;LE 和经典蓝牙是不同要求,采购时必须写协议类型。这与购买 USB 外设时区分 Device/Host 的道理一样:写出要完成的连接,而不只写接口名。

供电则要查整板。比如本例同时开屏幕背光、播放音频并发射无线数据,稳压器、USB 输入和外设供电支路是否合适,需要按器件资料计算,再在样板上看电源跌落与运行表现。本文没有实测,不给某块小板贴"稳定"或"不稳定"的标签,也不拿 SoC 的典型电流去替代整板结果。

无线资料还应落实到板上的天线。带 PCB 天线的模组和带外接天线连接器的变体,对外壳与装配的要求不同;模组的数据手册给出了布局建议。若板子要塞进金属结构附近,就应在选型时给天线位置留出方案,并在最终装配条件下验证通信。裸板能联网,不能替代装壳后的结果。S3-MINI-1 / MINI-1U 布局资料

如果项目改为电池传感器,关注点会转到睡眠时间、周期唤醒、联网时长和板载常耗电器件。续航应从各状态的电流乘持续时间累加,再计入转换损耗;仅比较 C3、S3 的一个功耗数字不足以给电池定容量。价格同样要比较完整配置、交付数量和需要另购的器件,不能断言所有 C3 小板都比所有 S3 方案便宜。

7. 为这台终端填出采购单

现在回到最初的方案:320×240 RGB565 双全帧、两条各 500 ms 的 16 kHz 单声道 PCM 缓冲、Wi-Fi,以及可能增加的 USB HID。按这些前提,带 PSRAM、原生 USB 可用、引脚和供电资料明确的 S3 板是优先验证对象。 这是一项候选筛选结论,尚不是对某款商品的验收。

下面这张表可以交给卖家核对,也可以用来记录候选板之间真正缺什么。

采购项 本例写入的要求 下单前对应证据 / 到货后验证
身份 完整开发板名称、硬件版本、芯片或模组料号 商品选项、丝印照片、同版本资料相互对应
运行内存 大块画面与音频缓存约 331.25 KiB,另有系统和算法开销;优先有 PSRAM 模组型号表确认容量;目标固件确认识别、分配与峰值余量
固件存储 按实际固件、资源与升级分区预算选 Flash 不以 PSRAM 替代 Flash;构建后核对分区占用
USB 若启用快捷键功能,要原生 HID Device 路径 原理图查 D−/D+;运行对应示例检查电脑枚举
引脚 音频、屏幕、按键、调试均有明确分配 扣除存储占用与板上占用,检查启动引脚约束
供电 屏幕、音频、无线同时工作的供电预算 查电源器件与支路;样板在并发负载下验证

若 N4R2 能满足运行内存却装不下实际升级分区,就继续找完整料号中同时满足两类容量的候选;若某款大内存板缺少需要的引脚,也不能仅凭容量通过。若改成传感器加简单状态屏,删掉高缓存及原生 HID 条件后,C3 可以重新比较,无需为不存在的需求购买 S3。

选择最终落实为一句可以核验的话:我购买的是这一个板本、这一个存储配置,它有这些已查明的接口;尚待样板验证的是这些运行条件。这样,"Mini"就只是尺寸或产品名称的一部分,不再承担它无法回答的工程问题。

相关推荐
知几蜗牛1 小时前
AI修过一次漏洞还会再犯吗?关键不只是“记住”
人工智能
老马识码1 小时前
Function Calling 与工具设计
人工智能
老金带你玩AI1 小时前
翻了4万多次请求,我为什么更愿意开xhigh
人工智能
10年前端老司机1 小时前
RAG 检索效果量化测评落地:完整流程、指标实现与踩坑总结
人工智能·llm·aigc
武子康1 小时前
权重装进了 24 GiB,四路 32K 上下文还装得下吗?
人工智能·llm·agent
潘锦1 小时前
做 Agent 架构时,OpenViking 的几个可以学习的点
agent·cto
小盆女神节奶粉1 小时前
Graph的基本流程理解
agent
Python私教1 小时前
DeepSeek本地部署Ollama+知识库,附3个报错解决
人工智能·llm·deepseek
知几蜗牛1 小时前
工具还在跑,AI为什么还能继续说?看懂多模态异步事件流
人工智能