I pin a cui fare attenzione sull’ESP32-S3
GPIO 0, 3, 45 e 46: pin di strapping
Il GPIO0 ha un pull-up ed è collegato al pulsante BOOT: BASSO al reset avvia la modalità download. Il GPIO46 deve essere BASSO o scollegato per la modalità download e il GPIO45 sceglie la tensione della flash, quindi nessuno dei due va portato ALTO all’accensione. Il GPIO3 conta solo se un eFuse sceglie la sorgente JTAG; sulle schede standard è un pin libero con ADC e touch.
| GPIO | Valore al reset | Cosa sceglie | In pratica |
|---|---|---|---|
| 0 | Pull-up debole (ALTO) | Modo di avvio: ALTO esegue il programma, BASSO entra in modalità download | Pulsante BOOT; nient’altro deve tenerlo BASSO |
| 3 | Scollegato | Sorgente JTAG, solo se un eFuse la abilita | Un pin normale sui chip standard |
| 45 | Pull-down debole (BASSO) | Tensione della flash: BASSO 3,3 V, ALTO 1,8 V | Mai ALTO al reset |
| 46 | Pull-down debole (BASSO) | Deve essere BASSO per la modalità download; comanda anche i messaggi di avvio della ROM | Mai ALTO al reset |
GPIO 35, 36 e 37: PSRAM octal
Nelle versioni più diffuse, N8R8, N16R8V e N32R8V, il modulo usa PSRAM o flash octal e questi tre pin sono collegati alla memoria. Solo le schede N8 e N8R2 li lasciano liberi, quindi controlla il codice d’ordine della tua scheda prima di usarli. Nelle due versioni V, N16R8V e N32R8V, il modulo ESP32-S3-WROOM-2 ha la memoria a 1,8 V, e anche i GPIO47 e GPIO48 lavorano a 1,8 V.
GPIO 19 e 20: USB nativa
Portano le linee D− e D+ della porta con la scritta USB. Usarli come GPIO disattiva caricamento, seriale e debug da quella porta; la porta UART, sui GPIO 43 e 44, continua a funzionare.
ADC, touch e Wi-Fi
L’ADC1 è sui GPIO da 1 a 10 e l’ADC2 sui GPIO da 11 a 20. Il driver Wi-Fi usa l’ADC2, quindi le letture su quei pin possono fallire con il Wi-Fi acceso: in un progetto connesso usa i GPIO da 1 a 10. Il touch funziona sui GPIO da 1 a 14, e i GPIO da 0 a 21 sono pin RTC che possono svegliare il chip dal deep sleep.
Alimentazione e LED RGB
Alimenta la scheda da una sola sorgente alla volta: una porta USB, il pin 5V o il pin 3V3, come indica la guida di Espressif. Il LED RGB indirizzabile è sul GPIO38 nelle schede v1.1 e sul GPIO48 nella prima versione; serve una libreria o un driver per LED RGB, non un semplice digitalWrite().
Tabella completa dei pin della ESP32-S3-DevKitC-1
| Pin | GPIO | Stato | Analogico | Funzioni | Note |
|---|---|---|---|---|---|
| J3-14 | GPIO0 | Con cautela | No | RTC_GPIO0, PWM (LEDC) | strapping, pulsante BOOT |
| J3-4 | GPIO1 | Libero | ADC1_CH0 | TOUCH1, RTC_GPIO1, PWM (LEDC) | Nessuna limitazione |
| J3-5 | GPIO2 | Libero | ADC1_CH1 | TOUCH2, RTC_GPIO2, PWM (LEDC) | Nessuna limitazione |
| J1-13 | GPIO3 | Libero | ADC1_CH2 | TOUCH3, RTC_GPIO3, PWM (LEDC) | strapping (sorgente JTAG) |
| J1-4 | GPIO4 | Libero | ADC1_CH3 | TOUCH4, RTC_GPIO4, PWM (LEDC) | Nessuna limitazione |
| J1-5 | GPIO5 | Libero | ADC1_CH4 | TOUCH5, RTC_GPIO5, PWM (LEDC) | Nessuna limitazione |
| J1-6 | GPIO6 | Libero | ADC1_CH5 | TOUCH6, RTC_GPIO6, PWM (LEDC) | Nessuna limitazione |
| J1-7 | GPIO7 | Libero | ADC1_CH6 | TOUCH7, RTC_GPIO7, PWM (LEDC) | Nessuna limitazione |
| J1-12 | GPIO8 | Libero | ADC1_CH7 | TOUCH8, RTC_GPIO8, PWM (LEDC) | I²C SDA |
| J1-15 | GPIO9 | Libero | ADC1_CH8 | TOUCH9, RTC_GPIO9, PWM (LEDC) | I²C SCL |
| J1-16 | GPIO10 | Libero | ADC1_CH9 | TOUCH10, RTC_GPIO10, PWM (LEDC) | SPI CS |
| J1-17 | GPIO11 | Libero | ADC2_CH0 | TOUCH11, RTC_GPIO11, PWM (LEDC) | ADC2: non con il Wi-Fi, SPI MOSI (TX) |
| J1-18 | GPIO12 | Libero | ADC2_CH1 | TOUCH12, RTC_GPIO12, PWM (LEDC) | ADC2: non con il Wi-Fi, SPI SCK |
| J1-19 | GPIO13 | Libero | ADC2_CH2 | TOUCH13, RTC_GPIO13, PWM (LEDC) | ADC2: non con il Wi-Fi, SPI MISO (RX) |
| J1-20 | GPIO14 | Libero | ADC2_CH3 | TOUCH14, RTC_GPIO14, PWM (LEDC) | ADC2: non con il Wi-Fi |
| J1-8 | GPIO15 | Libero | ADC2_CH4 | RTC_GPIO15, PWM (LEDC), XTAL_32K_P | quarzo 32 kHz, ADC2: non con il Wi-Fi |
| J1-9 | GPIO16 | Libero | ADC2_CH5 | RTC_GPIO16, PWM (LEDC), XTAL_32K_N | quarzo 32 kHz, ADC2: non con il Wi-Fi |
| J1-10 | GPIO17 | Libero | ADC2_CH6 | RTC_GPIO17, PWM (LEDC) | ADC2: non con il Wi-Fi |
| J1-11 | GPIO18 | Libero | ADC2_CH7 | RTC_GPIO18, PWM (LEDC) | ADC2: non con il Wi-Fi |
| J3-20 | GPIO19 | Con cautela | ADC2_CH8 | RTC_GPIO19, PWM (LEDC), USB D− | USB nativa, ADC2: non con il Wi-Fi |
| J3-19 | GPIO20 | Con cautela | ADC2_CH9 | RTC_GPIO20, PWM (LEDC), USB D+ | USB nativa, ADC2: non con il Wi-Fi |
| J3-18 | GPIO21 | Libero | No | RTC_GPIO21, PWM (LEDC) | Nessuna limitazione |
| J3-13 | GPIO35 | Con cautela | No | PWM (LEDC) | PSRAM o flash octal |
| J3-12 | GPIO36 | Con cautela | No | PWM (LEDC) | PSRAM o flash octal |
| J3-11 | GPIO37 | Con cautela | No | PWM (LEDC) | PSRAM o flash octal |
| J3-10 | GPIO38 | Libero | No | PWM (LEDC) | LED RGB (v1.1) |
| J3-9 | GPIO39 | Libero | No | PWM (LEDC), MTCK (JTAG) | JTAG |
| J3-8 | GPIO40 | Libero | No | PWM (LEDC), MTDO (JTAG) | JTAG |
| J3-7 | GPIO41 | Libero | No | PWM (LEDC), MTDI (JTAG) | JTAG |
| J3-6 | GPIO42 | Libero | No | PWM (LEDC), MTMS (JTAG) | JTAG |
| J3-2 | GPIO43 | Con cautela | No | PWM (LEDC), U0TXD | UART0, UART TX |
| J3-3 | GPIO44 | Con cautela | No | PWM (LEDC), U0RXD | UART0, UART RX |
| J3-15 | GPIO45 | Con cautela | No | PWM (LEDC) | strapping |
| J1-14 | GPIO46 | Con cautela | No | PWM (LEDC) | strapping |
| J3-17 | GPIO47 | Libero | No | PWM (LEDC) | 1,8 V sui moduli V |
| J3-16 | GPIO48 | Libero | No | PWM (LEDC) | 1,8 V sui moduli V, LED RGB (v1.0) |
Pin predefiniti di Arduino-ESP32 per l’ESP32-S3: I²C su 8 (SDA) e 9 (SCL), SPI su 12 (SCK), 13 (MISO), 11 (MOSI) e 10 (SS), UART0 su 43 (TX) e 44 (RX). Con la GPIO matrix puoi spostarli su qualsiasi pin libero.
Domande frequenti
Quali pin dell’ESP32-S3 si possono usare senza problemi?
Su una DevKitC-1 i pin senza limitazioni sono i GPIO 1, 2, da 4 a 18, 21, da 38 a 42, 47 e 48 (tranne sulle schede N16R8V e N32R8V a 1,8 V); il 38 o il 48 comanda anche il LED RGB, a seconda della versione della scheda. Anche il GPIO3 è libero, a meno che un eFuse non lo usi per il JTAG, e sulle schede N8 e N8R2 lo sono anche i pin da 35 a 37. Attenzione a 0, 45 e 46 (strapping), 19 e 20 (USB) e 43 e 44 (UART0).
Perché non posso usare i GPIO 35, 36 e 37?
Sulle schede con PSRAM o flash octal (N8R8, N16R8V, N32R8V) questi pin sono collegati alla memoria dentro il modulo, e pilotarli blocca il programma. Sono liberi solo nelle versioni N8 e N8R2.
Posso usare l’ADC2 con il Wi-Fi sull’ESP32-S3?
Non in modo affidabile: il driver Wi-Fi usa l’ADC2, quindi le letture sui GPIO da 11 a 20 possono fallire con il Wi-Fi acceso. Metti gli ingressi analogici sui GPIO da 1 a 10 (ADC1).
Quale porta USB della DevKitC-1 devo usare?
Per caricare i programmi vanno bene entrambe. La porta UART passa da un convertitore USB-UART collegato ai GPIO 43 e 44; la porta USB è collegata all’USB del chip sui GPIO 19 e 20 e offre anche il debug JTAG e le funzioni di dispositivo USB, come una tastiera.
I pin dell’ESP32-S3 tollerano i 5 V?
No. I GPIO lavorano a 3,3 V e non sono garantiti per i 5 V. Per i segnali a 5 V usa un traslatore di livello o un partitore resistivo.