En la entrada anterior, vimos en detalle los distintos pines del ESP32, así como sus funciones y utilidades específicas.
Sin embargo, al igual que pasaba con el ESP8266, no todos los pines del ESP32 son igualmente seguros para usar en nuestros proyectos.
Esto es debido debe a que algunos pines desempeñan roles específicos o participan en el proceso de arranque del dispositivo. Utilizar incorrectamente estos pines puede ocasionar conflictos que hagan que no funcione tu proyecto, o incluso que rompas algo.
Si estáis usando un ESP32-S3, tenéis un resumen similar en esta entrada Qué pines puedo usar en un ESP32-S3
Resumen de los pines
Por lo tanto, es muy útil tener una tabla de referencia que nos proporcione información clara y precisa sobre qué pines son seguros para su utilización y cuáles tienen funciones específicas.
Os aconsejo tener esta tabla a mano y consultarla antes de empezar un proyecto con un ESP32, para evitarnos sustos por haber empleado un pin que no deberíamos usar.
GPIO | NAME | FUNCIONES | PUEDES USARLO |
---|---|---|---|
0 | IO0 | GPIO0, ADC2_CH1, TOUCH_CH1, Boot | ⚠️Pulled-UP. Debe ser HIGH al arranque. Debe ser LOW para flasheo. Genera PWM al arrancar |
1 | TX | GPIO1, U0TXD | ❌Pin TX. Salida de depuración al arrancar |
2 | IO2 | GPIO2, ADC2_CH2, TOUCH_CH2 | ⚠️Debe ser flotante o LOW para flasheo. Conectado al LED |
3 | RX | GPIO3, U0RXD | ❌Pin RX. En HIGH al arrancar |
4 | IO4 | GPIO4, ADC2_CH0, TOUCH_CH0 | ✔️ |
5 | IO5 | GPIO5 | ⚠️Debe ser HIGH al arrancar. Genera señal PWM al arrancar |
6 | CLK | GPIO6 | ❌FLASH SPI |
7 | D0 | GPIO7 | ❌FLASH SPI |
8 | D1 | GPIO8 | ❌FLASH SPI |
9 | D2 | GPIO9 | ❌FLASH SPI |
10 | D3 | GPIO10 | ❌FLASH SPI |
11 | CMD | GPIO11 | ❌FLASH SPI |
12 | IO12 | GPIO12, ADC2_CH5, TOUCH_CH5, MTDI | ⚠️Debe ser LOW al arrancar Debug JTAG |
13 | IO13 | GPIO13, ADC2_CH4, TOUCH_CH4, MTCK | 🟢Debug JTAG |
14 | IO14 | GPIO14, ADC2_CH6, TOUCH_CH6, MTMS | ⚠️Genera señal PWM al arrancar Debug JTAG |
15 | IO15 | GPIO15, ADC2_CH3, TOUCH_CH3, MTDO | ⚠️Debe ser HIGH al arrancar Debug JTAG |
16 | IO16 | GPIO16 | ✔️ |
17 | IO17 | GPIO17 | ✔️ |
18 | IO18 | GPIO18 | ✔️ |
19 | IO19 | GPIO19 | ✔️ |
21 | IO21 | GPIO21 | ✔️ |
22 | IO22 | GPIO22 | ✔️ |
23 | IO23 | GPIO23 | ✔️ |
25 | IO25 | GPIO25, ADC1_CH8, DAC_1 | ✔️ |
26 | IO26 | GPIO26, ADC2_CH9, DAC_2 | ✔️ |
27 | IO27 | GPIO27, ADC2_CH7, TOUCH_CH7 | ✔️ |
32 | IO32 | GPIO32, ADC1_CH4, TOUCH_CH9, XTAL_32K_P | ✔️ |
33 | IO33 | GPIO33, ADC1_CH5, TOUCH_CH8, XTAL_32K_N | ✔️ |
34 | IO34 | GPIO34, ADC1_CH6, VDET_1 | ⚠️Solo entrada |
35 | IO35 | GPIO35, ADC1_CH7, VDET_2 | ⚠️Solo entrada |
36 | VP | GPIO36, ADC1_CH0, S_VP | ⚠️Solo entrada |
37 | VP | GPIO37 | ⚠️Solo entrada |
38 | VP | GPIO38 | ⚠️Solo entrada |
39 | VN | GPIO39, ADC1_CH3, S_VN | ⚠️Solo entrada |
EN | EN | CHIP_PU, Reset | ❌ |