🧪 新教程持續更新中 · 由機械臂到傳感器,跟隨教程從零搭建
跳到主要內容

ESP32-S3 NanoCam 硬體規格書 ​

淘寶店鋪

來源:NanoCamModule.pdf + NanoCamBASE.pdf 電路圖。 架構:核心板(ESP32-S3 + 攝影機 + 音訊)插接在底板(USB 供電 + 串列燒錄)上。


一、硬體總覽 ​

Plaintext
┌─────────────────────────────────────────────────────────┐
│                    NanoCam 核心板                         │
│  ┌──────────┐  ┌──────────┐  ┌────────────┐            │
│  │ ESP32-S3 │  │ ES8311   │  │ NS4150B   │            │
│  │   R8     │  │ I2S 麥克風│  │ I2S 功放   │            │
│  │ (QFN56)  │  │          │  │            │            │
│  └────┬─────┘  └──────────┘  └────────────┘            │
│       │                                                 │
│  ┌────┴─────┐  ┌──────────┐  ┌────────────┐            │
│  │ GD25Q128 │  │  DVP     │  │ ME6217C33  │            │
│  │ 16MB Flash│ │ 攝影機   │  │ 3.3V LDO   │            │
│  └──────────┘  │ FPC-24P  │  └────────────┘            │
│                └──────────┘                             │
├─────────────────────────────────────────────────────────┤
│                    NanoCam 底板                          │
│  ┌──────────┐  ┌──────────┐  ┌────────────────────┐    │
│  │ USB-C    │  │ CH340K   │  │ 一鍵下載電路        │    │
│  │ 5V輸入   │  │ USB-UART │  │ (DTR/RTS→BOOT/EN)  │    │
│  └──────────┘  └──────────┘  └────────────────────┘    │
│                                                         │
│  擴充介面: I2C ×1, UART ×1, 5V/GND/3.3V                 │
└─────────────────────────────────────────────────────────┘

圖 1:核心板正面(ESP32-S3 / 攝像頭 / 音頻)


二、主控與儲存 ​

2.1 主控芯片 ​

參數規格
型號ESP32-S3 N16R8
封裝QFN56
CPUXtensa LX7 雙核 240MHz
PSRAM8MB(Octal SPI,R8 後綴)
Flash16MB(N16 後綴,外接 128M-bit SPI Flash)
時鐘40MHz 無源晶體 + 10pF×2 匹配電容

2.2 Flash 儲存 ​

參數規格
型號GD25Q128ESIG
容量128M-bit = 16MB
介面SPI(標準四線)
品牌GigaDevice
Flash 信號ESP32-S3 GPIO功能
CSIO29片選
SO (DO)IO31數據輸出
SI (DI)IO32數據輸入
SCLKIO30時鐘
WPIO34寫保護
HOLDIO33保持

三、攝影機子系統 ​

3.1 DVP 介面 ​

參數規格
介面類型FPC 0.5 WS 24P(24Pin FPC 排座)
支援 SensorGC2145(預設)/ OV2640 / OV5640 等 DVP 攝影機
I2C 設定總線SDA=IO41, SCL=IO42(與外部 I2C 共用)
像素格式RGB565 / JPEG / YUV422 等

圖 4:底板背面引腳絲印

3.2 DVP 引腳全映射 ​

信號類別信號名ESP32 GPIO備註
系統時鐘XCLKIO9主時鐘輸出 24MHz
像素時鐘PCLKIO6攝影機像素時鐘輸入
幀同步VSYNCIO13垂直同步
行同步HREFIO11水平參考
控制PWDNIO12攝影機斷電控制
控制RESETIO14攝影機復位
I2CSDAIO41攝影機 I2C 數據(與 ES8311 共用)
I2CSCLIO42攝影機 I2C 時鐘(與 ES8311 共用)
數據 D0Y2IO4像素數據 bit0
數據 D1Y3IO2像素數據 bit1
數據 D2Y4IO1像素數據 bit2
數據 D3Y5IO3像素數據 bit3
數據 D4Y6IO5像素數據 bit4
數據 D5Y7IO7像素數據 bit5
數據 D6Y8IO8像素數據 bit6
數據 D7Y9IO10像素數據 bit7

3.3 攝影機信號組彙總 ​

Plaintext
Camera DVP 信號組:
  XCLK  = IO9     # Master clock out (24MHz)
  PCLK  = IO6     # Pixel clock in
  VSYNC = IO13    # Vertical sync
  HREF  = IO11    # Horizontal ref
  PWDN  = IO12    # Power down (active low)
  RESET = IO14    # Hardware reset

  D0(Y2) = IO4    D1(Y3) = IO2
  D2(Y4) = IO1    D3(Y5) = IO3
  D4(Y6) = IO5    D5(Y7) = IO7
  D6(Y8) = IO8    D7(Y9) = IO10

  SIOD(SDA) = IO41
  SIOC(SCL) = IO42

四、音訊子系統 ​

4.1 音訊架構 ​

Plaintext
AP2718AT (類比MEMS麥) → ES8311 Codec (ADC/DAC) → NS4150B (類比功放) → 揚聲器
                               ↕ I2S (MCLK=39,BCLK=38,WS=47,DOUT=48,DIN=40) + I2C (41/42, addr=0x30)
                            ESP32-S3
元件型號類型介面
麥克風AP2718AT類比 MEMS 矽麥差分類比 → ES8311 ADC
編解碼器ES8311音訊 Codec(I2S+I2C)I2S=MCLK=39,BCLK=38,WS=47,DOUT=48,DIN=40, I2C=41/42, addr=0x30
功放NS4150BD 類類比功放ES8311 DAC 輸出 → 類比輸入 → 揚聲器

4.2 ES8311 Codec I2S 引腳 ​

I2S 信號ESP32 GPIO功能
MCLKIO39主時鐘
BCLK (SCLK)IO38位時鐘
LRCLK (WS)IO47左右聲道時鐘
DOUT (DAC)IO48串列數據輸出(播放)
DIN (ADC)IO40串列數據輸入(錄音)

音訊使用 I2S0 Standard Duplex 模式,ES8311 Codec 同時支援錄音與播放。

4.3 ES8311 I2C 控制 ​

I2C 信號GPIO說明
SDAIO41與攝影機共用 I2C 總線
SCLIO42與攝影機共用 I2C 總線
地址0x30ES8311 8-bit I2C 地址

五、電源系統 ​

5.1 供電鏈路 ​

Plaintext
USB-C (5V) ──→ 底板 NCE3401 P-MOSFET 反接保護 ──→ VDD50
                                              │
                    ┌─────────────────────────┤
                    ↓                         ↓
            核心板 ME6217C33 LDO            NS4150B 功放
                    │                  (5V 直供)
                    ↓
                 VDD33 (3.3V)
                    │
        ┌───────────┼───────────┐
        ↓           ↓           ↓
    ESP32-S3    ES8311 Codec   GD25Q128 Flash
    DVP攝影機   AP2718AT 麥    ME6211A18/28 LDO

5.2 關鍵元件 ​

芯片型號功能
LDOME6217C33P5G (SOT-89-5)5V→3.3V 穩壓
LDOME6211A18M3G (SOT-23)5V→1.8V(攝影機核心)
LDOME6211A28M3G ×2 (SOT-23)5V→2.8V(U6=AVDD, U7=DOVDD)
U1 輸入濾波C14 (10μF) + C15 (0.1μF)ME6217C33 輸入
U1 輸出濾波C1 (22μF)ME6217C33 輸出
反接保護NCE3401 P-MOSFET底板電源輸入保護
閘極電阻R11 10KΩP-MOS 閘極接地

六、底板與燒錄 ​

圖 5:GC2145 攝像頭模組尺寸圖(68° 視場角)

6.1 USB 轉串列 ​

參數規格
芯片CH340K
USB 介面USB-C(USB1)
串列連接TXD→U0RXD (IO44), RXD→U0TXD (IO43)(交叉)
USB 匹配電阻R4, R5 22R/1%(D+/D- 串聯)
DTR/RTS一鍵燒錄自動控制 BOOT + EN

圖 2:核心板背面引腳絲印(RXD/TXD/SCL/SDA/5V/GND 等)

6.2 一鍵下載電路 ​

使用 Q1、Q2(S8050 NPN 三極體)實現自動燒錄:

CH340K 信號控制目標引腳
DTR→ Q1 →ESP32 EN (CHIP_PU)
RTS→ Q2 →ESP32 BOOT (IO0)

原理:USB 燒錄工具透過 DTR/RTS 翻轉自動控制 BOOT 和 EN 時序,無需手動按鍵。

6.3 核心板↔底板 連接器引腳表 ​

底板排針核心板排針信號名ESP32 GPIO功能
P1-1P1-1VDD50—5V 電源輸出
P1-2P1-2VDD50—5V 電源輸出
P1-3P1-3GND—電源地
P1-4P1-4GND—電源地
P1-5P1-5SDAIO41I2C 數據(與攝影機/ES8311 共用)
P1-6P1-6SCLIO42I2C 時鐘(與攝影機/ES8311 共用)
P1-7P1-7U0TXDIO43串列埠 0 發送(接 CH340K RXD)
P1-8P1-8U0RXDIO44串列埠 0 接收(接 CH340K TXD)
P2-1P2-1ESP_PIO20USB 差分數據正(D+)
P2-2P2-2ESP_NIO19USB 差分數據負(D-)
P2-3P2-3VDD33—3.3V 電源輸出
P2-4P2-4VDD33—3.3V 電源輸出
P2-5P2-5GND—電源地
P2-6P2-6GND—電源地
P2-7P2-7BOOTIO0啟動模式/燒錄
P2-8P2-8CHIP_PUEN芯片復位控制

圖 3:底板正面(USB-C 與擴展接口)

6.4 底板擴充介面 ​

介面引出信號用途
P3 (I2C, 4Pin)5V1, GND, SDA, SCL外部 I2C 裝置
P4 (UART, 4Pin)5V1, GND, ESP_P, ESP_N外部 USB/串列裝置

七、完整 GPIO 佔用表 ​

總計:33 個 GPIO 被佔用,可用 GPIO 約 8 個。

GPIO功能信號備註
IO0BOOTBOOT啟動模式/燒錄(S2 按鍵,10K 上拉 + 0.1μF 消抖)
IO1DVP D2CAM_Y4像素數據 bit2
IO2DVP D1CAM_Y3像素數據 bit1
IO3DVP D3CAM_Y5像素數據 bit3
IO4DVP D0CAM_Y2像素數據 bit0
IO5DVP D4CAM_Y6像素數據 bit4
IO6DVP PCLKCAM_PCLK像素時鐘輸入
IO7DVP D5CAM_Y7像素數據 bit5
IO8DVP D6CAM_Y8像素數據 bit6
IO9DVP XCLKCAM_XCLK攝影機主時鐘(24MHz)
IO10DVP D7CAM_Y9像素數據 bit7
IO11DVP HREFCAM_HREF行同步
IO12DVP PWDNCAM_PWDN攝影機斷電控制
IO13DVP VSYNCCAM_VSYNC幀同步
IO14DVP RESETCAM_RESET攝影機復位
IO18WS2812RGB_LED_DINWS2812 RGB LED 數據輸入
IO19USB 差分D-(ESP_N)USB 差分數據負(D-)
IO20USB 差分D+(ESP_P)USB 差分數據正(D+)
IO21WS2812 DOUTRGB_LED_DOUTWS2812 級聯輸出(未級聯時可用)
IO29SPI CSFlash_CS外置 Flash 片選
IO30SPI SCLKFlash_CLK外置 Flash 時鐘
IO31SPI SOFlash_DO外置 Flash 數據輸出
IO32SPI SIFlash_DI外置 Flash 數據輸入
IO33SPI HOLDFlash_HOLD外置 Flash Hold
IO34SPI WPFlash_WP外置 Flash 寫保護
IO38I2S BCLKI2S_BCLKES8311 位時鐘
IO39I2S MCLKI2S_MCLKES8311 主時鐘
IO40I2S DINI2S_DINES8311 ADC 數據輸入
IO41I2C SDAI2C_SDA攝影機+ES8311+外部 I2C 共用
IO42I2C SCLI2C_SCL攝影機+ES8311+外部 I2C 共用
IO43UART0 TXUTXD串列埠 0 發送(底板 CH340K)
IO44UART0 RXURXD串列埠 0 接收(底板 CH340K)
IO47I2S WSI2S_WSES8311 字選擇(LRCK)
IO48I2S DOUTI2S_DOUTES8311 DAC 數據輸出
ENCHIP_PURST/EN致能/復位(S1 按鍵,10K 上拉)

可用 GPIO(未被佔用,可擴充) ​

GPIO特性建議用途
IO15通用 IO擴充
IO16通用 IO擴充
IO17通用 IO擴充
IO35通用 IO擴充
IO36通用 IO擴充
IO37通用 IO擴充
IO45通用 IO擴充
IO46通用 IO擴充

⚠️ 已佔用 GPIO:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,18,19,20,21,29,30,31,32,33,34,38,39,40,41,42,43,44,47,48 可用數量:8 個 GPIO


八、關鍵設計約束 ​

8.1 I2S 周邊設定 ​

  • ESP32-S3 有兩個 I2S 控制器:
    • I2S0:已分配給 ES8311 Codec(MCLK=IO39, BCLK=IO38, WS=IO47, DOUT=IO48, DIN=IO40),雙向 I2S Duplex,同時支援錄音與播放
  • ES8311 I2C 控制:SDA=IO41, SCL=IO42, 元件地址 0x30

8.2 DVP 與 I2S DMA 共存 ​

  • DVP 使用 LCD_CAM 周邊的 DMA 通道
  • ES8311 使用 I2S0 DMA(單一 I2S 介面雙向)
  • 兩者不衝突,但需注意 PSRAM 頻寬(8MB PSRAM 足夠)
  • GPIO45/46 與音訊無連接,可作其他用途;GPIO47 用於 I2S WS

8.3 I2C 總線共享 ​

  • IO41(SDA) + IO42(SCL) 同時連接攝影機與外部 I2C 介面
  • I2C 上拉電阻:R12(SDA, 4.7K/1%)、R13(SCL, 4.7K/1%),上拉至 VDD33
  • 需確保攝影機 I2C 地址與外部裝置不衝突
  • OV2640 預設 I2C 地址:0x60(寫)/ 0x61(讀)— 與 ES8311(0x30)不衝突

8.4 Flash 容量充足 ​

  • 16MB Flash 空間充裕,可支援:
    • OTA 雙分區方案(factory + ota_0 + ota_1)
    • SPIFFS 存放 Web 管理後台(~1MB)
    • 小智 AI 多語言資源包(.p3 檔案)
    • NVS 設定分區
    • 預留升級空間
  • 無需擔心固件體積,多 Agent AI 可以完整裝入

8.5 DVP 攝影機輸入引腳約束 ​

  • D0-D7 及 VSYNC/HREF/PCLK 均為輸入引腳,由攝影機傳感器驅動
  • 驅動程式開發時必須確保這些引腳僅設定為 INPUT 模式
  • I2S 音訊引腳(38,39,40,47,48)可設定為輸出模式(ESP32-S3 支援)

九、ESP-IDF 設定建議 ​

9.1 sdkconfig 關鍵項目 ​

Plaintext
# 芯片
CONFIG_IDF_TARGET_ESP32S3=y
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y

# Flash (16MB)
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y

# PSRAM (8MB Octal)
CONFIG_SPIRAM=y
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=49152
CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y

# Cache
CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y
CONFIG_ESP32S3_DATA_CACHE_64KB=y
CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y

# 攝影機
CONFIG_CAMERA_MODULE_CUSTOM=y
CONFIG_CAMERA_PIN_XCLK=9
CONFIG_CAMERA_PIN_PCLK=6
CONFIG_CAMERA_PIN_VSYNC=13
CONFIG_CAMERA_PIN_HREF=11
CONFIG_CAMERA_PIN_SIOD=41
CONFIG_CAMERA_PIN_SIOC=42
CONFIG_CAMERA_PIN_PWDN=12
CONFIG_CAMERA_PIN_RESET=14
CONFIG_CAMERA_PIN_Y2=4
CONFIG_CAMERA_PIN_Y3=2
CONFIG_CAMERA_PIN_Y4=1
CONFIG_CAMERA_PIN_Y5=3
CONFIG_CAMERA_PIN_Y6=5
CONFIG_CAMERA_PIN_Y7=7
CONFIG_CAMERA_PIN_Y8=8
CONFIG_CAMERA_PIN_Y9=10
CONFIG_CAMERA_XCLK_FREQ=24000000

# 音訊 (ES8311 Codec, I2S0)
# ES8311 I2S: MCLK=39, BCLK=38, WS=47, DOUT=48, DIN=40
# ES8311 I2C: SDA=41, SCL=42, addr=0x30

9.2 攝影機設定 ​

C
// esp32-camera 引腳配置
camera_config_t config = {
    .pin_pwdn  = 12,
    .pin_reset = 14,
    .pin_xclk  = 9,
    .pin_siod  = 41,
    .pin_sioc  = 42,
    .pin_d7    = 10,
    .pin_d6    = 8,
    .pin_d5    = 7,
    .pin_d4    = 5,
    .pin_d3    = 3,
    .pin_d2    = 1,
    .pin_d1    = 2,
    .pin_d0    = 4,
    .pin_vsync = 13,
    .pin_href  = 11,
    .pin_pclk  = 6,
    .xclk_freq_hz = 24000000,
    .pixel_format = PIXFORMAT_RGB565,  // 或 PIXFORMAT_JPEG
    .frame_size   = FRAMESIZE_QVGA,    // 320x240
    .jpeg_quality = 12,
    .fb_count     = 2,
    .fb_location  = CAMERA_FB_IN_PSRAM,
    .grab_mode    = CAMERA_GRAB_WHEN_EMPTY,
};

下一步 ​