ESP32: Detalles internos y pinout

En este artículo, hablaremos sobre los detalles internos y la fijación de ESP32. Le mostraré cómo identificar correctamente los pines mirando la hoja de datos, cómo identificar cuáles de los pines funcionan como SALIDA / ENTRADA, cómo tener una visión general sobre los sensores y periféricos que nos ofrece el ESP32, además de bota. Por lo tanto, creo que, con el siguiente video, podré responder varias preguntas que he recibido en mensajes y comentarios sobre las referencias de ESP32, entre otra información.

Paso 1: NodeMCU ESP-WROOM-32

Aquí tenemos el PINOUT del

WROOM-32 que sirve como una buena referencia para cuando programa. Es importante prestar atención a la entrada / salida de propósito general (GPIO), es decir, a los puertos de entrada y salida de datos programables, que aún pueden ser un convertidor AD o un pin táctil, como GPIO4, por ejemplo. Esto también ocurre con el Arduino, donde los pines de entrada y salida también pueden ser PWM.

Paso 2: ESP-WROOM-32

En la imagen de arriba, tenemos el ESP32 en sí. Existen varios tipos de insertos con diferentes características según el fabricante.

Paso 3: Pero, ¿cuál es el pinout correcto que debo usar para mi ESP32?

ESP32 no es difícil. Es tan fácil que podemos decir que no hay preocupación didáctica en su entorno. Sin embargo, necesitamos ser didácticos, sí. Si quieres programar en Assembler, está bien. Pero, el tiempo de ingeniería es costoso. Entonces, si todo lo que es un proveedor de tecnología le brinda una herramienta que toma tiempo para comprender su funcionamiento, esto puede convertirse fácilmente en un problema para usted, porque todo esto aumentará el tiempo de ingeniería, mientras que el producto se está volviendo cada vez más costoso. Esto explica mi preferencia por las cosas fáciles, aquellas que pueden facilitar nuestro día a día, porque el tiempo es importante, especialmente en el ajetreado mundo de hoy.

Volviendo al ESP32, en una hoja de datos, como en el anterior, tenemos la identificación correcta del pin en los aspectos más destacados. A menudo, la etiqueta del chip no coincide con el número real del pin, ya que tenemos tres situaciones: el GPIO, el número de serie y también el código de la tarjeta.

Como se muestra en el ejemplo a continuación, tenemos una conexión de un LED en el ESP y el modo correcto de configuración:

Tenga en cuenta que la etiqueta es TX2, pero debemos seguir la identificación correcta, como se resalta en la imagen anterior. Por lo tanto, la identificación correcta del pin será 17. La imagen muestra qué tan cerca debe permanecer el código.

Paso 4: ENTRADA / SALIDA

Al realizar pruebas de ENTRADA y SALIDA en los pines, obtuvimos los siguientes resultados:

INPUT no funcionó solo en GPIO0.

OUTPUT no funcionó solo en los pines GPIO34 y GPIO35, que son VDET1 y VDET2, respectivamente.

* Los pines VDET pertenecen al dominio de potencia del RTC. Esto significa que pueden usarse como pines ADC y que el coprocesador ULP puede leerlos. Solo pueden ser entradas y nunca salidas.

Paso 5: diagrama de bloques

Este diagrama muestra que el ESP32 tiene doble núcleo, un área de chip que controla WiFi y otra área que controla Bluetooth. También tiene aceleración de hardware para el cifrado, que permite la conexión a LoRa, una red de larga distancia que permite una conexión de hasta 15 km, utilizando una antena. También observamos el generador de reloj, el reloj en tiempo real y otros puntos que involucran, por ejemplo, PWM, ADC, DAC, UART, SDIO, SPI, entre otros. Todo esto hace que el dispositivo sea bastante completo y funcional.

Paso 6: periféricos y sensores

El ESP32 tiene 34 GPIO que se pueden asignar a varias funciones, como:

Solo digital;

Analógico habilitado (se puede configurar como digital);

Capacitiva táctil habilitada (se puede configurar como digital);

Y otros.

Es importante tener en cuenta que la mayoría de los GPIO digitales se pueden configurar como pull-up o pull-down internos, o configurados para alta impedancia. Cuando se establece como entrada, el valor se puede leer a través del registro.

Paso 7: GPIO

Convertidor de analógico a digital (ADC)

El Esp32 integra ADC de 12 bits y admite mediciones en 18 canales (pines habilitados para analógico). El coprocesador ULP en el ESP32 también está diseñado para medir voltajes mientras funciona en modo de suspensión, lo que permite un bajo consumo de energía. La CPU puede ser activada por una configuración de umbral y / o por otros disparadores.

Convertidor digital a analógico (DAC)

Se pueden usar dos canales DAC de 8 bits para convertir dos señales digitales en dos salidas de voltaje analógicas. Estos DAC duales admiten la fuente de alimentación como referencia de voltaje de entrada y pueden controlar otros circuitos. Los canales duales admiten conversiones independientes.

Paso 8: sensores

Sensor tactil

El ESP32 tiene 10 GPIO de detección capacitiva que detectan variaciones inducidas al tocar o acercarse a un GPIO con un dedo u otros objetos.

El ESP32 también tiene un sensor de temperatura y un sensor de pasillo interno, pero para trabajar con ellos, debe cambiar la configuración de los registros. Para más detalles, consulte el manual técnico a través del enlace:

//www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

Paso 9: perro guardián

El ESP32 tiene tres temporizadores de vigilancia: uno en cada uno de los dos módulos de temporizador (llamado Temporizador de vigilancia principal o MWDT) y uno en el módulo RTC (llamado Temporizador de vigilancia RTC o RWDT).

Paso 10: Bluetooth

Interfaz Bluetooth v4.2 BR / EDR y Bluetooth LE (baja energía)

El ESP32 integra un controlador de conexión Bluetooth y una banda base Bluetooth, que realizan protocolos de banda base y otras rutinas de enlace de bajo nivel, como modulación / demodulación, procesamiento de paquetes, procesamiento de flujo de bits, salto de frecuencia, etc.

El controlador de conexión funciona en tres estados principales: en espera, conexión y olfateo. Permite múltiples conexiones y otras operaciones, como consulta, página y emparejamiento simple y seguro, y por lo tanto permite Piconet y Scatternet.

Paso 11: arranque

En muchas placas de desarrollo con USB / serie incorporado, esptool.py puede restablecer automáticamente la placa al modo de arranque.

ESP32 ingresará al cargador de arranque en serie cuando el GPIO0 se mantenga bajo en el reinicio. De lo contrario, ejecutará el programa en flash.

GPIO0 tiene una resistencia pullup interna, por lo que si no tiene conexión, se elevará.

Muchas placas usan un botón con la etiqueta "Flash" (o "BOOT" en algunas placas de desarrollo Espressif) que lleva el GPIO0 hacia abajo cuando se presiona.

GPIO2 también debe dejarse desconectado / flotante.

En la imagen de arriba, puedes ver una prueba que realicé. Puse el osciloscopio en todos los pines del ESP para ver qué sucedió cuando se encendió. Descubrí que cuando obtengo un pin, genera oscilaciones de 750 microsegundos, como se muestra en el área resaltada en el lado derecho. ¿Qué podemos hacer al respecto? Tenemos varias opciones, como dar un retraso con un circuito con un transistor, un expansor de puerta, por ejemplo. Señalo que GPIO08 se invierte. La oscilación sale hacia arriba y no hacia abajo.

Otro detalle es que tenemos algunos pines que comienzan en High y otros en Low. Por lo tanto, este PINOUT es una referencia de cuándo se enciende el ESP32, especialmente cuando está trabajando con una carga para disparar, por ejemplo, un triac, un relé, un contactor o algo de energía.

Artículos Relacionados