Referencia de pinout del ESP32-S3 DevKitC
El ESP32-S3 DevKitC es una increíble placa de desarrollo que ha sido diseñada pensando en las exigentes demandas de procesamiento de las aplicaciones actuales de la Inteligencia Artificial de las Cosas (AIoT). En su núcleo, cuenta con un potente microprocesador dual-core Xtensa de 32 bits LX7 capaz de operar a frecuencias de hasta 240 MHz. Además, introduce instrucciones vectoriales especializadas que aceleran tareas de aprendizaje automático y procesamiento de señales avanzadas, convirtiéndola en una herramienta poderosa para ingenieros creativos.
Sin embargo, para aprovechar al máximo las capacidades del ESP32-S3 DevKitC, es fundamental comprender su distribución de pines. Cada pin tiene un papel específico, y saber qué hace cada uno te ayudará a construir circuitos con mayor confianza, evitar errores costosos y maximizar el uso de esta impresionante tecnología.
La placa está diseñada para ser increíblemente fácil de usar en prototipos, presentando dos filas de 22 pines a lo largo de sus lados, lo que da un total de 44 puntos de conexión principales. Estos pines están espaciados a una distancia estándar de 2.54 mm, lo que significa que la placa se encaja perfectamente en una placa de pruebas estándar o se adapta sin problemas a una placa de circuito personalizada utilizando conectores comunes.
A continuación, profundizaremos en las diferentes funciones de los pines y su importancia en la programación y desarrollo de proyectos. Empezaremos revisando los pines GPIO.
- Pines GPIO del ESP32-S3 DevKitC
- Pines de interrupción del ESP32-S3 DevKitC
- Pines RTC GPIO del ESP32-S3 DevKitC
- Pines de strapping del ESP32-S3 DevKitC
- Pines de SPI Flash y PSRAM del ESP32-S3 DevKitC
- Pines ADC del ESP32-S3 DevKitC
- Pines de detección capacitiva del ESP32-S3 DevKitC
- Pines I2C del ESP32-S3 DevKitC
- Pines UART del ESP32-S3 DevKitC
- Pines SPI del ESP32-S3 DevKitC
- Pines I2S del ESP32-S3 DevKitC
- Pines PWM del ESP32-S3 DevKitC
- Pines de interfaz automotriz de dos hilos (TWAI/CAN) del ESP32-S3 DevKitC
- Interfaz USB-OTG del ESP32-S3 DevKitC
- Pines de depuración JTAG de hardware tradicional del ESP32-S3 DevKitC
- Pin de LED RGB incorporado del ESP32-S3 DevKitC
- Pines de alimentación del ESP32-S3 DevKitC
- Pines de control del ESP32-S3 DevKitC
Pines GPIO del ESP32-S3 DevKitC
El ESP32-S3 DevKitC expone un total de 36 pines GPIO en sus conectores: desde GPIO 0 hasta GPIO 21, además de GPIO 35 a GPIO 48.
Es crucial recordar que el ESP32-S3 opera exclusivamente con lógica de 3.3V. Esto significa que nunca debes exponer los pines GPIO a una fuente de 5V, ya que esto puede dañar permanentemente la placa.
La matriz GPIO y el IO MUX
Una de las características más poderosas del ESP32-S3 es su Matriz GPIO. Puedes imaginarla como un sistema interno de enrutamiento dentro del chip. Esta matriz permite asignar prácticamente cualquier función digital, como PWM, I2C, SPI, UART, I2S o TWAI, a casi cualquier pin físico simplemente cambiando el código.
A pesar de esta flexibilidad, hay una limitación menor: debido a que las señales deben viajar a través de la Matriz GPIO, se introduce un pequeño retraso. Para la mayoría de los proyectos, este retraso es imperceptible, pero puede ser problemático en aplicaciones que requieren señales extremadamente rápidas o lecturas analógicas altamente sensibles.
Para manejar tales tareas exigentes, el ESP32-S3 elige evitar la Matriz GPIO y utiliza un componente llamado IO MUX.
El IO MUX conecta pines físicos específicos directamente al hardware dedicado dentro del chip. Algunas conexiones son fijas y no se pueden mover en software, mientras que otras tienen asignaciones predeterminadas pero pueden ser reubicadas usando la Matriz GPIO. Funciones que dependen estrictamente del IO MUX incluyen canales ADC, la interfaz de depuración JTAG interna, el controlador USB Serial/JTAG y conexiones SPI de alta velocidad utilizadas para la memoria flash integrada.
Así que, aunque tienes la libertad de enrutar señales como I2C o PWM a casi cualquier pin del DevKitC, no todas las funciones pueden ser movidas libremente. Algunas características, especialmente las análogas o de alta velocidad, deben permanecer en sus pines asignados debido a su dependencia del IO MUX.
¿Qué GPIO del ESP32-S3 DevKitC son seguros de usar?
Aunque el ESP32-S3 DevKitC tiene muchos pines con diversas funciones, algunos de ellos pueden no ser adecuados para tus proyectos. A continuación, se presenta una tabla que muestra qué pines son seguros usar y cuáles deben ser utilizados con precaución:
| Pin | Descripción |
|---|---|
| Seguros | Estos son tus pines prioritarios; son completamente seguros de usar. |
| Con precaución | Presta atención, ya que su comportamiento, especialmente durante el arranque, puede ser impredecible. |
Pines de interrupción del ESP32-S3 DevKitC
A diferencia de los microcontroladores con pines de interrupción dedicados, el ESP32-S3 utiliza una avanzada Matriz de Interrupciones. Esta matriz permite que cualquier pin GPIO funcional se configure como una fuente de interrupción externa.
El ESP32-S3 admite cuatro modos de disparo diferentes que determinan cuándo ocurre exactamente esta interrupción:
- Disparo en flanco ascendente
- Disparo en flanco descendente
- Disparo en nivel alto
- Disparo en nivel bajo
Pines RTC GPIO del ESP32-S3 DevKitC
Algunos pines GPIO en el ESP32-S3 están conectados al sistema de reloj en tiempo real (RTC), conocido por su bajo consumo de energía. Estos pines son lo que llamamos GPIO RTC. En el ESP32-S3 DevKitC, estos son GPIO0 a GPIO21.
Estos pines son especialmente importantes cuando el ESP32 está en modo de sueño profundo. Pueden activar el chip cuando ocurre un evento externo, como un botón presionado, un sensor de movimiento PIR detectando movimiento o un acelerómetro enviando una señal de alerta.
Pines de strapping del ESP32-S3 DevKitC
Los pines de strapping son un conjunto especial de GPIOs altamente sensibles que determinan cómo se comporta el microcontrolador cuando se inicia. En el preciso momento en que el ESP32-S3 arranca o se reinicia, el chip verifica físicamente los niveles de voltaje en estos pines específicos. Los voltajes detectados durante este breve periodo indican al chip cómo arrancar, cómo manejar la depuración y qué voltaje enviar a la memoria flash.
El ESP32-S3 tiene cuatro pines de strapping críticos: GPIO0, GPIO3, GPIO45 y GPIO46.
Cada uno de estos pines tiene una resistencia interna de pull-up o pull-down débil. Estas resistencias establecen un estado predeterminado para el pin si no se conecta nada más a él. Así que no necesitas preocuparte por estos pines, ya que la placa ya los ha configurado correctamente para un uso normal.
Los pines de strapping deben ser usados con mucho cuidado. Antes de conectar sensores o módulos a ellos, asegúrate de que no forzarán el nivel lógico incorrecto durante el inicio.
Por ejemplo, si conectas un sensor o interruptor que accidentalmente mantiene GPIO 0 en bajo cuando enciendes la alimentación, el ESP32-S3 entrará en modo de descarga y se negará a ejecutar tu código.
GPIO45 puede causar un problema aún más grave; si un módulo externo fuerza GPIO 45 en alto durante el arranque, el chip configurará su regulador de memoria para suministrar solo 1.8V. Si la memoria flash en la placa está diseñada para funcionar a 3.3V, el sistema sufrirá un apagón y no podrá arrancar.
Pines de SPI Flash y PSRAM del ESP32-S3 DevKitC
Para lograr un rendimiento de procesamiento extremo, el ESP32-S3 se basa en gran medida en sus chips de memoria integrados: SPI Flash (para almacenar tu firmware y datos del programa) y PSRAM (para proporcionar memoria adicional para las aplicaciones en ejecución). Dado que el procesador principal necesita comunicarse con estos chips de memoria a velocidades increíblemente altas, los pines específicos que los conectan están reservados y no deben usarse para otros propósitos.
Pines estándar Quad-SPI (GPIO26 a GPIO32)
En los módulos estándar del ESP32-S3, GPIO26 a GPIO32 están permanentemente conectados a los chips de SPI Flash y PSRAM en modo Quad-SPI. Por lo tanto, estos pines no deben ser utilizados para aplicaciones de usuario normales.
Afortunadamente, no tienes que preocuparte por usarlos accidentalmente en el ESP32-S3 DevKitC, ya que estos pines no están expuestos en los conectores de la placa. Sin embargo, es importante conocerlos, especialmente si utilizas una placa ESP32-S3 diferente o trabajas con un chip desnudo en un diseño personalizado.
Pines de expansión Octal-SPI (GPIO33 a GPIO37)
Una característica que distingue al ESP32-S3 de algunos chips anteriores es su soporte para memoria Octal-SPI ultra rápida (OPI). Este tipo de memoria es esencial para tareas pesadas como la representación de modelos de Inteligencia Artificial o gráficos grandes.
Si tu placa específica utiliza esta memoria Octal (que se puede identificar en versiones de chip como ESP32-S3R8 o ESP32-S3R8V), el bus de memoria se expande para ocupar cinco pines adicionales: GPIO33 a GPIO37. En estas placas de desarrollo mejoradas, estos pines específicos se reservan estrictamente.
Pines ADC del ESP32-S3 DevKitC
El ESP32-S3 integra dos ADCs SAR de alto rendimiento: ADC1 y ADC2. Estos permiten que la placa lea voltajes analógicos de sensores como potenciómetros, sensores de luz o sensores de temperatura. En la placa ESP32-S3 DevKitC, hay 20 pines que se pueden usar para entradas analógicas.
GPIO1 a GPIO10 pertenecen a ADC1, mientras que GPIO11 a GPIO20 pertenecen a ADC2.
Estos ADC tienen una resolución de 12 bits, lo que significa que pueden dividir el rango de voltaje de entrada en 4096 niveles separados (de 0 a 4095). Esto permite a la placa medir señales analógicas con bastante detalle.
Dado que el módulo ADC2 también es utilizado por el Wi-Fi, no puede ser utilizado cuando Wi-Fi está habilitado. Por lo tanto, si tu proyecto requiere Wi-Fi y entrada analógica al mismo tiempo, es mejor usar los pines ADC1.
Atenuación ADC
Dentro del chip, el ADC utiliza un voltaje de referencia interno base, conocido como Vref, para medir las señales analógicas entrantes. Aunque este voltaje varía ligeramente de un chip a otro, el Vref medio es aproximadamente de 1.1V.
Para medir voltajes más altos que Vref de manera segura, el ESP32-S3 utiliza una función controlada por software llamada atenuación. La atenuación escala el voltaje entrante antes de que el ADC lo procese. Al aumentar el nivel de atenuación en tu código, expandes el rango máximo medible de tus pines analógicos.
Hay 4 opciones de atenuación disponibles:
- 0 dB: Rango de 0 a 1.1V.
- 2.5 dB: Rango de 0 a 1.5V.
- 6 dB: Rango de 0 a 2.0V.
- 11 dB: Rango de 0 a 3.9V.
Pines de detección capacitiva del ESP32-S3 DevKitC
El ESP32-S3 cuenta con 14 GPIOs de detección táctil capacitiva: GPIO 1 a GPIO 14.
Estos pines pueden detectar cuando algo conductor, como tu dedo, se acerca a ellos. Funcionan midiendo un cambio en la capacitancia. Cuando tu dedo se acerca al pin, cambia ligeramente las propiedades eléctricas del circuito, y la placa reconoce este cambio como un toque.
No es necesario que toques los pines directamente. Si adjuntas un material conductor como papel aluminio, tela conductora o pintura conductora a uno de estos pines, puedes convertir ese material en un panel táctil. Esto facilita la creación de proyectos creativos, como botones personalizados, lámparas táctiles o arte interactivo.
Pines I2C del ESP32-S3 DevKitC
El ESP32-S3 presenta dos controladores I2C de hardware completamente independientes. Estos controladores pueden operar en modo estándar (100 kbit/s), modo rápido (400 kbit/s) y velocidades superiores dependiendo de la capacitancia del bus.
A diferencia de algunas otras funciones en el ESP32-S3, los controladores I2C no están asignados a pines fijos por defecto. En cambio, pueden asignarse a cualquier pin GPIO a través de la Matriz GPIO.
Hay un detalle de hardware crucial que debes recordar al conectar tus dispositivos I2C. Necesitas añadir resistencias pull-up externas—típicamente entre 4.7 kΩ y 10 kΩ—tanto a las líneas SDA como SCL. Si dependes únicamente de las débiles resistencias pull-up internas del chip, que son aproximadamente de 45 kΩ, tus señales eléctricas pueden elevarse demasiado lento, especialmente en cables más largos o buses con mayor capacitancia. Esto puede llevar a errores de comunicación o hacer que el bus I2C deje de funcionar correctamente.
Pines UART del ESP32-S3 DevKitC
El ESP32-S3 tiene tres controladores UART de hardware: UART0, UART1 y UART2.
UART0 se utiliza principalmente para la consola y depuración. Por defecto, UART0 está asignado a GPIO43 para TX y GPIO44 para RX en módulos ESP32-S3. Estos pines son importantes porque emiten mensajes de arranque del ROM y permiten depurar tu código a través de un monitor serial. Reasignar estos pines en tu software no se recomienda, ya que deshabilitará completamente tu consola de depuración principal.
UART1 está asignado por defecto a GPIO17 para TX y GPIO18 para RX en módulos ESP32-S3. Sin embargo, puede trasladarse a otros pines GPIO a través de la Matriz GPIO.
UART2 está completamente desasignado por defecto, lo que significa que puedes mapearlo a casi cualquier pin GPIO utilizando la Matriz GPIO.
A continuación, se presenta una tabla que muestra los pines TX y RX predeterminados para cada controlador UART en el ESP32-S3 DevKitC:
| Controlador UART | Pines TX | Pines RX |
|---|---|---|
| UART0 | GPIO43 | GPIO44 |
| UART1 | GPIO17 | GPIO18 |
| UART2 | No asignado | No asignado |
Pines SPI del ESP32-S3 DevKitC
El ESP32-S3 contiene cuatro controladores SPI: SPI0, SPI1, SPI2 y SPI3.
SPI0 y SPI1 están estrictamente reservados para la memoria Flash interna del chip y PSRAM. Por lo tanto, no puedes utilizarlos. Esto deja a SPI2 y SPI3 completamente disponibles para tus aplicaciones.
Por defecto, SPI2 está conectado directamente a través del IO MUX a los siguientes pines nativos:
- GPIO23 - MOSI
- GPIO22 - MISO
- GPIO19 - SCK
- GPIO18 - CS
Aunque SPI2 aún puede asignarse a otros pines GPIO a través de la Matriz GPIO, se recomienda encarecidamente mantener estos pines de hardware predeterminados. Usar la conexión directa IO MUX evita los retrasos de enrutamiento interno, permitiéndote alcanzar velocidades de reloj de hasta 80 MHz.
Finalmente, SPI3 no está asignado por defecto. Puedes mapearlo libremente a cualquier pin GPIO disponible utilizando la Matriz GPIO.
Pines I2S del ESP32-S3 DevKitC
El ESP32-S3 tiene dos periféricos I2S (I2S0 e I2S1) diseñados específicamente para la transferencia de audio digital sincronizado de alta fidelidad.
Una conexión I2S normalmente necesita al menos tres líneas de señal: el Reloj de Bit (BCLK), la Selección de Palabra (WS) y la línea de Datos Seriales (DIN/DOUT). En algunos casos, también se utiliza un Reloj Maestro (MCLK) para mantener sincronizados los dispositivos de audio externos.
Afortunadamente, las tasas de muestreo de audio estándar, como 44.1 kHz y 48 kHz, están bien dentro de la velocidad que la Matriz GPIO puede manejar. Así que las señales I2S pueden enrutarse de manera segura a casi cualquier pin GPIO disponible.
Pines PWM del ESP32-S3 DevKitC
Cualquier pin GPIO expuesto en el ESP32-S3 DevKitC, incluyendo GPIO0 a GPIO21 y GPIO35 a GPIO48, puede emitir una señal PWM de alta resolución.
El microcontrolador ofrece dos maneras distintas de manejar estas señales dependiendo de la complejidad de tu proyecto.
Controlador PWM LED (LEDC)
Para tareas estándar, como atenuar LEDs, barrer pequeños servos o controlar un elemento calefactor simple, usarás el Controlador PWM LED (LEDC). Este controlador proporciona ocho canales de salida PWM completamente independientes, dándote un control preciso sobre la frecuencia y el ciclo de trabajo de tus señales. Debido a que las señales pueden ser enrutadas a través de la Matriz GPIO, pueden ser asignadas a casi cualquier pin físico.
PWM de Control de Motor (MCPWM)
Para robótica compleja y control de motores industriales, el ESP32-S3 presenta un controlador MCPWM (Modulador de Ancho de Pulso de Control de Motor) dedicado. Este hardware está diseñado específicamente para accionar H-bridges complejos, motores de CC con escobillas y motores de CC sin escobillas (BLDC). Soporta características avanzadas como inserción de tiempo muerto en hardware (para prevenir cortocircuitos en el H-bridge), manejo de fallos y modulación de portadora.
Pines de interfaz automotriz de dos hilos (TWAI/CAN) del ESP32-S3 DevKitC
El controlador TWAI es la implementación de hardware nativa del ESP32-S3 del protocolo de bus CAN (Controller Area Network). Cumple estrictamente con la especificación ISO 11898-1 (CAN 2.0B), soportando identificadores de mensaje estándar de 11 bits y extendidos de 29 bits.
Dado que las velocidades del bus CAN estándar llegan hasta 1 Mbps, las señales TWAI (TX, RX, BUS-OFF y CLKOUT) pueden ser enrutadas a través de la Matriz GPIO a cualquier pin disponible en la placa sin problema alguno.
Sin embargo, el ESP32-S3 opera estrictamente con lógica de 3.3V, lo que significa que no puede producir directamente las señales de voltaje diferencial necesarias para un bus CAN real. Para conectar de manera segura tu placa DevKitC a un bus CAN, debes usar un chip transceptor CAN externo de 3.3V (como el SN65HVD230 o el TJA1051T/3).
Interfaz USB-OTG del ESP32-S3 DevKitC
Una de las mayores ventajas del ESP32-S3 es su controlador USB 1.1 OTG (On-The-Go) nativo de alta velocidad.
Sin embargo, es importante recordar que esta interfaz USB está permanentemente conectada a GPIO19 para D- y GPIO20 para D+. Estos pines proporcionan emulación simultánea de consola serial (CDC) y depuración avanzada JTAG a través de una única conexión de cable tipo C.
Dado que GPIO19 y GPIO20 están conectados directamente al sistema USB incorporado, debes evitar usar estos pines para otros propósitos. Si accidentalmente reconfiguras GPIO 19 o GPIO 20 para actuar como entradas o salidas digitales estándar, ¡severás instantáneamente la conexión USB interna y quedarás completamente bloqueado de la comunicación USB!
Pines de depuración JTAG de hardware tradicional del ESP32-S3 DevKitC
Si bien la interfaz USB-JTAG integrada es increíblemente conveniente, a veces puede que necesites desesperadamente GPIO 19 y 20 para otro propósito. En ese caso, el ESP32-S3 mantiene el soporte para la depuración JTAG de hardware tradicional.
Por defecto, esta interfaz está conectada directamente a través del IO MUX a los siguientes pines nativos:
- GPIO25 - TDI
- GPIO26 - TCK
- GPIO27 - TMS
- GPIO14 - TDO
Si la depuración JTAG de hardware no es necesaria en el proyecto final, estos cuatro pines pueden volver a usarse como pines GPIO normales sin restricciones.
Pin de LED RGB incorporado del ESP32-S3 DevKitC
La placa DevKitC cuenta con un LED RGB direccionable WS2812 integrado, que es fantástico para añadir retroalimentación visual a tus proyectos.
Sin embargo, el pin específico al que se conecta este LED depende completamente de la versión de hardware de tu placa. En la DevKitC-1 v1.0, el LED está cableado a GPIO 48, mientras que en la más nueva DevKitC-1 v1.1 se conecta a GPIO 38.
Por lo tanto, es crucial verificar la versión específica de tu placa antes de escribir tu código para asegurarte de que tu LED se ilumine como se espera.
Pines de alimentación del ESP32-S3 DevKitC
El ESP32-S3 DevKitC tiene varios pines de alimentación. Estos pines se utilizan para alimentar la placa y también pueden proporcionar energía a sensores, módulos y otros componentes externos conectados a ella.
Los puertos USB tipo C (el puerto USB a UART y el puerto USB del ESP32-S3) son el método principal para alimentar la placa de desarrollo ESP32-S3 DevKitC. Cuando conectas la placa a una computadora o a un adaptador de corriente USB, la conexión USB suministra 5V a un regulador de voltaje de baja caída (LDO) en la placa. Este regulador convierte los 5V en un voltaje estable de 3.3V, que es el requerido por el chip ESP32-S3 y otras partes de la placa.
Pin de 5V ofrece otra forma de alimentar la DevKitC. Si deseas ejecutar tu proyecto fuera de una computadora, puedes usar este pin. Al conectar un paquete de baterías o un adaptador de corriente externo que suministre entre 4.3V y 6.0V, puedes alimentar la placa directamente. Al igual que con la alimentación USB, el regulador en la placa convertirá este voltaje a 3.3V para el resto del circuito.
Pin de 3V3 cumple un doble propósito dependiendo de tu configuración. En la mayoría de los casos, cuando la placa se alimenta a través de USB o a través del pin de 5V, el pin de 3V3 actúa como una salida. Proporciona un suministro estable de 3.3V que puede ser utilizado para alimentar pequeños sensores o módulos de 3.3V conectados a la placa. Solo necesitas monitorear el consumo total de corriente, ya que el ESP32-S3 puede consumir hasta 500mA durante ráfagas de transmisión Wi-Fi intensas.
Alternativamente, el pin de 3V3 también puede utilizarse como entrada. Si ya tienes una batería o fuente de alimentación externa muy estable de 3.3V, puedes alimentar esa energía directamente al pin de 3V3. Este método evita por completo el regulador de la placa y alimenta directamente los circuitos lógicos del microcontrolador.
Pines de control del ESP32-S3 DevKitC
Botón BOOT (GPIO 0) está físicamente conectado a GPIO 0. Mantener este botón presionado fuerza la lógica de strapping a un estado físico bajo, haciendo que el ESP32-S3 entre en modo bootloader.
Botón RESET (CHIP_PU) está vinculado a la línea de habilitación del chip (CHIP_PU). Presionarlo brevemente corta la energía a la lógica digital principal, deteniendo inmediatamente el microcontrolador y forzándolo a reiniciarse.
Deja una respuesta

Estos temas te pueden interesar