Microcontrollers Lab

Indholdsfortegnelse

Denne vejledning handler om pinout reference af ESP8266 og forskellige typer af ESP8266 boards som Nodemcu, ESP01 , ESP12. Først vil jeg give en oversigt over ESP8266 IC og dens pinout og derefter vil jeg give pinout reference af de mest populære ESP8266 boards.

Esp8266 er en mikrochip i QFN-pakke, der har muligheder for både TCP/IP suite og mikrocontroller. Esp8266 leverer en højt integreret WiFi-løsning, der opfylder behovene i Internet of Things-industrierne som f.eks. lave omkostninger, effektivt strømforbrug, pålidelig ydeevne og kompakt design. Den er fremstillet af Espressif Systems i Shanghai, Kina.

Med komplette WiFi-netværksfunktioner kan den fungere som slave til en værtsmikrocontroller eller som en standalone-applikation. Når vi siger slave til en værtsmikrocontroller, betyder det, at den kan bruges som WiFi-adapter til enhver mikrocontroller, der bruger SPI- eller UART-grænseflader. Ved brug som standalone kan den udføre mikrocontrollerens og WiFi-netværkets funktioner.

Esp8266 er baseret på Tensilica’s L106 Diamond-serie, som er en 32-bit processor og har on-chip SRAM. Integrerer også powermoduler, RF balun, RF modtager og sender, analog modtager og sender, digital baseband, forstærker, filtre og nogle andre minimale komponenter.

Specifikationer for ESP8266

Esp8266 specifikation opdeles i tre dele: Hardware, Software og WiFi. I hardwarespecifikationen er dens pakkestørrelse QFN 32pins med en dimension på 5 mm x 5 mm. Driftsspændinger spænder fra 2,5V til 3,6V. Chippen bruger 80 mA strøm i gennemsnit. Dens CPU er Tensilica L106, som er en 32bit-processor med on-chip SRAM. Den perifere grænseflade indeholder UART, SDIO, SPI, I2C, I2S, IR-fjernbetjening, GIPO’er, ADC, PWM, LED-lys og knap.

Dets firmware kan opdateres ved hjælp af OTA og UART. Den bruger IPv4, TCP, UDP og HTTP som netværksprotokoller. Brugeren kan konfigurere ved hjælp af AT-kommandosæt, Cloud Server og ved hjælp af en mobilapplikation.

ESP8266 Chip Pinout and Descriptions

Pin layout af 32-pin QFN Package.

  • Pin1: VDDA er en power pin til analoge strømområder fra 2,5V til 3,6V.
  • Pin2: VDDA er en power pin til analoge strømområder fra 2,5V til 3,6V.
  • Pin2: LNA er en ind-/udgangsstift, der specifikt bruges til RF-antenneinterface. Chip producerer en impedans på 39+j6 Ω.
  • Pin3: VDD3P3 er en strømforsyningspin til at levere forstærkerstrømområder fra 2,5V til 3,6V.
  • Pin4: VDD3P3 er en strømforsyningspin til at levere forstærkerstrømområder fra 2,5V til 3,6V.
  • Pin4: VDD3P3 er en strømforsyningsstift, der giver forstærkerstrøm fra 2,5V til 3,6V i lighed med pin3.
  • Pin5: VDD_RTC er kategoriseret som en strømforsyningspin og leverer 1,1 V, men denne pin er ikke tilsluttet.
  • Pin6: TOUT er en indgangspin, der fungerer som ADC-pin til at teste forsyningsspændingerne for Pin3 og Pin4 og indgangsspændingerne for TOUT pin6. Disse to funktioner kan ikke udføres samtidig.
  • Pin7: CHIP_EN I en indgangsstift. Når CHIP_EN pin er HIGH, fungerer chippen korrekt, når den er LOW, bruger chippen kun en lille mængde strøm.
  • Pin8: XPD_DCDC er en input/output pin, som bruges til at vække chippen fra dyb dvaletilstand. Almindeligvis er den forbundet med GPIO16.
  • Pin9: MTMS er en input/output pin mærket som GPIO14, og den bruges i SPI som clock pin (SPI_CLK).
  • Pin10: MTDI er en input/output pin mærket som GPIO12, og den bruges i SPI som Master-In-Slave-Out pin (SPI_MISO).
  • Pin11: VDDPST er en power pin. Det er en digital input/output strømforsyning, hvis spændinger spænder fra 1,8V til 3,6V. Svarende til pin17.
  • Pin12: MTCK er en input/output pin mærket som GPIO13, og den bruges i SPI som Master-Out Slave-In pin (SPI_MOSI) såvel som bruges i UART som Clear To Send pin (UART_CTS).
  • Pin13: MTDO er en input/output pin mærket som GPIO15 og bruges i SPI som Chip Select pin (SPI_CS) samt bruges i UART som Request To Send pin (UART_RTS).
  • Pin14: GPIO2 er en ind-/udgangsstift, der bruges som UART TX under flashprogrammering.
  • Pin15: GPIO0 er en ind-/udgangsstift, der bruges som Chip Select pin2 i SPI (SPI_CS2).
  • Pin16: GPIO4 er en ind-/udgangsstift, der udelukkende bruges til ind- og udgangsformål.
  • Pin17: VDDPST er en strømforsyningsstift. Det er en digital input/output-strømforsyning, hvis spændinger spænder fra 1,8 V til 3,6 V. Svarer til pin11.
  • Pin18: SDIO_DATA_2 er en input/output pin mærket som GPIO9 og bruges til at forbinde med data pin 2 på SD-kortet.
  • Pin19: SDIO_DATA_3 er en input/output pin mærket som GPIO10 og bruges til at forbinde med data pin 3 på SD-kortet.
  • Pin20: SDIO_CMD er en ind-/udgangsstift mærket som GPIO11 og bruges til at forbinde med kommando-stiften på SD-kortet
  • Pin21: SDIO_CLK er en ind-/udgangsstift mærket som GPIO6 og bruges til at forbinde med clock-stiften på SD-kortet.
  • Pin22: SDIO_DATA_0 er en ind-/udgangsstift mærket som GPIO7 og bruges til at forbinde med data pin 0 på SD-kortet.
  • Pin23: SDIO_DATA_1 er en ind-/udgangsstift mærket som GPIO8 og bruges til at forbinde med data pin 1 på SD-kortet.
  • Pin24: GPIO5 er en ind-/udgangsstift, der udelukkende anvendes til ind- og udgangsformål.
  • Pin25: U0RXD er en ind-/udgangsstift mærket som GPIO3 og anvendes som UART RX under flash-programmering.
  • Pin26: U0TXD er en ind-/udgangsstift mærket som GPIO1 og anvendes som UART TX under flash-programmering. Bruges også som SPI Chip Select pin 1 (SPI_CS1).
  • Pin27: XTAL_OUT er klassificeret som en input/output pin og er forbundet til udgangen af krystaloscillatoren.
  • Pin28: XTAL_IN er klassificeret som en input/output pin og er forbundet til indgangen af krystaloscillatoren.
  • Pin29: VDDD er en strømforsyningsstift, der leverer analog strømforsyning i intervallet 2,5V til 3,6V.
  • Pin30: VDDA er en strømforsyningsstift, der leverer analog strømforsyning i intervallet 2,5V til 3,6V. Svarende til pin29.
  • Pin31: RES12K er en indgangspin, som er serieforbundet med 12 kΩ-modstande og forbundet til jorden.
  • Pin32: EXT_RSBT er en indgangspin, der bruges til at hvile chippen ved at levere et eksternt nulstillingssignal, som er aktivt ved et lavt spændingsniveau.
  • Pin33: GND er en strømforsyningspin, der fungerer som jord for chippen.

Alle GPIO’er kan bruges som indgangs- og udgangspin, men de har også deres specifikke funktion.

Skema

ESP8266-skemaer omfatter følgende komponenter:

  • Spændingsforsyning
  • Power-on-sekvens og reset
  • Flash
  • Krystaloscillator
  • RF
  • Ekstern modstand
  • UART

Så vidt vi har dækket Esp8266 præambel, funktionelt blokdiagram, pins layout, beskrivelse og diagrammer.

I august 2014 lancerede Espressif Systems deres første råmodul, som er fremstillet af tredjepart AI-Thinker og modulet benævnt ESP-01 modul. Siden da har Ai-Thinker udviklet en serie af moduler baseret omkring ESP8266, denne serie kaldet ESP-xx-moduler spænder fra 01 til 14.

Pinout af forskellige typer ESP8266-moduler

I dette afsnit af artiklen vil vi tale om pinout af forskellige versioner af ESP8266-modulet startende fra ESP-01 til ESP-12.

Espressif Systems udgav deres første officielle softwareudviklingskit til at programmere chippen direkte uden grænseflade med en ekstern mikrocontroller. Siden da er der kommet mange officielle SDK’er, men Espressif opretholder kun to stabile SDK’er, hvoraf det ene er baseret på FreeRTOS og det andet er baseret på callbacks. Der findes også en række open source SDK’er til ESP8266.

Arduino: er det mest almindeligt anvendte SDK på grund af dets popularitet. Det er et C++-baseret SDK. ESP6266 er let programmeret som Arduino-kort. Kernefilerne er tilgængelige på GitHub.

NodeMCU: er et Lua-baseret softwareudviklingskit.

MicroPython: er brugen af python-sprog til indlejrede enheder.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS er nogle andre open source SDK’er.Behovet for disse udviklingskort er påkrævet, fordi ESP-xx-modulserien mangler indbygget spændingsregulator, USB til UART Bridge som CH340G og Silicon Lab’s CP2102 og mikro-USB-stik. Tidligere skulle vi købe spændingsregulator og USB til UART-bro separat og derefter koble dem sammen med ESP-xx-moduler for at flashe dem.

Her vil vi diskutere det meste udviklingskort baseret omkring ESP-12E-modulet.

ESP8266 12E-modulets pinout

Esp8266 12E-modulet har i alt 22 pins, som omfatter

No. af pins Pin Label Beskrivelse
17 GPIO GPIO-pins spænder fra GPIO0 til GPIO16 omfatter SPI, I2C, SDIO, UART-interfacepins.
1 ADC 10 bit analog til digital konverter.
1 VCC Spændingsforsyning 3.3V
1 GND Muldstift
1 RST Rest Pin
1 Enable Chip Enable Pin

ESP8266 12E Wemos D1 Mini pinout

Wemos D1 Mini udviklingskortet har i alt 16 pins, hvoraf 12 pins er aktive, bruger ESP-12 modul, onboard reset-knap, 3.3 spændingsregulator, Micro USB, USB til UART-bro og nogle andre komponenter.

Nr. of

Pin

Label Beskrivelse
1 3.3V 3.3 volts pin
1 5.0 Input 5V spænding pin
1 GND Masse pin
1 ADC 10 bit analog til digital konverter
1 RST Reset Pin
9 D0 til D8, Input/output-stifter anvendes også til SPI og I2C, Flash.
2 RX,TX UART-interface.

ESP8266 01 Module pinout

ESP8266 01 Module er anderledes, men almindeligvis lige så brugt som de ovennævnte udviklingskort. Dette board er ikke breadboard-venligt, ofte bruges et separat programmeringsmodul til programmering. Det har i alt 8 pins, hvoraf 6 pins er aktive.

Nr. af

Pin

Label Beskrivelse
1 3,3V Supply 3.3 volt pin
1 GND Masse pin
1 RST Reset Pin
1 CH_PD/EN Chip Power and Enable Pin
4 GPIO 0 til 3 UART-interface og input/output-stifter

ESP8266 12E NodeMCU-udviklingskortets pinout

NodeMCU-udviklingskortet har i alt 30 stifter, hvoraf 14 stifter er aktive, bruger ESP-12 modul, onboard reset og flash knap, 3.3 spændingsregulator, Micro USB, USB til UART Bridge og nogle andre komponenter.

Nr. af

Pin

Label Beskrivelse
3 3.3V 3.3 volt-stifter
1 Vin Input 5V-spændingsstift
4 GND Muld pins
1 ADC 10 bit analog til digital konverter
1 RST Reset Pin
1 EN Chip Enable Pin
1 CLK CLK pin til SPI- og SDIO-interface
1 SD0 Datapin 0 til SDIO og MISO pin til SPI-interface.
1 CMD Kommandopind til SDIO-grænseflade og Chip select-pind til SPI-grænseflade.
1 SD1 Datastift 1 til SDIO-interface og MOSI-stift til SPI-interface.
1 SD2 Datastift 0 til SDIO-interface og bruges også som GPIO9.
1 SD3 Datastift 3 til SDIO-interface og bruges også som GPIO10.
2 RSV Reserverede stifter.
11 D0 til D8, RX, TX Input/output-pins bruges også til UART, SPI, I2C, Flash og wake-pin.

ESP8266 Perifere enheder

Ep8266 har følgende perifere enheder:

  • 17 general Purpose Input Output Pins
  • Serial Peripheral Interface (SPI)
  • Inter-Integrated Circuit (12C)
  • Inter-IC Sound interfaces (12S) med Direct Memory Access
  • Universal Asynchronous Receiver Transmitter interface (universel asynkron modtager-sendergrænseflade).
  • 10-bit analog til digital konverter

Analog indgang

ESP8266 har kun én 10-bit analog til digital konverter, der betegnes som ADC0 og betegnes som A0. Men dette er også en af de største ulemper, fordi brugeren for det meste skal tilslutte to sensorer, så vi er nødt til at købe separate ADC-moduler, IC og multiplexing-kredsløb for at forbinde to eller flere sensorer, men dette er et emne i en anden artikel.

Input analog spænding af ESP-01 modulet spænder fra 0 til 1V. Udviklingskort baseret omkring ESP-12E-modulet har analog indgangsspænding fra 0 til 3,3 V. Så vi skal være opmærksomme på, når vi skriver en skitse for at bruge A0-pin.

PWM-pins

ESP8266 tillader PWM i alle input/output-pins fra GPIO0 til GPIO16. PWM-signalerne har 10-bit opløsninger.

SPI-stifter

En seriel programmeringsgrænseflade (SPI) har følgende stifter i ESP8266

I2C-stifter

ESP8266 giver kun software I2C-interface, hvilket betyder, at vi kan bruge to vilkårlige stifter til I2C, men følgende stifter bruges mest.

GPIO5 til Serial Clock Line (SCL)

GPIO4 til Serial Data Line (SDA)

Interrupt Pins

Vi kan bruge enhver GPIO pin til interrupts undtagen GPIO16.

Wake Up

For at vække ESP8266 fra dyb søvn bruger man GPIO16 ved at forbinde den til RST pin. Dette er et emne til en anden artikel.

On board LED

De fleste udviklingskort har en eller flere indbyggede LED’er. Den LED, der er indbygget i ESP8266-modulet, er forbundet til GPIO2, og den LED, der er indbygget i udviklingskortet, er forbundet til GPIO16.

Reset- og flashknap

Det at trykke på reset-knappen eller trække RST-pinden lavt nulstiller ESP8266-chippen. Tryk på Flash-knappen eller træk GPIO0 lavt sætter ESP8266-chippen i bootloader-tilstand.

Hvilken pin på ESP8266 skal bruges

Hold altid øje med, at GPIO-etiketten ikke stemmer overens med etiketten på silkeskærmen. GPIO0 svarer f.eks. til D3 og D0 svarer til GPIO16. GPIO’er med et grønt kryds er bedst at bruge.

Ja

Label GPIO Input Output Description
A0 ADC0 Analog indgang Nej For analog indgang fra 0 til 3.3v og ingen udgang.
RX GPIO3 Ja Kun RX-stift Høj ved opstart.
TX GPIO1 Kun Tx-stift Ja Høj ved opstart.
D0 GPIO16 Ingen afbrydelse Ingen I2C, PWM Bruges til at vække chip fra dyb søvn, Høj ved Boot.
D1 GPIO5 Ja Ofte brugt som SCL
D2 GPIO4 Ja Ja Ofte brugt som SDA
D3 GPIO0 Trukket op Ja Tilkoblet til Flash-knap
D4 GPIO2 Trukket op Ja Tilsluttet til indbygget-indbygget LED, Høj ved opstart.
D5 GPIO14 Ja Ja SCLK-stift til SPI-grænseflade
D6 GPIO12 Ja Ja MISO-stift til SPI-grænseflade
D7 GPIO13 Ja Ja MOSI-stift til SPI-interface
D8 GPIO15 Pulled to ground Yes CS pin til SPI interface

ESP8266 pin High og Low-spændingssignal ved opstart

Ved opstart af ESP8266 giver følgende stifter 3.3v-signal på specificerede pins, så tilslutning af relæer, transistorer eller andre perifere enheder kan opføre sig forkert. Følgende pin udsender 3,3v-signal ved Boot:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Alle andre GPIOs pin giver lav spænding enkelt ved Boot undtagen GPIO4 og GPIO5. Så GPIO4 og GPIO5 er de bedste pins til at forbinde relæer, transistorer og andre perifere enheder til stabile resultater.

Pins konfiguration under opstart

For at starte ESP8266 op med succes skal vi forhindre de angivne pins i at få HIGH eller LOW.

  • GPIO16: pin er høj ved BOOT
  • GPIO3: pin er høj ved BOOT
  • GPIO10: pin er høj ved BOOT
  • GPIO9: pin er høj ved BOOT
  • GPIO2: pin er høj ved BOOT, bootfejl hvis trukket LOW
  • GPIO1: pin er høj ved BOOT, bootfejl hvis trukket LOW
  • GPIO0: bootfejl hvis trukket LOW
  • GPIO15: pin er høj ved BOOT, bootfejl hvis trukket LOW
  • GPIO15: Bootfejl hvis trukket HIGH

Anvendelser af ESP8266

  • Hjemmeautomatisering
  • Smarte stik og switche
  • Hjemmeapparater (som AC, Printer)
  • Trådløs industriel styring
  • Sensor-enheder
  • Bærbare gadgets
  • IP-kameraer
  • Sikkerheds-id-tags
  • Wi-Fi lokationsbevidste enheder
  • Wi-Fi positionssystem

Du vil måske også gerne tage et kig på andre ESP8266 tutorials: