🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ
この製品を購入公式ストア公式サイト

ESP32-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 / カメラ / オーディオ)

二、メイン MCU とストレージ

2.1 メイン MCU

パラメータ仕様
型番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 (標準 4 線式)
ブランド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 など

図 5:GC2145 カメラモジュール寸法図(68° 視野角)

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 ゲート接地

六、ベースボードと書き込み

図 2:コアボード裏面のピンシルク(RXD/TXD/SCL/SDA/5V/GND など)

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 を自動制御

図 3:ベースボード表面(USB-C と拡張インターフェース)

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-1VDD505V 電源出力
P1-2P1-2VDD505V 電源出力
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-3VDD333.3V 電源出力
P2-4P2-4VDD333.3V 電源出力
P2-5P2-5GND電源グラウンド
P2-6P2-6GND電源グラウンド
P2-7P2-7BOOTIO0ブートモード/書き込み
P2-8P2-8CHIP_PUENチップリセット制御

図 4:ベースボード裏面のピンシルク

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 ホールド
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 には 2 つの 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,
};

次のステップ