esp32-s3-detalles-hardware-pinout

Pinout y detalles del hardware del ESP32-S3

El ESP32-S3 es el sucesor natural como buque insignia de la familia ESP32 de Espressif.

El primer paso antes de poder usarlo debe ser familiarizarnos con sus características, y funcionalidades.

Así que, de igual forma que hicimos en esta entrada con el modelo ESP32 tradicional (sin versión), en esta entrada vamos a repasar los puntos principales de su características y hardware.

Así que empezamos con la tabla de características técnicas del ESP32-S3-

FeatureESP32-S3 Series
Launch year2020
CoreXtensa® dual-core 32-bit LX7
Wi-Fi protocols802.11 b/g/n, 2.4 GHz
Bluetooth®Bluetooth 5.0
Typical frequency240 MHz
SRAM512 KB
ROM384 KB
External flashUp to 1 GB device
External RAMUp to 1 GB device
GPIO45
ADC2x 12-bit SAR ADCs
DAC✖️
Timers4x 54-bit, 3x watchdog
Temperature sensor1
SPI4
LCD interface1
UART3
I2C2
I2S2
LED PWM8
Pulse counter4
Touch sensor14
Hall sensor✖️
Camera interface1

Pinout del ESP32

Ahora vamos a ver el esquema de patillaje (pinout) del ESP32 del aplaca de desarrollo oficial del ESP32-S3.

esp32-s3-devkitc-1

Ten en cuenta que estas son las características de esta placa en concreto. La que tengáis en vuestro dispositivo dependerá del SoM y la placa de desarrollo que estemos usando.

Como siempre, ante cualquier duda sobre vuestra placa lo mejor es que consultéis la documentación oficial de Espressif y, sobre todo, la información del fabricante del dispositivo.

Aquí os dejo el enlace a la documentación oficial de Espressif sobre la placa Esp32-S3 DevKitc 1.

ESP32-S3-DevKitC-1 v1.1 - ESP32-S3 - — ESP-IDF Programming Guide latest documentation

Multiplexación

La multiplexación de pines es una de las características más importantes y útiles del ESP32.

Básicamente, en el ESP32 podemos resignar la mayoría de las funciones de los GPIO para que actúen en cualquier pin, sin apenas afectar al rendimiento.

Por lo que, los valores que vamos a ver son los valores por defectos, pero generalmente podrás cambiarlo por otros, según te convenga.

El RTC

El RTC (Real Time Clock) ocupa un lugar fundamental durante los modos de Sleep. El RTC se compone de las siguientes partes:

  • RTC controlador (que incluye timers y periféricos IO)
  • RTC memoria (fast y slow)
  • Ultra Low Power (ULP) coprocessor

El ESP32 cuenta con 8 kB de SRAM en la parte RTC, llamada memoria RTC rápida. Los datos guardados aquí no se borran durante el modo de sueño profundo (deep sleep).

Además hay otros 8kB de SRAM llamados slow memory, que se usan para el procesador ULP.

Pines digitales

Pines GPIO

El ESP32-S3 tiene hasta 45 pines GPIO que pueden asignarse a diferentes funciones mediante la programación.

La mayoría de estos GPIO digitales se pueden configurar con resistencias internas de pull-up o pull-down.

Pines de Configuración (Strapping) del ESP32-S3

El chip ESP32 cuenta con los siguientes pines de (strapping) configuración:

  • GPIO 0
  • GPIO 45
  • GPIO 46

Estos pines intervienen en la configuración durante el arranque. Así que evita usarlos en tu proyecto.

Pines GPIO de Entrada Únicamente

Estos pines no pueden emplearse como salidas, pero se pueden utilizar como entradas digitales o analógicas, o para otros propósitos.

  • GPIO 46

Además, a diferencia de los otros pines GPIO, carecen de resistencias internas de pull-up y pull-down.

Pines de Interrupción del ESP32-S3

Todos los pines GPIO se pueden configurar como interrupciones.

Pines GPIO RTC del ESP32-S3

Algunos GPIO están conectados al subsistema de bajo consumo RTC y se conocen como GPIO RTC

  • RTC_GPIO0 - GPIO0
  • RTC_GPIO1 - GPIO1
  • RTC_GPIO2 - GPIO2
  • RTC_GPIO3 - GPIO3
  • RTC_GPIO4 - GPIO4
  • RTC_GPIO5 - GPIO5
  • RTC_GPIO6 - GPIO6
  • RTC_GPIO7 - GPIO7
  • RTC_GPIO8 - GPIO8
  • RTC_GPIO9 - GPIO9
  • RTC_GPIO10 - GPIO10
  • RTC_GPIO11 - GPIO11
  • RTC_GPIO12 - GPIO12
  • RTC_GPIO13 - GPIO13
  • RTC_GPIO14 - GPIO14
  • RTC_GPIO15 - GPIO15
  • RTC_GPIO16 - GPIO16
  • RTC_GPIO17 - GPIO17
  • RTC_GPIO18 - GPIO18
  • RTC_GPIO19 - GPIO19
  • RTC_GPIO20 - GPIO20
  • RTC_GPIO21 - GPIO21

Estos pines se utilizan para despertar el ESP32-S3 del modo de bajo consumo profundo cuando el coprocesador de ultra bajo consumo (ULP) está en funcionamiento.

Más información en esta entrada:

Pines de táctiles (Touch) del ESP32-S3

El ESP32-S3 cuenta con 14 pines GPIO capacitivos de detección táctil.

  • TOUCH1 - GPIO 1
  • TOUCH2 - GPIO 2
  • TOUCH3 - GPIO 3
  • TOUCH4 - GPIO 4
  • TOUCH5 - GPIO 5
  • TOUCH6 - GPIO 6
  • TOUCH7 - GPIO 7
  • TOUCH8 - GPIO 8
  • TOUCH9 - GPIO 9
  • TOUCH10 - GPIO 10
  • TOUCH11 - GPIO 11
  • TOUCH12 - GPIO 12
  • TOUCH13 - GPIO 13
  • TOUCH14 - GPIO 14

Cuando una carga capacitiva (como un dedo humano) está cerca del pin GPIO, el ESP32-S3 detecta el cambio en la capacitancia.

Pin Enable (EN)

Enable (EN) es el pin que controla el regulador de 3V3. Está configurado con una resistencia pull-up, por lo que se conecta a tierra para desactivar el regulador de 3.3V. Por ejemplo, para reiniciar el ESP32.

Pines analógicos

Pines PWM del ESP32-S3

La placa ESP32-S3 tiene 8 canales PWM (todos los pines GPIO excepto los pines de entrada únicamente) controlados por un controlador PWM.

La salida PWM se puede utilizar para controlar motores y LEDs digitales.

Pines ADC del ESP32-S3

El ESP32 integra dos ADC y admite mediciones en 20 canales

  • ADC1_CH0 - GPIO 1
  • ADC1_CH1 - GPIO 2
  • ADC1_CH2 - GPIO 3
  • ADC1_CH3 - GPIO 4
  • ADC1_CH4 - GPIO 5
  • ADC1_CH5 - GPIO 6
  • ADC1_CH6 - GPIO 7
  • ADC1_CH7 - GPIO 8
  • ADC1_CH8 - GPIO 9
  • ADC1_CH9 - GPIO 10
  • ADC2_CH0 - GPIO 11
  • ADC2_CH1 - GPIO 12
  • ADC2_CH2 - GPIO 13
  • ADC2_CH3 - GPIO 14
  • ADC2_CH4 - GPIO 15
  • ADC2_CH5 - GPIO 16
  • ADC2_CH6 - GPIO 17
  • ADC2_CH7 - GPIO 18
  • ADC2_CH8 - GPIO 19
  • ADC2_CH9 - GPIO 20

Los ADC son de 12 bits, por lo que disponemos de 4096 (2^12) niveles discretos, lo que se traduce en una precisión de 0.8mV.

Pines DAC del ESP32-S3

El ESP32-S3 no incluye un DAC.

Pines de comunicación

Pines UART del ESP32-S3

La placa de desarrollo ESP32-S3 tiene tres interfaces UART: UART0, UART1 y UART2, que admiten comunicación asíncrona (RS232 y RS485) e IrDA de hasta 5 Mbps.

Los pines UART0 están conectados al convertidor USB a serie y se utilizan para la programación y depuración.no se recomienda utilizar los pines UART0.

Por otro lado, el UART están reservados para el chip de memoria FLASH integrado. Los pines UART1 están reservados para el chip de memoria flash integrado.

Por lo que lo mejor es usar el UART2 es una opción segura para conectar dispositivos UART.

Pines I2C del ESP32-S3

El ESP32-S3 dispone de un bus I2C único que permite conectar hasta 112 sensores y periféricos. Los pines SDA y SCL están asignados por defecto a los siguientes pines.

  • SDA - GPIO 8
  • SCL - GPIO 9

Sin embargo, es posible utilizar cualquier pin GPIO para implementar el protocolo I2C mediante el comando wire.begin(SDA, SCL).

Pines SPI del ESP32-S3

El ESP32 cuenta con cuatro interfaces SPI0, SPI1, SPI2, y SPI3. El SPI0 se usa para conectar con la memoria FLASH, y el SPI1 para PSRAM (si la placa la tiene). Así que lo mejor es centrarse en el SPI2 y SPI3.

SPIMOSIMISOCLKCS
SPI2GPIO 35GPIO 37GPIO 36GPIO 39
SPI3GPIO 11GPIO 13GPIO 12GPIO 10

SPI FLASH

Estos pines están conectados a la memoria flash SPI integrada en el chip ESP32-S3. No utilices estos pines en tus proyectos.

  • GPIO 26
  • GPIO 27
  • GPIO 28
  • GPIO 29
  • GPIO 30
  • GPIO 31
  • GPIO 32