Nomi D e numeri GPIO
Da D0 a D3 sono i GPIO da 2 a 5, D4 e D5 i GPIO 6 e 7 (I²C predefinito), D6 e D7 i GPIO 21 e 20 (UART), e da D8 a D10 i GPIO da 8 a 10 (SPI predefinito). Con la scheda XIAO_ESP32C3 selezionata in Arduino-ESP32, le costanti da D0 a D10 danno il GPIO giusto.
Pin di strapping su D0, D8 e D9
Seeed avverte che il GPIO2 (D0), il GPIO8 (D8) e il GPIO9 (D9) sono pin di strapping: un circuito che li tiene al livello sbagliato all’accensione può impedire alla scheda di avviarsi o di ricevere i programmi. Il GPIO9 è anche il pulsante BOOT. Quando il programma gira funzionano normalmente, quindi usali per uscite o per l’SPI piuttosto che per sensori che pilotano la linea all’accensione.
| GPIO | Valore al reset | Cosa sceglie | In pratica |
|---|---|---|---|
| 2 | Scollegato | Non decide l’avvio, ma Espressif consiglia un pull-up | Tienilo ALTO al reset |
| 8 | Scollegato | Deve essere ALTO per entrare in modalità download | Non tenerlo BASSO all’accensione |
| 9 | Pull-up debole (ALTO) | Modo di avvio: ALTO esegue il programma, BASSO entra in modalità download | Pulsante BOOT; nient’altro deve tenerlo BASSO |
Pin analogici e deep sleep
D0, D1 e D2 (GPIO da 2 a 4) sono sull’ADC1. D3 (GPIO5) è sull’ADC2, che ESP-IDF e Arduino-ESP32 non supportano sull’ESP32-C3, quindi usa da D0 a D2 per le letture analogiche. Solo i GPIO da 0 a 5 possono svegliare il chip dal deep sleep, cioè su questa scheda da D0 a D3.
Alimentazione, batteria e LED
La scheda si alimenta dall’USB-C o da una batteria al litio da 3,7 V, e ricarica la batteria con una corrente fino a 380 mA. Seeed indica 500 mA per l’uscita a 3,3 V nelle specifiche (700 mA in un’altra parte della stessa pagina) e circa 44 µA in deep sleep. Non c’è un LED per l’utente: il piccolo LED vicino al connettore USB indica la ricarica.
Tabella completa dei pin della XIAO ESP32C3
| Pin | GPIO | Stato | Analogico | Funzioni | Note |
|---|---|---|---|---|---|
| D0 | GPIO2 | Con cautela | ADC1_CH2 | RTC_GPIO2, PWM (LEDC) | strapping |
| D1 | GPIO3 | Libero | ADC1_CH3 | RTC_GPIO3, PWM (LEDC) | Nessuna limitazione |
| D2 | GPIO4 | Libero | ADC1_CH4 | RTC_GPIO4, PWM (LEDC), MTMS (JTAG) | JTAG |
| D3 | GPIO5 | Libero | ADC2_CH0 | RTC_GPIO5, PWM (LEDC), MTDI (JTAG) | ADC2 non supportato, JTAG |
| D4 | GPIO6 | Libero | No | PWM (LEDC), MTCK (JTAG) | JTAG, I²C SDA |
| D5 | GPIO7 | Libero | No | PWM (LEDC), MTDO (JTAG) | JTAG, I²C SCL |
| D8 | GPIO8 | Con cautela | No | PWM (LEDC) | strapping, SPI SCK |
| D9 | GPIO9 | Con cautela | No | PWM (LEDC) | strapping, pulsante BOOT, SPI MISO (RX) |
| D10 | GPIO10 | Libero | No | PWM (LEDC) | SPI MOSI (TX) |
| D7 | GPIO20 | Con cautela | No | PWM (LEDC), U0RXD | UART0, UART RX |
| D6 | GPIO21 | Con cautela | No | PWM (LEDC), U0TXD | UART0, UART TX |
Pin predefiniti di Arduino-ESP32 per la XIAO ESP32C3: I²C su D4 (SDA) e D5 (SCL), SPI su D8 (SCK), D9 (MISO) e D10 (MOSI), UART su D6 (TX) e D7 (RX). Con la GPIO matrix puoi spostarli su altre piazzole.
Domande frequenti
La XIAO ESP32C3 ha un LED integrato?
Nessun LED per l’utente. Il wiki di Seeed dice che LED_BUILTIN non è disponibile su questa scheda, e il LED vicino al connettore USB indica solo la ricarica della batteria. Collega un LED con una resistenza a una piazzola libera, come D10.
Quali pin della XIAO ESP32C3 sono analogici?
D0, D1 e D2 (GPIO 2, 3 e 4), sull’ADC1. D3 è sull’ADC2, che sull’ESP32-C3 non è supportato.
Perché la mia XIAO ESP32C3 non si avvia con un sensore su D9?
D9 è il GPIO9, un pin di strapping collegato al pulsante BOOT: se il sensore lo porta BASSO all’accensione, il chip parte in modalità download. Sposta il sensore su un’altra piazzola, oppure fai in modo che la linea resti ALTA al reset.
Posso alimentare la XIAO ESP32C3 a batteria?
Sì, con una batteria al litio da 3,7 V collegata alle piazzole della batteria. La scheda la ricarica dall’USB-C fino a 380 mA.
I pin della XIAO ESP32C3 tollerano i 5 V?
No. I GPIO dell’ESP32-C3 lavorano a 3,3 V. La piazzola 5V è un pin di alimentazione, non un ingresso di segnale.