Nomes D e números GPIO
D0 a D3 são os GPIOs 2 a 5, D4 e D5 os GPIOs 6 e 7 (I²C padrão), D6 e D7 os GPIOs 21 e 20 (UART), e D8 a D10 os GPIOs 8 a 10 (SPI padrão). Com a placa XIAO_ESP32C3 selecionada no Arduino-ESP32, as constantes D0 a D10 dão o GPIO certo.
Pinos de strapping em D0, D8 e D9
A Seeed avisa que GPIO2 (D0), GPIO8 (D8) e GPIO9 (D9) são pinos de strapping: um circuito que os mantenha no nível errado ao ligar a placa pode impedir o boot ou a gravação. O GPIO9 também é o botão BOOT. Com o programa rodando, eles funcionam normalmente, então prefira usá-los para saídas ou para o SPI em vez de sensores que acionam a linha ao ligar a placa.
| GPIO | Padrão no reset | O que seleciona | Na prática |
|---|---|---|---|
| 2 | Flutuando | Não decide o boot, mas a Espressif recomenda um pull-up | Mantenha em ALTO no reset |
| 8 | Flutuando | Precisa estar em ALTO para entrar no modo de download | Não o mantenha em BAIXO ao ligar a placa |
| 9 | 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 |
Pinos analógicos e deep sleep
D0, D1 e D2 (GPIOs 2 a 4) ficam no ADC1. O D3 (GPIO5) está no ADC2, que o ESP-IDF e o Arduino-ESP32 não suportam no ESP32-C3, então use D0 a D2 para leituras analógicas. Só os GPIOs 0 a 5 conseguem despertar o chip do deep sleep, ou seja, D0 a D3 nesta placa.
Alimentação, bateria e LED
A placa funciona com USB-C ou com uma bateria de lítio de 3,7 V, que ela carrega com no máximo 380 mA. A Seeed dá 500 mA para a saída de 3,3 V nas especificações (700 mA em outro trecho da mesma página) e cerca de 44 µA em deep sleep. Não há LED de usuário: o pequeno LED perto do conector USB indica a carga.
Tabela completa de pinos da XIAO ESP32C3
| Pino | GPIO | Status | Analógico | Funções | Notas |
|---|---|---|---|---|---|
| D0 | GPIO2 | Com cuidado | ADC1_CH2 | RTC_GPIO2, PWM (LEDC) | strapping |
| D1 | GPIO3 | Livre | ADC1_CH3 | RTC_GPIO3, PWM (LEDC) | Sem restrições |
| D2 | GPIO4 | Livre | ADC1_CH4 | RTC_GPIO4, PWM (LEDC), MTMS (JTAG) | JTAG |
| D3 | GPIO5 | Livre | ADC2_CH0 | RTC_GPIO5, PWM (LEDC), MTDI (JTAG) | ADC2 não suportado, JTAG |
| D4 | GPIO6 | Livre | Não | PWM (LEDC), MTCK (JTAG) | JTAG, I²C SDA |
| D5 | GPIO7 | Livre | Não | PWM (LEDC), MTDO (JTAG) | JTAG, I²C SCL |
| D8 | GPIO8 | Com cuidado | Não | PWM (LEDC) | strapping, SPI SCK |
| D9 | GPIO9 | Com cuidado | Não | PWM (LEDC) | strapping, botão BOOT, SPI MISO (RX) |
| D10 | GPIO10 | Livre | Não | PWM (LEDC) | SPI MOSI (TX) |
| D7 | GPIO20 | Com cuidado | Não | PWM (LEDC), U0RXD | UART0, UART RX |
| D6 | GPIO21 | Com cuidado | Não | PWM (LEDC), U0TXD | UART0, UART TX |
Pinos padrão do Arduino-ESP32 para a XIAO ESP32C3: I²C em D4 (SDA) e D5 (SCL), SPI em D8 (SCK), D9 (MISO) e D10 (MOSI), UART em D6 (TX) e D7 (RX). Pela matriz GPIO, você pode movê-los para outros pads.
Perguntas frequentes
A XIAO ESP32C3 tem LED integrado?
Não tem LED de usuário. A wiki da Seeed diz que LED_BUILTIN não está disponível nesta placa, e o LED perto do conector USB só indica a carga da bateria. Ligue um LED com um resistor em um pad livre, como o D10.
Quais pinos da XIAO ESP32C3 são analógicos?
D0, D1 e D2 (GPIOs 2, 3 e 4), no ADC1. O D3 está no ADC2, que não é suportado no ESP32-C3.
Por que minha XIAO ESP32C3 não inicializa com um sensor no D9?
O D9 é o GPIO9, um pino de strapping ligado ao botão BOOT: se o sensor o colocar em BAIXO ao ligar a placa, o chip inicia no modo de download. Passe o sensor para outro pad, ou garanta que a linha fique em ALTO no reset.
Posso alimentar a XIAO ESP32C3 com bateria?
Sim, com uma bateria de lítio de 3,7 V ligada aos pads de bateria. A placa a carrega pelo USB-C com no máximo 380 mA.
Os pinos da XIAO ESP32C3 toleram 5 V?
Não. Os GPIOs do ESP32-C3 trabalham com 3,3 V. O pad 5V é um pino de alimentação, não uma entrada de sinal.