Os pinos que exigem atenção no ESP32-S3
GPIO 0, 3, 45 e 46: pinos de strapping
O GPIO0 tem pull-up e vai até o botão BOOT: em BAIXO no reset, o chip entra no modo de download. O GPIO46 precisa estar em BAIXO ou flutuando para o modo de download, e o GPIO45 escolhe a tensão da flash, então nenhum dos dois pode ir para ALTO ao ligar a placa. O GPIO3 só importa se um eFuse escolher a fonte do JTAG; nas placas padrão, é um pino livre com ADC e touch.
| GPIO | Padrão no reset | O que seleciona | Na prática |
|---|---|---|---|
| 0 | Pull-up fraco (ALTO) | Modo de boot: ALTO roda o programa, BAIXO entra no modo de download | Botão BOOT; nada mais pode mantê-lo em BAIXO |
| 3 | Flutuando | Fonte do JTAG, só se um eFuse a ativar | Um pino normal nos chips padrão |
| 45 | Pull-down fraco (BAIXO) | Tensão da flash: BAIXO 3,3 V, ALTO 1,8 V | Nunca em ALTO no reset |
| 46 | Pull-down fraco (BAIXO) | Precisa estar em BAIXO para o modo de download; também controla as mensagens de boot da ROM | Nunca em ALTO no reset |
GPIO 35, 36 e 37: PSRAM octal
Nas versões mais comuns, N8R8, N16R8V e N32R8V, o módulo usa PSRAM ou flash octal e esses três pinos estão ligados a ela. Só as placas N8 e N8R2 os deixam livres, então confira o código da sua placa antes de usá-los. Nas duas versões V, N16R8V e N32R8V, o módulo ESP32-S3-WROOM-2 tem memória de 1,8 V, e o GPIO47 e o GPIO48 também trabalham com 1,8 V.
GPIO 19 e 20: USB nativo
Levam as linhas D− e D+ da porta marcada USB. Usá-los como GPIO desativa a gravação, a porta serial e a depuração por essa porta; a porta UART, nos GPIOs 43 e 44, continua funcionando.
ADC, touch e Wi-Fi
O ADC1 fica nos GPIOs 1 a 10 e o ADC2 nos GPIOs 11 a 20. O driver do Wi-Fi usa o ADC2, então as leituras nesses pinos podem falhar com o Wi-Fi ligado: em um projeto conectado, use os GPIOs 1 a 10. O touch funciona nos GPIOs 1 a 14, e os GPIOs 0 a 21 são pinos RTC que conseguem despertar o chip do deep sleep.
Alimentação e LED RGB
Alimente a placa por uma única fonte de cada vez: uma porta USB, o pino 5V ou o pino 3V3, como indica o guia da Espressif. O LED RGB endereçável fica no GPIO38 nas placas v1.1 e no GPIO48 na primeira versão; ele precisa de uma biblioteca ou de um driver de LED RGB, não de um simples digitalWrite().
Tabela completa de pinos da ESP32-S3-DevKitC-1
| Pino | GPIO | Status | Analógico | Funções | Notas |
|---|---|---|---|---|---|
| J3-14 | GPIO0 | Com cuidado | Não | RTC_GPIO0, PWM (LEDC) | strapping, botão BOOT |
| J3-4 | GPIO1 | Livre | ADC1_CH0 | TOUCH1, RTC_GPIO1, PWM (LEDC) | Sem restrições |
| J3-5 | GPIO2 | Livre | ADC1_CH1 | TOUCH2, RTC_GPIO2, PWM (LEDC) | Sem restrições |
| J1-13 | GPIO3 | Livre | ADC1_CH2 | TOUCH3, RTC_GPIO3, PWM (LEDC) | strapping (fonte do JTAG) |
| J1-4 | GPIO4 | Livre | ADC1_CH3 | TOUCH4, RTC_GPIO4, PWM (LEDC) | Sem restrições |
| J1-5 | GPIO5 | Livre | ADC1_CH4 | TOUCH5, RTC_GPIO5, PWM (LEDC) | Sem restrições |
| J1-6 | GPIO6 | Livre | ADC1_CH5 | TOUCH6, RTC_GPIO6, PWM (LEDC) | Sem restrições |
| J1-7 | GPIO7 | Livre | ADC1_CH6 | TOUCH7, RTC_GPIO7, PWM (LEDC) | Sem restrições |
| J1-12 | GPIO8 | Livre | ADC1_CH7 | TOUCH8, RTC_GPIO8, PWM (LEDC) | I²C SDA |
| J1-15 | GPIO9 | Livre | ADC1_CH8 | TOUCH9, RTC_GPIO9, PWM (LEDC) | I²C SCL |
| J1-16 | GPIO10 | Livre | ADC1_CH9 | TOUCH10, RTC_GPIO10, PWM (LEDC) | SPI CS |
| J1-17 | GPIO11 | Livre | ADC2_CH0 | TOUCH11, RTC_GPIO11, PWM (LEDC) | ADC2: não com Wi-Fi, SPI MOSI (TX) |
| J1-18 | GPIO12 | Livre | ADC2_CH1 | TOUCH12, RTC_GPIO12, PWM (LEDC) | ADC2: não com Wi-Fi, SPI SCK |
| J1-19 | GPIO13 | Livre | ADC2_CH2 | TOUCH13, RTC_GPIO13, PWM (LEDC) | ADC2: não com Wi-Fi, SPI MISO (RX) |
| J1-20 | GPIO14 | Livre | ADC2_CH3 | TOUCH14, RTC_GPIO14, PWM (LEDC) | ADC2: não com Wi-Fi |
| J1-8 | GPIO15 | Livre | ADC2_CH4 | RTC_GPIO15, PWM (LEDC), XTAL_32K_P | cristal de 32 kHz, ADC2: não com Wi-Fi |
| J1-9 | GPIO16 | Livre | ADC2_CH5 | RTC_GPIO16, PWM (LEDC), XTAL_32K_N | cristal de 32 kHz, ADC2: não com Wi-Fi |
| J1-10 | GPIO17 | Livre | ADC2_CH6 | RTC_GPIO17, PWM (LEDC) | ADC2: não com Wi-Fi |
| J1-11 | GPIO18 | Livre | ADC2_CH7 | RTC_GPIO18, PWM (LEDC) | ADC2: não com Wi-Fi |
| J3-20 | GPIO19 | Com cuidado | ADC2_CH8 | RTC_GPIO19, PWM (LEDC), USB D− | USB nativo, ADC2: não com Wi-Fi |
| J3-19 | GPIO20 | Com cuidado | ADC2_CH9 | RTC_GPIO20, PWM (LEDC), USB D+ | USB nativo, ADC2: não com Wi-Fi |
| J3-18 | GPIO21 | Livre | Não | RTC_GPIO21, PWM (LEDC) | Sem restrições |
| J3-13 | GPIO35 | Com cuidado | Não | PWM (LEDC) | PSRAM ou flash octal |
| J3-12 | GPIO36 | Com cuidado | Não | PWM (LEDC) | PSRAM ou flash octal |
| J3-11 | GPIO37 | Com cuidado | Não | PWM (LEDC) | PSRAM ou flash octal |
| J3-10 | GPIO38 | Livre | Não | PWM (LEDC) | LED RGB (v1.1) |
| J3-9 | GPIO39 | Livre | Não | PWM (LEDC), MTCK (JTAG) | JTAG |
| J3-8 | GPIO40 | Livre | Não | PWM (LEDC), MTDO (JTAG) | JTAG |
| J3-7 | GPIO41 | Livre | Não | PWM (LEDC), MTDI (JTAG) | JTAG |
| J3-6 | GPIO42 | Livre | Não | PWM (LEDC), MTMS (JTAG) | JTAG |
| J3-2 | GPIO43 | Com cuidado | Não | PWM (LEDC), U0TXD | UART0, UART TX |
| J3-3 | GPIO44 | Com cuidado | Não | PWM (LEDC), U0RXD | UART0, UART RX |
| J3-15 | GPIO45 | Com cuidado | Não | PWM (LEDC) | strapping |
| J1-14 | GPIO46 | Com cuidado | Não | PWM (LEDC) | strapping |
| J3-17 | GPIO47 | Livre | Não | PWM (LEDC) | 1,8 V nos módulos V |
| J3-16 | GPIO48 | Livre | Não | PWM (LEDC) | 1,8 V nos módulos V, LED RGB (v1.0) |
Pinos padrão do Arduino-ESP32 para o ESP32-S3: I²C em 8 (SDA) e 9 (SCL), SPI em 12 (SCK), 13 (MISO), 11 (MOSI) e 10 (SS), UART0 em 43 (TX) e 44 (RX). Pela matriz GPIO, eles podem ir para qualquer pino livre.
Perguntas frequentes
Quais pinos do ESP32-S3 são seguros para usar?
Em uma DevKitC-1, os pinos sem restrições são os GPIOs 1, 2, 4 a 18, 21, 38 a 42, 47 e 48 (exceto nas placas N16R8V e N32R8V de 1,8 V); o 38 ou o 48 também aciona o LED RGB, conforme a versão da placa. O GPIO3 também está livre, a menos que um eFuse o use para o JTAG, e os GPIOs 35 a 37 também ficam livres nas placas N8 e N8R2. Cuidado com os GPIOs 0, 45 e 46 (strapping), 19 e 20 (USB) e 43 e 44 (UART0).
Por que não posso usar os GPIOs 35, 36 e 37?
Nas placas com PSRAM ou flash octal (N8R8, N16R8V, N32R8V), esses pinos estão ligados à memória dentro do módulo, e acioná-los trava o programa. Eles só estão livres nas versões N8 e N8R2.
Posso usar o ADC2 com Wi-Fi no ESP32-S3?
Não de forma confiável: o driver do Wi-Fi usa o ADC2, então as leituras nos GPIOs 11 a 20 podem falhar com o Wi-Fi ligado. Coloque as entradas analógicas nos GPIOs 1 a 10 (ADC1).
Qual porta USB da DevKitC-1 devo usar?
As duas servem para fazer upload. A porta UART passa por um conversor USB-UART ligado aos GPIOs 43 e 44; a porta USB vai até o USB do próprio chip nos GPIOs 19 e 20 e oferece também depuração JTAG e funções de dispositivo USB, como um teclado.
Os pinos do ESP32-S3 toleram 5 V?
Não. Os GPIOs trabalham com 3,3 V e não são garantidos para 5 V. Para sinais de 5 V, use um conversor de nível lógico ou um divisor resistivo.