Nombres D y números GPIO
De D0 a D3 son los GPIO del 2 al 5, D4 y D5 los GPIO 6 y 7 (I²C por defecto), D6 y D7 los GPIO 21 y 20 (UART), y de D8 a D10 los GPIO del 8 al 10 (SPI por defecto). Con la placa XIAO_ESP32C3 seleccionada en Arduino-ESP32, las constantes de D0 a D10 dan el GPIO correcto.
Pines de strapping en D0, D8 y D9
Seeed advierte que el GPIO2 (D0), el GPIO8 (D8) y el GPIO9 (D9) son pines de strapping: un circuito que los mantenga en el nivel equivocado al encender puede impedir que la placa arranque o que acepte programas. El GPIO9 es también el botón BOOT. Cuando el programa ya corre funcionan con normalidad, así que úsalos para salidas o para el SPI antes que para sensores que manejen la línea al encender.
| GPIO | Valor en el reset | Qué elige | En la práctica |
|---|---|---|---|
| 2 | Sin conectar | No decide el arranque, pero Espressif recomienda un pull-up | Mantenlo en ALTO durante el reset |
| 8 | Sin conectar | Debe estar en ALTO para entrar en modo de descarga | No lo mantengas en BAJO al encender |
| 9 | Pull-up débil (ALTO) | Modo de arranque: ALTO ejecuta el programa, BAJO entra en modo de descarga | Botón BOOT; nada más debe mantenerlo en BAJO |
Pines analógicos y deep sleep
D0, D1 y D2 (GPIO del 2 al 4) están en el ADC1. D3 (GPIO5) está en el ADC2, que ESP-IDF y Arduino-ESP32 no admiten en el ESP32-C3, así que usa de D0 a D2 para las lecturas analógicas. Solo los GPIO del 0 al 5 pueden despertar al chip del deep sleep, es decir, de D0 a D3 en esta placa.
Alimentación, batería y LED
La placa funciona con USB-C o con una batería de litio de 3,7 V, que carga a un máximo de 380 mA. Seeed da 500 mA para la salida de 3,3 V en sus especificaciones (700 mA en otra parte de la misma página) y unos 44 µA en deep sleep. No hay LED de usuario: el pequeño LED junto al conector USB indica la carga.
Tabla completa de pines de la XIAO ESP32C3
| Pin | GPIO | Estado | Analógico | Funciones | Notas |
|---|---|---|---|---|---|
| D0 | GPIO2 | Con cuidado | ADC1_CH2 | RTC_GPIO2, PWM (LEDC) | strapping |
| D1 | GPIO3 | Libre | ADC1_CH3 | RTC_GPIO3, PWM (LEDC) | Sin restricciones |
| D2 | GPIO4 | Libre | ADC1_CH4 | RTC_GPIO4, PWM (LEDC), MTMS (JTAG) | JTAG |
| D3 | GPIO5 | Libre | ADC2_CH0 | RTC_GPIO5, PWM (LEDC), MTDI (JTAG) | ADC2 no admitido, JTAG |
| D4 | GPIO6 | Libre | No | PWM (LEDC), MTCK (JTAG) | JTAG, I²C SDA |
| D5 | GPIO7 | Libre | No | PWM (LEDC), MTDO (JTAG) | JTAG, I²C SCL |
| D8 | GPIO8 | Con cuidado | No | PWM (LEDC) | strapping, SPI SCK |
| D9 | GPIO9 | Con cuidado | No | PWM (LEDC) | strapping, botón BOOT, SPI MISO (RX) |
| D10 | GPIO10 | Libre | No | PWM (LEDC) | SPI MOSI (TX) |
| D7 | GPIO20 | Con cuidado | No | PWM (LEDC), U0RXD | UART0, UART RX |
| D6 | GPIO21 | Con cuidado | No | PWM (LEDC), U0TXD | UART0, UART TX |
Pines por defecto de Arduino-ESP32 para la XIAO ESP32C3: I²C en D4 (SDA) y D5 (SCL), SPI en D8 (SCK), D9 (MISO) y D10 (MOSI), UART en D6 (TX) y D7 (RX). Con la GPIO matrix puedes moverlos a otros pads.
Preguntas frecuentes
¿La XIAO ESP32C3 tiene LED integrado?
No tiene LED de usuario. La wiki de Seeed dice que LED_BUILTIN no está disponible en esta placa, y el LED junto al conector USB solo indica la carga de la batería. Conecta un LED con una resistencia a un pad libre, como D10.
¿Qué pines de la XIAO ESP32C3 son analógicos?
D0, D1 y D2 (GPIO 2, 3 y 4), en el ADC1. D3 está en el ADC2, que no se admite en el ESP32-C3.
¿Por qué mi XIAO ESP32C3 no arranca con un sensor en D9?
D9 es el GPIO9, un pin de strapping conectado al botón BOOT: si el sensor lo pone en BAJO al encender, el chip arranca en modo de descarga. Pasa el sensor a otro pad, o asegúrate de que la línea siga en ALTO durante el reset.
¿Puedo alimentar la XIAO ESP32C3 con batería?
Sí, con una batería de litio de 3,7 V conectada a los pads de la batería. La placa la carga desde el USB-C a un máximo de 380 mA.
¿Los pines de la XIAO ESP32C3 toleran 5 V?
No. Los GPIO del ESP32-C3 trabajan a 3,3 V. El pad 5V es un pin de alimentación, no una entrada de señal.