Laboratorio de Microcontroladores

Tabla de Contenidos

Este tutorial es sobre la referencia del pinout de ESP8266 y los diferentes tipos de placas ESP8266 como Nodemcu, ESP01 , ESP12. En primer lugar, voy a dar la visión general de ESP8266 IC y su pinout y después voy a proporcionar la referencia pinout de las placas ESP8266 más populares.

Esp8266 es un microchip en el paquete QFN que tiene capacidades de la suite TCP / IP y el microcontrolador. Esp8266 ofrece una solución WiFi altamente integrada que satisface las necesidades de las industrias del Internet de las Cosas, como el bajo coste, el uso eficiente de la energía, el rendimiento fiable y el diseño compacto. Está fabricado por Espressif Systems en Shanghai, China.

Con sus completas capacidades de red WiFi, puede funcionar como esclavo de un microcontrolador anfitrión o como aplicación independiente. Cuando decimos el esclavo a un microcontrolador anfitrión significa que puede utilizar como adaptador WiFi a cualquier microcontrolador utilizando interfaces SPI o UART. Mientras que si se utiliza como una aplicación independiente puede realizar las capacidades del microcontrolador y la red WiFi.

Esp8266 se basa en la serie L106 Diamond de Tensilica que es un procesador de 32 bits y tiene SRAM en el chip. También integra módulos de potencia, balun de RF, receptor y transmisor de RF, receptor y transmisor analógico, banda base digital, amplificador, filtros y algunos otros componentes mínimos.

Especificaciones del ESP8266

La especificación del ESP8266 se divide en tres partes: hardware, software y Wi-Fi. En la especificación de hardware, su tamaño de paquete es QFN 32pins con una dimensión de 5mm x 5mm. Los voltajes de funcionamiento van de 2,5V a 3,6V. El chip consume una media de 80mA de corriente. Su CPU es Tensilica L106 que es un procesador de 32bit con SRAM en el chip. La interfaz periférica contiene UART, SDIO, SPI, I2C, I2S, control remoto IR, GIPO’s, ADC, PWM, Luz LED y botón.

Su firmware puede ser actualizado usando OTA y UART. Utiliza IPv4, TCP, UDP y HTTP como protocolos de red. El usuario puede configurar utilizando el conjunto de comandos AT, Cloud Server y el uso de una aplicación móvil.

Pinout y descripciones del chip ESP8266

Disposición de pines del paquete QFN de 32 pines.

  • Pin1: VDDA es un pin de alimentación para rangos de potencia analógica de 2,5V a 3,6V.
  • Pin2: LNA es un pin de entrada/salida utilizado específicamente para la interfaz de la antena de RF. El chip produce una impedancia de 39+j6 Ω.
  • Pin3: VDD3P3 es un pin de alimentación para proporcionar rangos de potencia de amplificación de 2,5V a 3,6V.
  • Pin4: VDD3P3 es un pin de alimentación para proporcionar rangos de potencia del amplificador de 2,5V a 3,6V similar al pin3.
  • Pin5: VDD_RTC está categorizado como un pin de alimentación y suministro de 1,1V pero este pin no está conectado.
  • Pin6: TOUT es un pin de entrada funciona como pin ADC para probar los voltajes de suministro de Pin3 y Pin4 y los voltajes de entrada de TOUT pin6. Estas dos funciones no pueden realizarse simultáneamente.
  • Pin7: CHIP_EN I un pin de entrada. Cuando el pin CHIP_EN está ALTO el chip funciona correctamente cuando está BAJO el chip consume una pequeña cantidad de corriente.
  • Pin8: XPD_DCDC es un pin de entrada/salida que se utiliza para despertar el chip del modo de sueño profundo. Normalmente se conecta con GPIO16.
  • Pin9: MTMS es un pin de entrada/salida etiquetado como GPIO14 y se utiliza en SPI como pin de reloj (SPI_CLK).
  • Pin10: MTDI es un pin de entrada/salida etiquetado como GPIO12 y se utiliza en SPI como pin Master-In-Slave-Out (SPI_MISO).
  • Pin11: VDDPST es un pin de alimentación. Es una fuente de alimentación de entrada/salida digital cuyos voltajes van de 1,8V a 3,6V. Similar al pin17.
  • Pin12: MTCK es un pin de entrada/salida etiquetado como GPIO13 y se utiliza en SPI como pin Master-Out Slave-In (SPI_MOSI) así como se utiliza en UART como pin Clear To Send (UART_CTS).
  • Pin13: MTDO es un pin de entrada/salida etiquetado como GPIO15 y se utiliza en SPI como pin de selección de chip (SPI_CS) así como en UART como pin de petición de envío (UART_RTS).
  • Pin14: GPIO2 es un pin de entrada/salida utilizado como UART TX durante la programación flash.
  • Pin15: GPIO0 es un pin de entrada/salida utilizado como Chip Select pin2 en SPI (SPI_CS2).
  • Pin16: GPIO4 es un pin de entrada/salida utilizado puramente para propósitos de entrada y salida.
  • Pin17: VDDPST es un pin de alimentación. Es una fuente de alimentación de entrada/salida digital cuyos voltajes van de 1,8V a 3,6V. Similar al pin11.
  • Pin18: SDIO_DATA_2 es un pin de entrada/salida etiquetado como GPIO9 y utilizado para conectar con el pin de datos 2 de la tarjeta SD.
  • Pin19: SDIO_DATA_3 es un pin de entrada/salida etiquetado como GPIO10 y utilizado para conectar con el pin de datos 3 de la tarjeta SD.
  • Pin20: SDIO_CMD es un pin de entrada/salida etiquetado como GPIO11 y utilizado para conectar con el pin de comandos de la tarjeta SD
  • Pin21: SDIO_CLK es un pin de entrada/salida etiquetado como GPIO6 y utilizado para conectar con el pin de reloj de la tarjeta SD.
  • Pin22: SDIO_DATA_0 es un pin de entrada/salida etiquetado como GPIO7 y utilizado para conectar con el pin de datos 0 de la tarjeta SD.
  • Pin23: SDIO_DATA_1 es un pin de entrada/salida etiquetado como GPIO8 y utilizado para conectar con el pin de datos 1 de la tarjeta SD.
  • Pin24: GPIO5 es un pin de entrada/salida utilizado puramente para propósitos de entrada y salida.
  • Pin25: U0RXD es un pin de entrada/salida etiquetado como GPIO3 y utilizado como UART RX durante la programación flash.
  • Pin26: U0TXD es un pin de entrada/salida etiquetado como GPIO1 y utilizado como UART TX durante la programación flash. También se utiliza como pin de selección de chip SPI 1 (SPI_CS1).
  • Pin27: XTAL_OUT está clasificado como un pin de entrada/salida y conectado a la salida del oscilador de cristal.
  • Pin28: XTAL_IN está clasificado como un pin de entrada/salida y conectado a la entrada del oscilador de cristal.
  • Pin29: VDDD es un pin de alimentación que proporciona rangos de potencia analógica de 2,5V a 3,6V.
  • Pin30: VDDA es un pin de alimentación que proporciona rangos de potencia analógica de 2,5V a 3,6V. Similar al pin29.
  • Pin31: RES12K es un pin de entrada que se conecta en serie con resistencias de 12 kΩ y se conecta a tierra.
  • Pin32: EXT_RSBT es un pin de entrada que se utiliza para restablecer el chip proporcionando una señal de reinicio externa que está activa a un nivel de baja tensión.
  • Pin33: GND es un pin de alimentación que actúa como tierra para el chip.

Todos los GPIO’s pueden ser utilizados como pin de entrada y salida pero también tienen su función específica.

Esquema

El esquema del ESP8266 incluye los siguientes componentes:

  • Fuente de alimentación
  • Secuencia de encendido y reinicio
  • Flash
  • Oscilador de cristal
  • RF
  • Resistencia externa
  • UART

Hasta aquí cubrimos el preámbulo del Esp8266, el diagrama de bloque funcional, la disposición de los pines, la descripción y el esquema.

En agosto de 2014 Espressif Systems lanzó su primer módulo en bruto que es fabricado por la tercera parte AI-Thinker y módulo referido como módulo ESP-01. Desde entonces Ai-Thinker desarrolló una serie de módulos basados en el ESP8266, esta serie referida como módulos ESP-xx va desde el 01 hasta el 14.

Pinout de diferentes tipos de módulos ESP8266

En esta sección del artículo, hablaremos de pinout de diferentes versiones del módulo ESP8266 empezando por el ESP-01 hasta el ESP-12.

Espressif Systems lanzó su primer kit de desarrollo de software oficial para programar el chip directamente sin interconectar con un microcontrolador externo. Desde entonces hay muchos SDKs oficiales pero Espressif mantiene sólo dos SDKs estables uno está basado en FreeRTOS y otro basado en callbacks. También hay una variedad de SDK de código abierto para ESP8266.

Arduino: es el SDK más utilizado debido a su popularidad. Es un SDK basado en C++. ESP6266 es fácil de programar como placas Arduino. Los archivos del núcleo están disponibles en GitHub.

NodeMCU: es un kit de desarrollo de software basado en Lua.

MicroPython: es el uso del lenguaje python para dispositivos embebidos.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS son algunos otros SDK de código abierto.La necesidad de estas placas de desarrollo se requiere debido a que la serie de módulos ESP-xx carece de un regulador de voltaje a bordo, puente USB a UART como CH340G y CP2102 de Silicon Lab y conector micro USB. Antes teníamos que comprar el regulador de voltaje y el puente USB a UART por separado y luego conectarlos a los módulos ESP-xx para flashearlos.

Aquí hablaremos principalmente de la placa de desarrollo basada en el módulo ESP-12E.

Pinout del módulo ESP8266 12E

El módulo ESP8266 12E tiene un total de 22 pines que incluyen

Nº. de pines Etiqueta de pines Descripción
17 GPIO Los pines GPIO van de GPIO0 a GPIO16 e incluyen pines de interfaz SPI, I2C, SDIO, UART.
1 ADC Convertidor analógico-digital de 10 bits.
1 VCC Tensión de alimentación 3.3V
1 GND Pin de tierra
1 RST Pin de reposo
1 Enable Pin de habilitación del chip

Pinout de ESP8266 12E Wemos D1 Mini

La placa de desarrollo Wemos D1 Mini tiene un total de 16 pines en los que 12 pines están activos, utiliza el módulo ESP-12, botón de reinicio a bordo, 3.3 regulador de voltaje, Micro USB, puente USB a UART y algunos otros componentes.

No. de

Pin

Etiqueta Descripción
1 3,3V Pin de 3,3 voltios
1 5.0 Pin de tensión de 5V de entrada
1 GND Pin de tierra
1 ADC Convertidor analógico-digital de 10 bits
1 RST Pin de reinicio
9 D0 a D8, Pines de entrada/salida utilizados también para SPI e I2C, Flash.
2 RX,TX Interfaz UART.

Pinout del Módulo ESP8266 01

El Módulo ESP8266 01 es diferente pero comúnmente utilizado como las placas de desarrollo anteriores. Este tablero no es breadboard amigable a menudo separado módulo de programación se utiliza para la programación. Tiene un total de 8 pines en los que 6 pines están activos.

Nº de

Pin

Etiqueta Descripción
1 3.3V Suministro 3.3 voltios pin
1 GND Pin de tierra
1 RST Pin de reinicio
1 CH_PD/EN Pin de alimentación y habilitación del chip
4 GPIO 0 a 3 Interfaz UART y pines de entrada/salida

Pin de la placa de desarrollo ESP8266 12E NodeMCU

La placa de desarrollo NodeMCU tiene un total de 30 pines en los que 14 pines están activos, utiliza el módulo ESP-12, botón de reinicio y flash a bordo, 3.3 regulador de voltaje, Micro USB, USB a UART Bridge y algunos otros componentes.

No. de

Pin

Etiqueta Descripción
3 3.3V 3.3 voltios pines
1 Vin Tensión de entrada de 5V pin
4 GND Tierra pines
1 ADC Convertidor analógico-digital de 10 bits
1 RST Pin de reinicio
1 EN Pin de habilitación del chip
1 CLK CLK pin para interfaz SPI y SDIO
1 SD0 Pin de datos 0 para SDIO y MISO para interfaz SPI.
1 CMD Pin de comando para la interfaz SDIO y pin de selección de chip para la interfaz SPI.
1 SD1 Pin de datos 1 para la interfaz SDIO y pin MOSI para la interfaz SPI.
1 SD2 Pin de datos 0 para la interfaz SDIO y también utilizado como GPIO9.
1 SD3 Pin de datos 3 para la interfaz SDIO y también utilizado como GPIO10.
2 RSV Pines reservados.
11 D0 a D8, RX, TX Pines de entrada/salida utilizados también para UART, SPI, I2C, Flash y wake pin.

Periféricos del ESP8266

El ESP8266 tiene los siguientes periféricos:

  • 17 pines de entrada y salida de propósito general
  • Interfaz periférica serial (SPI)
  • Circuito integrado (12C)
  • Interfaces de sonido Inter-IC (12S) con acceso directo a la memoria
  • Interfaz de receptor asíncrono universal transmisor.
  • Convertidor analógico-digital de 10 bits

Entrada analógica

El ESP8266 tiene un único convertidor analógico-digital de 10 bits que se denomina ADC0 y se etiqueta como A0. Pero esta es también una de las mayores desventajas porque la mayoría de los usuarios tienen que conectar dos sensores por lo que tenemos que comprar módulos ADC separados, IC y el circuito de multiplexación para la interfaz de dos o más sensores, pero este es un tema de otro artículo.

El voltaje analógico de entrada del módulo ESP-01 va de 0 a 1V. La placa de desarrollo basada en el módulo ESP-12E tiene rangos de voltaje analógico de entrada de 0 a 3,3V. Así que tenemos que tener en cuenta al escribir un boceto para utilizar el pin A0.

Pines PWM

El ESP8266 permite PWM en todos los pines de entrada/salida de GPIO0 a GPIO16. Las señales PWM tienen resoluciones de 10 bits.

Pines SPI

Una interfaz de programación en serie (SPI) tiene los siguientes pines en el ESP8266

Pines I2C

El ESP8266 sólo proporciona una interfaz I2C por software, lo que significa que podemos utilizar dos pines cualquiera para I2C, pero los siguientes pines son los más utilizados.

GPIO5 para la línea de reloj serie (SCL)

GPIO4 para la línea de datos serie (SDA)

Pines de interrupción

Podemos utilizar cualquier pin GPIO para las interrupciones excepto GPIO16.

Despertar

Para despertar el ESP8266 del sueño profundo utilizando GPIO16 conectándolo al pin RST. Este es un tema para otro artículo.

LED de la placa

La mayoría de las placas de desarrollo tienen uno o más LEDs incorporados. El LED incorporado en el módulo ESP8266 está conectado a GPIO2 y el LED incorporado en la placa de desarrollo conectado a GPIO16.

Botón de reinicio y Flash

Pulsando el botón de reinicio o tirando del pin RST bajo se reinicia el chip ESP8266. Presionando el botón de Flash o tirando del GPIO0 bajo pone el chip ESP8266 en modo bootloader.

Qué pin del ESP8266 utilizar

Tenga siempre en cuenta que la etiqueta GPIO no coincide con la etiqueta de la serigrafía. Por ejemplo GPIO0 corresponde a D3 y D0 corresponde a GPIO16. Los GPIOs con una marca verde es mejor usarlos.

Etiqueta GPIO Entrada Salida Descripción
A0 ADC0 Entrada analógica No Para entrada analógica de 0 a 3.3v y sin salida.
RX GPIO3 Pin RX solamente Alto en el arranque.
TX GPIO1 Pin Tx sólo Alto en el arranque.
D0 GPIO16 Sin interrupción Sin I2C, PWM Se utiliza para despertar el chip del sueño profundo, Alto en el Boot.
D1 GPIO5 A menudo se utiliza como SCL
D2 GPIO4 A menudo se utiliza como SDA
D3 GPIO0 Subido Conectado al botón Flash
D4 GPIO2 Conectado Conectado al LED incorporadoen el LED, Alto en el arranque.
D5 GPIO14 Pin SCLK para interfaz SPI
D6 GPIO12 Pin MISO para interfaz SPI
D7 GPIO13 Pin MOSI para interfaz SPI
D8 GPIO15 Tirado a tierra PinCS para interfaz SPI

Pin ESP8266 Alto y Bajo-señal de voltaje en Boot

Mientras arranca el ESP8266 los siguientes pines proporcionan 3.3v señal en los pines especificados por lo que la conexión de relés, transistores o cualquier otro dispositivo periférico puede comportarse mal. Los siguientes pines dan una señal de 3,3v en el arranque:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Todos los demás pines GPIOs dan una señal de bajo voltaje en el arranque excepto GPIO4 y GPIO5. Así que el GPIO4 y GPIO5 son los mejores pines para conectar relés, transistores y otros dispositivos periféricos para obtener resultados estables.

Configuración de los pines durante el Boot

Para arrancar el ESP8266 con éxito tenemos que deshabilitar los pines especificados para obtener HIGH o LOW.

  • GPIO16: pin es alto en BOOT
  • GPIO3: pin es alto en BOOT
  • GPIO10: pin es alto en BOOT
  • GPIO9: pin es alto en BOOT
  • GPIO2: pin es alto en BOOT, fallo de arranque si se tira a LOW
  • GPIO1: pin es alto en BOOT, fallo de arranque si se tira a LOW
  • GPIO0: fallo de arranque si se tira a LOW
  • GPIO15: fallo de arranque si se tira HIGH

Aplicaciones del ESP8266

  • Automatización del hogar
  • Enchufes e interruptores inteligentes
  • Aparatos del hogar (como AC, Impresora)
  • Control industrial inalámbrico
  • Dispositivos sensores
  • Gadgets portátiles
  • Cámaras IP
  • Etiquetas de identificación de seguridad
  • Dispositivos de localización Wi-Fi
  • Sistema de posición Wi-Fi

También puedes echar un vistazo a otros tutoriales del ESP8266: