🧪 Stanno arrivando nuovi tutorial — dal braccio robotico al sensore
Vai al contenuto
Acquista questo prodottoNegozio ufficialeSito ufficiale

ESP32-NanoCam Specifiche hardware

Acquista nel negozio

1. Panoramica hardware

I materiali hardware di questa sezione provengono dagli schemi NanoCamModule.pdf + NanoCamBASE.pdf. Architettura completa: la scheda principale (ESP32-S3 + fotocamera + audio) si innesta sulla scheda base (alimentazione USB + flashing seriale).

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                 │
└─────────────────────────────────────────────────────────┘

Fig. 1: Fronte della scheda principale (ESP32-S3 / fotocamera / audio)

2. MCU e memoria

2.1 Chip principale

ParametroSpecifica
ModelloESP32-S3 N16R8
PackageQFN56
CPUXtensa LX7 dual-core 240MHz
PSRAM8MB (Octal SPI, suffisso R8)
Flash16MB (suffisso N16, SPI Flash esterna da 128M-bit)
ClockCristallo passivo 40MHz + condensatori di adattamento 10pF×2

2.2 Memoria Flash

ParametroSpecifica
ModelloGD25Q128ESIG
Capacità128M-bit = 16MB
InterfacciaSPI (standard a quattro fili)
MarcaGigaDevice
Segnale FlashGPIO ESP32-S3Funzione
CSIO29Chip select
SO (DO)IO31Uscita dati
SI (DI)IO32Ingresso dati
SCLKIO30Clock
WPIO34Protezione da scrittura
HOLDIO33Hold

3. Sottosistema fotocamera

3.1 Interfaccia DVP

ParametroSpecifica
Tipo di interfacciaFPC 0.5 WS 24P (connettore FPC a 24 pin)
Sensori supportatiGC2145 (predefinito) / OV2640 / OV5640 e altre fotocamere DVP
Bus di configurazione I2CSDA=IO41, SCL=IO42 (condiviso con l'I2C esterno)
Formato pixelRGB565 / JPEG / YUV422 ecc.

Fig. 5: Disegno dimensionale del modulo fotocamera GC2145 (angolo di campo 68°)

3.2 Mappatura completa dei pin DVP

CategoriaNome segnaleGPIO ESP32Note
Clock di sistemaXCLKIO9Uscita clock master 24MHz
Clock pixelPCLKIO6Ingresso clock pixel della fotocamera
Sincronizzazione frameVSYNCIO13Sincronizzazione verticale
Sincronizzazione rigaHREFIO11Riferimento orizzontale
ControlloPWDNIO12Controllo spegnimento fotocamera
ControlloRESETIO14Reset della fotocamera
I2CSDAIO41Dati I2C della fotocamera (condiviso con ES8311)
I2CSCLIO42Clock I2C della fotocamera (condiviso con ES8311)
Dati D0Y2IO4Dati pixel bit0
Dati D1Y3IO2Dati pixel bit1
Dati D2Y4IO1Dati pixel bit2
Dati D3Y5IO3Dati pixel bit3
Dati D4Y6IO5Dati pixel bit4
Dati D5Y7IO7Dati pixel bit5
Dati D6Y8IO8Dati pixel bit6
Dati D7Y9IO10Dati pixel bit7

3.3 Riepilogo dei gruppi di segnali della fotocamera

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. Sottosistema audio

4.1 Architettura audio

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
ComponenteModelloTipoInterfaccia
MicrofonoAP2718ATMEMS in silicio analogicoAnalogico differenziale → ADC ES8311
CodecES8311Codec audio (I2S+I2C)I2S=MCLK=39,BCLK=38,WS=47,DOUT=48,DIN=40, I2C=41/42, addr=0x30
AmplificatoreNS4150BAmplificatore analogico in classe DUscita DAC ES8311 → ingresso analogico → altoparlante

4.2 Pin I2S del codec ES8311

Segnale I2SGPIO ESP32Funzione
MCLKIO39Clock master
BCLK (SCLK)IO38Clock di bit
LRCLK (WS)IO47Clock canale sinistro/destro
DOUT (DAC)IO48Uscita dati seriale (riproduzione)
DIN (ADC)IO40Ingresso dati seriale (registrazione)

L'audio utilizza la modalità I2S0 Standard Duplex; il codec ES8311 supporta registrazione e riproduzione contemporaneamente.

4.3 Controllo I2C dell'ES8311

Segnale I2CGPIODescrizione
SDAIO41Bus I2C condiviso con la fotocamera
SCLIO42Bus I2C condiviso con la fotocamera
Indirizzo0x30Indirizzo I2C a 8 bit dell'ES8311

5. Sistema di alimentazione

5.1 Catena di alimentazione

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 Componenti chiave

ChipModelloFunzione
LDOME6217C33P5G (SOT-89-5)Regolazione 5V→3.3V
LDOME6211A18M3G (SOT-23)5V→1.8V (nucleo fotocamera)
LDOME6211A28M3G ×2 (SOT-23)5V→2.8V (U6=AVDD, U7=DOVDD)
Filtro d'ingresso U1C14 (10μF) + C15 (0.1μF)Ingresso ME6217C33
Filtro d'uscita U1C1 (22μF)Uscita ME6217C33
Protezione inversione polaritàNCE3401 P-MOSFETProtezione ingresso alimentazione scheda base
Resistenza di gateR11 10KΩGate del P-MOS a massa

6. Scheda base e flashing

Fig. 2: Serigrafia dei pin sul retro della scheda principale (RXD/TXD/SCL/SDA/5V/GND ecc.)

6.1 Convertitore USB-seriale

ParametroSpecifica
ChipCH340K
Interfaccia USBUSB-C (USB1)
Collegamento serialeTXD→U0RXD (IO44), RXD→U0TXD (IO43) (incrociato)
Resistenze di adattamento USBR4, R5 22R/1% (D+/D- in serie)
DTR/RTSControllo automatico di BOOT + EN per il flashing con un clic

Fig. 3: Fronte della scheda base (USB-C e interfacce di espansione)

6.2 Circuito di download con un tasto

Utilizza Q1, Q2 (transistor NPN S8050) per il flashing automatico:

Segnale CH340KControlloPin di destinazione
DTR→ Q1 →ESP32 EN (CHIP_PU)
RTS→ Q2 →ESP32 BOOT (IO0)

Principio: lo strumento di flashing USB controlla automaticamente la sequenza di BOOT e EN tramite la commutazione di DTR/RTS, senza bisogno di premere tasti manualmente.

6.3 Tabella pin del connettore scheda principale↔scheda base

Pin scheda basePin scheda principaleNome segnaleGPIO ESP32Funzione
P1-1P1-1VDD50Uscita alimentazione 5V
P1-2P1-2VDD50Uscita alimentazione 5V
P1-3P1-3GNDMassa di alimentazione
P1-4P1-4GNDMassa di alimentazione
P1-5P1-5SDAIO41Dati I2C (condiviso con fotocamera/ES8311)
P1-6P1-6SCLIO42Clock I2C (condiviso con fotocamera/ES8311)
P1-7P1-7U0TXDIO43Trasmissione seriale 0 (collegata a RXD del CH340K)
P1-8P1-8U0RXDIO44Ricezione seriale 0 (collegata a TXD del CH340K)
P2-1P2-1ESP_PIO20Dati differenziali USB positivi (D+)
P2-2P2-2ESP_NIO19Dati differenziali USB negativi (D-)
P2-3P2-3VDD33Uscita alimentazione 3.3V
P2-4P2-4VDD33Uscita alimentazione 3.3V
P2-5P2-5GNDMassa di alimentazione
P2-6P2-6GNDMassa di alimentazione
P2-7P2-7BOOTIO0Modalità di avvio/flashing
P2-8P2-8CHIP_PUENControllo reset del chip

Fig. 4: Serigrafia dei pin sul retro della scheda base

6.4 Interfacce di espansione della scheda base

InterfacciaSegnali espostiUso
P3 (I2C, 4Pin)5V1, GND, SDA, SCLDispositivi I2C esterni
P4 (UART, 4Pin)5V1, GND, ESP_P, ESP_NDispositivi USB/seriali esterni

7. Tabella completa dell'occupazione GPIO

Totale: 33 GPIO occupati, circa 8 GPIO disponibili.

GPIOFunzioneSegnaleNote
IO0BOOTBOOTModalità di avvio/flashing (tasto S2, pull-up 10K + antirimbalzo 0.1μF)
IO1DVP D2CAM_Y4Dati pixel bit2
IO2DVP D1CAM_Y3Dati pixel bit1
IO3DVP D3CAM_Y5Dati pixel bit3
IO4DVP D0CAM_Y2Dati pixel bit0
IO5DVP D4CAM_Y6Dati pixel bit4
IO6DVP PCLKCAM_PCLKIngresso clock pixel
IO7DVP D5CAM_Y7Dati pixel bit5
IO8DVP D6CAM_Y8Dati pixel bit6
IO9DVP XCLKCAM_XCLKClock master fotocamera (24MHz)
IO10DVP D7CAM_Y9Dati pixel bit7
IO11DVP HREFCAM_HREFSincronizzazione riga
IO12DVP PWDNCAM_PWDNControllo spegnimento fotocamera
IO13DVP VSYNCCAM_VSYNCSincronizzazione frame
IO14DVP RESETCAM_RESETReset della fotocamera
IO18WS2812RGB_LED_DINIngresso dati LED RGB WS2812
IO19Differenziale USBD- (ESP_N)Dati differenziali USB negativi (D-)
IO20Differenziale USBD+ (ESP_P)Dati differenziali USB positivi (D+)
IO21WS2812 DOUTRGB_LED_DOUTUscita a cascata WS2812 (disponibile se non in cascata)
IO29SPI CSFlash_CSChip select della Flash esterna
IO30SPI SCLKFlash_CLKClock della Flash esterna
IO31SPI SOFlash_DOUscita dati della Flash esterna
IO32SPI SIFlash_DIIngresso dati della Flash esterna
IO33SPI HOLDFlash_HOLDHold della Flash esterna
IO34SPI WPFlash_WPProtezione da scrittura della Flash esterna
IO38I2S BCLKI2S_BCLKClock di bit dell'ES8311
IO39I2S MCLKI2S_MCLKClock master dell'ES8311
IO40I2S DINI2S_DINIngresso dati ADC dell'ES8311
IO41I2C SDAI2C_SDACondiviso tra fotocamera + ES8311 + I2C esterno
IO42I2C SCLI2C_SCLCondiviso tra fotocamera + ES8311 + I2C esterno
IO43UART0 TXUTXDTrasmissione seriale 0 (CH340K della scheda base)
IO44UART0 RXURXDRicezione seriale 0 (CH340K della scheda base)
IO47I2S WSI2S_WSSelezione word dell'ES8311 (LRCK)
IO48I2S DOUTI2S_DOUTUscita dati DAC dell'ES8311
ENCHIP_PURST/ENEnable/reset (tasto S1, pull-up 10K)

GPIO disponibili (non occupati, espandibili)

GPIOCaratteristicaUso suggerito
IO15IO genericoEspansione
IO16IO genericoEspansione
IO17IO genericoEspansione
IO35IO genericoEspansione
IO36IO genericoEspansione
IO37IO genericoEspansione
IO45IO genericoEspansione
IO46IO genericoEspansione

⚠️ GPIO occupati: 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

Quantità disponibile: 8 GPIO

8. Vincoli di progettazione chiave

8.1 Configurazione della periferica I2S

  • L'ESP32-S3 ha due controller I2S:
    • I2S0: assegnato al codec ES8311 (MCLK=IO39, BCLK=IO38, WS=IO47, DOUT=IO48, DIN=IO40), I2S Duplex bidirezionale, supporta registrazione e riproduzione contemporaneamente
  • Controllo I2C dell'ES8311: SDA=IO41, SCL=IO42, indirizzo del dispositivo 0x30

8.2 Coesistenza di DVP e I2S DMA

  • Il DVP utilizza il canale DMA della periferica LCD_CAM
  • L'ES8311 utilizza il DMA di I2S0 (singola interfaccia I2S bidirezionale)
  • I due non sono in conflitto, ma occorre prestare attenzione alla larghezza di banda della PSRAM (8MB di PSRAM sono sufficienti)
  • GPIO45/46 non sono collegati all'audio e possono essere usati per altri scopi; GPIO47 è usato per I2S WS

8.3 Condivisione del bus I2C

  • IO41 (SDA) + IO42 (SCL) sono collegati contemporaneamente alla fotocamera e all'interfaccia I2C esterna
  • Resistenze di pull-up I2C: R12 (SDA, 4.7K/1%), R13 (SCL, 4.7K/1%), pull-up verso VDD33
  • Assicurarsi che l'indirizzo I2C della fotocamera non entri in conflitto con i dispositivi esterni
  • Indirizzo I2C predefinito dell'OV2640: 0x60 (scrittura) / 0x61 (lettura) — nessun conflitto con ES8311 (0x30)

8.4 Capacità Flash abbondante

  • 16MB di Flash offrono spazio abbondante, in grado di supportare:
    • Schema OTA a doppia partizione (factory + ota_0 + ota_1)
    • SPIFFS per il backend di gestione Web (~1MB)
    • Pacchetti di risorse multilingua di XiaoZhi AI (file .p3)
    • Partizione di configurazione NVS
    • Spazio riservato per futuri aggiornamenti
  • Nessuna preoccupazione per la dimensione del firmware: l'AI multi-Agent può essere installata integralmente

8.5 Vincoli dei pin di ingresso della fotocamera DVP

  • D0-D7 e VSYNC/HREF/PCLK sono tutti pin di ingresso, pilotati dal sensore della fotocamera
  • Nello sviluppo del driver è indispensabile assicurarsi che questi pin siano configurati solo in modalità INPUT
  • I pin audio I2S (38,39,40,47,48) possono essere configurati in modalità output (supportato dall'ESP32-S3)

9. Consigli di configurazione ESP-IDF

9.1 Voci chiave di 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 Configurazione della fotocamera

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,
};

Prossimi passi