Microcontrollers Lab

Table of Contents

Ten tutorial jest o pinout reference of ESP8266 and different types of ESP8266 boards like Nodemcu, ESP01 , ESP12. Po pierwsze, przedstawię ogólny zarys układu ESP8266 i jego rozmieszczenie pinów, a następnie podam rozmieszczenie pinów najpopularniejszych płyt ESP8266.

Esp8266 jest mikroprocesorem w obudowie QFN posiadającym możliwości zarówno pakietu TCP/IP jak i mikrokontrolera. Esp8266 dostarcza wysoce zintegrowane rozwiązanie WiFi, które spełnia potrzeby branży Internet of Things, takie jak niski koszt, efektywne wykorzystanie energii, godna zaufania wydajność i kompaktowa konstrukcja. Jest on produkowany przez Espressif Systems w Szanghaju, Chiny.

Posiadając pełne możliwości sieciowe WiFi może działać jako slave do mikrokontrolera hosta lub jako samodzielna aplikacja. Kiedy mówimy o slave do mikrokontrolera hosta, oznacza to, że może być używany jako adapter WiFi do dowolnego mikrokontrolera używającego interfejsów SPI lub UART. Podczas korzystania jako samodzielny może wykonywać możliwości mikrokontrolera i sieci WiFi.

Esp8266 jest oparty wokół serii L106 Diamond firmy Tensilica, która jest 32-bitowym procesorem i posiada wbudowaną pamięć SRAM. Integruje również moduły zasilania, balun RF, odbiornik i nadajnik RF, analogowy odbiornik i nadajnik, cyfrowy baseband, wzmacniacz, filtry i kilka innych minimalnych komponentów.

Specyfikacja ESP8266

Specyfikacja ESP8266 dzieli się na trzy części: Hardware, Software i Wi-Fi. W specyfikacji sprzętowej, jego rozmiar opakowania to QFN 32pins o wymiarach 5mm x 5mm. Napięcia pracy mieszczą się w zakresie od 2.5V do 3.6V. Układ pobiera średnio 80mA prądu. Jego procesorem jest Tensilica L106, który jest procesorem 32-bitowym z wbudowaną pamięcią SRAM. Interfejs peryferyjny zawiera UART, SDIO, SPI, I2C, I2S, IR remote control, GIPO’s, ADC, PWM, LED Light i przycisk.

Jego firmware może być aktualizowany za pomocą OTA i UART. Używa IPv4, TCP, UDP, i HTTP jako protokołów sieciowych. Użytkownik może konfigurować za pomocą zestawu poleceń AT, serwera w chmurze oraz aplikacji mobilnej.

ESP8266 Chip Pinout and Descriptions

Rozkład pinów w 32-pinowym pakiecie QFN.

  • Pin1: VDDA to pin zasilania dla analogowych zakresów napięcia od 2,5V do 3,6V.
  • Pin2: LNA jest pin wejściowy / wyjściowy specjalnie używany do interfejsu anteny RF. Chip wytwarza impedancję 39+j6 Ω.
  • Pin3: VDD3P3 jest pinem zasilania, aby zapewnić wzmacniaczowi zakres mocy od 2,5V do 3,6V.
  • Pin4: VDD3P3 jest pin zasilania dostarczyć wzmacniacz zakresy mocy od 2,5V do 3,6V podobne do pin3.
  • Pin5: VDD_RTC jest skategoryzowany jako pin zasilania i dostarcza 1.1V ale ten pin nie jest podłączony.
  • Pin6: TOUT jest pinem wejściowym pełni funkcje ADC do testowania napięć zasilania Pin3 i Pin4 oraz napięć wejściowych TOUT pin6. Te dwie funkcje nie mogą być wykonywane jednocześnie.
  • Pin7: CHIP_EN I jest stykiem wejściowym. Gdy CHIP_EN jest w stanie HIGH układ pracuje prawidłowo, gdy w stanie LOW układ pobiera niewielką ilość prądu.
  • Pin8: XPD_DCDC jest to pin wejściowy/wyjściowy, który służy do wybudzania układu z głębokiego uśpienia. Często jest on połączony z GPIO16.
  • Pin9: MTMS to pin wejściowy/wyjściowy oznaczony jako GPIO14 i jest on używany w SPI jako pin zegarowy (SPI_CLK).
  • Pin10: MTDI to pin wejściowy/wyjściowy oznaczony jako GPIO12 i jest on używany w SPI jako pin Master-In-Slave-Out (SPI_MISO).
  • Pin11: VDDPST to pin zasilania. Jest to zasilacz cyfrowego wejścia/wyjścia, którego napięcia wahają się od 1.8V do 3.6V. Podobnie jak pin17.
  • Pin12: MTCK jest pin wejściowy/wyjściowy oznaczony jako GPIO13 i jest używany w SPI jako pin Master-Out Slave-In (SPI_MOSI) jak również używany w UART jako pin Clear To Send (UART_CTS).
  • Pin13: MTDO jest pin wejściowy/wyjściowy oznaczony jako GPIO15 i jest używany w SPI jako pin Chip Select (SPI_CS) jak również używany w UART jako pin Request To Send (UART_RTS).
  • Pin14: GPIO2 jest wejściem/wyjściem używanym jako UART TX podczas programowania flash.
  • Pin15: GPIO0 jest wejściem/wyjściem używanym jako Chip Select pin2 w SPI (SPI_CS2).
  • Pin16: GPIO4 jest wejściem/wyjściem używanym wyłącznie do celów wejściowych i wyjściowych.
  • Pin17: VDDPST jest pinem zasilania. Jest to zasilacz cyfrowego wejścia/wyjścia, którego napięcia wahają się od 1,8V do 3,6V. Podobnie jak pin11.
  • Pin18: SDIO_DATA_2 jest pinem wejściowym/wyjściowym oznaczonym jako GPIO9 i służy do połączenia z pinem danych 2 karty SD.
  • Pin19: SDIO_DATA_3 jest pinem wejściowym/wyjściowym oznaczonym jako GPIO10 i służy do połączenia z pinem danych 3 karty SD.
  • Pin20: SDIO_CMD to pin wejścia/wyjścia oznaczony jako GPIO11 i służący do połączenia z pinem komendy karty SD
  • Pin21: SDIO_CLK to pin wejścia/wyjścia oznaczony jako GPIO6 i służący do połączenia z pinem zegara karty SD.
  • Pin22: SDIO_DATA_0 jest pinem wejścia/wyjścia oznaczonym jako GPIO7 i służy do połączenia z pinem danych 0 karty SD.
  • Pin23: SDIO_DATA_1 jest pinem wejścia/wyjścia oznaczonym jako GPIO8 i służy do połączenia z pinem danych 1 karty SD.
  • Pin24: GPIO5 jest pinem wejściowym/wyjściowym używanym wyłącznie do celów wejściowych i wyjściowych.
  • Pin25: U0RXD jest pinem wejściowym/wyjściowym oznaczonym jako GPIO3 i używanym jako UART RX podczas programowania flash.
  • Pin26: U0TXD jest pinem wejściowym/wyjściowym oznaczonym jako GPIO1 i używanym jako UART TX podczas programowania flash. Używany również jako SPI Chip Select pin 1 (SPI_CS1).
  • Pin27: XTAL_OUT jest klasyfikowany jako pin wejściowy/wyjściowy i podłączony do wyjścia oscylatora kryształu.
  • Pin28: XTAL_IN jest klasyfikowany jako pin wejściowy/wyjściowy i podłączony do wejścia oscylatora kryształu.
  • Pin29: VDD jest pinem zasilania zapewniającym analogowe zasilanie w zakresie od 2,5V do 3,6V.
  • Pin30: VDDA jest pinem zasilania zapewniającym analogowe zasilanie w zakresie od 2,5V do 3,6V. Podobnie jak pin29.
  • Pin31: RES12K jest pinem wejściowym, który jest połączony szeregowo z rezystorami 12 kΩ i połączony z masą.
  • Pin32: EXT_RSBT jest pinem wejściowym służącym do restartu układu poprzez dostarczenie zewnętrznego sygnału reset, który jest aktywny przy niskim poziomie napięcia.
  • Pin33: GND jest pinem zasilania działającym jako masa dla układu.

Wszystkie GPIO mogą być używane jako piny wejściowe i wyjściowe, ale mają też swoje specyficzne funkcje.

Schematy

Schematy układów ESP8266 zawierają następujące elementy:

  • Zasilanie
  • Sekwencja włączania zasilania i reset
  • Flash
  • Oscylator krystaliczny
  • RF
  • Opornik zewnętrzny
  • UART

Do tej pory omówiliśmy preambułę Esp8266, schemat bloku funkcjonalnego, rozmieszczenie pinów, opis i schematy.

W sierpniu 2014 Espressif Systems uruchomił swój pierwszy surowy moduł, który jest produkowany przez trzecią część AI-Thinker i moduł określany jako moduł ESP-01. Od tego czasu Ai-Thinker opracował serię modułów opartych na ESP8266, seria ta określana jako moduły ESP-xx obejmuje zakres od 01 do 14.

Pinout różnych typów modułów ESP8266

W tej części artykułu omówimy pinout różnych wersji modułu ESP8266 począwszy od ESP-01 do ESP-12.

Espressif Systems wydało swój pierwszy oficjalny zestaw programistyczny do programowania układu bezpośrednio bez konieczności interakcji z zewnętrznym mikrokontrolerem. Od tego czasu istnieje wiele oficjalnych SDK, ale Espressif utrzymuje tylko dwa SDK stabilne jeden oparty jest na FreeRTOS, a drugi na callbacks. Istnieje również wiele otwartych SDK dla ESP8266.

Arduino: jest najczęściej używanym SDK ze względu na swoją popularność. Jest to SDK oparte na C++. ESP6266 jest łatwe do zaprogramowania jak płytki Arduino. Pliki rdzeniowe są dostępne na GitHub.

NodeMCU: jest zestawem do tworzenia oprogramowania opartym na Lua.

MicroPython: jest wykorzystaniem języka Python dla urządzeń wbudowanych.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS są niektórymi innymi zestawami SDK typu open source.Potrzeba tych płytek rozwojowych jest wymagana ze względu na to, że seria modułów ESP-xx nie posiada na pokładzie regulatora napięcia, mostka USB do UART jak CH340G i Silicon Lab’s CP2102 oraz złącza micro USB. Wcześniej musieliśmy kupować osobno regulator napięcia i mostek USB do UART, a następnie podłączać je do modułów ESP-xx, aby je flashować.

Tutaj omówimy głównie płytki rozwojowe oparte na module ESP-12E.

Rozkład pinów modułu ESP8266 12E

Moduł ESP8266 12E posiada łącznie 22 piny, które zawierają

.

No. of Pins Pin Label Description
17 GPIO Piny GPIO z zakresu od GPIO0 do GPIO16 obejmują piny interfejsu SPI, I2C, SDIO, UART.
1 ADC 10 bitowy przetwornik analogowo-cyfrowy.
1 VCC Napięcie zasilania 3.3V
1 GND Pin uziemiający
1 RST Pin rest
1 Enable Chip Enable Pin

ESP8266 12E Wemos D1 Mini pinout

Płytka rozwojowa Wemos D1 Mini posiada łącznie 16 pinów, z czego 12 pinów jest aktywnych, wykorzystuje moduł ESP-12, wbudowany przycisk reset, 3.3 regulator napięcia, Micro USB, mostek USB do UART i kilka innych komponentów.

.

Nr. of

Pin

Label Opis
1 3,3V 3,3 V pin
1 5.0 Wejście 5V napięcia pin
1 GND Uziemienie pin
1 ADC 10-bitowy przetwornik analogowo-cyfrowy
1 RST Pin Reset
9 D0 do D8, Piny wejścia/wyjścia używane również dla SPI i I2C, Flash.
2 RX,TX Interfejs UART.

ESP8266 01 Module pinout

ESP8266 01 Module jest inny, ale powszechnie używany jak powyższe płytki rozwojowe. Ta płytka nie jest breadboard friendly często oddzielny moduł programujący jest używany do programowania. Posiada łącznie 8 pinów, z których 6 jest aktywnych.

.

Nr. of

Pin

Label Opis
1 3.3V Zasilanie 3.3 V pin
1 GND Uziemienie pin
1 RST Pin Reset
1 CH_PD/EN Pin zasilania i włączenia układu
4 GPIO 0 do 3 Interfejs UART oraz piny wejścia/wyjścia

ESP8266 12E NodeMCU Development Board pinout

Płytka rozwojowa NodeMCU posiada łącznie 30 pinów, z czego 14 pinów jest aktywnych, wykorzystuje moduł ESP-12, wbudowany przycisk reset i flash, 3.3 regulator napięcia, Micro USB, USB to UART Bridge i kilka innych komponentów.

Nr. of

Pin

Label Opis
3 3.3V 3.3 V piny
1 Vin Napięcie wejściowe 5V piny
4 GND Uziemienie piny
1 ADC 10-bitowy przetwornik analogowo-cyfrowy
1 RST Pin Reset
1 EN Pin Chip Enable
1 CLK CLK pin dla interfejsu SPI i SDIO
1 SD0 Pin danych 0 dla interfejsu SDIO i pin MISO dla interfejsu SPI.
1 CMD Pin komend dla interfejsu SDIO i pin Chip select dla interfejsu SPI.
1 SD1 Pin danych 1 dla interfejsu SDIO i pin MOSI dla interfejsu SPI.
1 SD2 Pin danych 0 dla interfejsu SDIO i używany również jako GPIO9.
1 SD3 Pin danych 3 dla interfejsu SDIO i używany również jako GPIO10.
2 RV Piny zarezerwowane.
11 D0 do D8, RX, TX Piny wejścia/wyjścia używane również dla UART, SPI, I2C, Flash i wake pin.

Peryferia ESP8266

Układy ESP8266 posiadają następujące peryferia:

  • 17 pinów wejściowych i wyjściowych ogólnego przeznaczenia
  • Seryjny interfejs peryferyjny (SPI)
  • Inter-Integrated Circuit (12C)
  • Inter-IC Interfejsy dźwiękowe (12S) z bezpośrednim dostępem do pamięci
  • Uniwersalny asynchroniczny interfejs odbiornika nadajnika.
  • 10-bitowy przetwornik analogowo-cyfrowy

Wejście analogowe

ESP8266 posiada tylko jeden 10-bitowy przetwornik analogowo-cyfrowy, określany jako ADC0 i oznaczany jako A0. Ale jest to również jego jedna z największych wad, ponieważ najczęściej użytkownik musi podłączyć dwa czujniki, więc musimy kupić oddzielne moduły ADC, układy scalone i układy multipleksujące do interfejsu dwóch lub więcej czujników, ale jest to temat na inny artykuł.

Wejście analogowe modułu ESP-01 mieści się w zakresie od 0 do 1V. Płytki rozwojowe oparte na module ESP-12E mają wejściowe napięcie analogowe w zakresie od 0 do 3.3V. Tak więc musimy pamiętać podczas pisania szkicu o wykorzystaniu pinu A0.

Piny PWM

ESP8266 umożliwia PWM na wszystkich pinach wejściowych/wyjściowych od GPIO0 do GPIO16. Sygnały PWM mają 10-bitową rozdzielczość.

Piny SPI

Seryjny interfejs programowania (SPI) ma następujące piny w ESP8266

Piny I2C

ESP8266 udostępnia tylko programowy interfejs I2C, co oznacza, że możemy użyć dowolnych dwóch pinów dla I2C, ale następujące piny są najczęściej używane.

GPIO5 dla Serial Clock Line (SCL)

GPIO4 dla Serial Data Line (SDA)

Piny przerwań

Możemy użyć dowolnego pinu GPIO dla przerwań oprócz GPIO16.

Wake Up

Aby wybudzić ESP8266 z głębokiego snu użyj GPIO16 podłączając go do pinu RST. Jest to temat na inny artykuł.

On board LED

Większość płytek rozwojowych posiada jedną lub więcej wbudowanych diod LED. Dioda wbudowana w moduł ESP8266 jest podłączona do GPIO2, a dioda wbudowana w płytkę rozwojową do GPIO16.

Przycisk Reset i Flash

Wciśnięcie przycisku Reset lub ściągnięcie pinu RST do niskiego poziomu resetuje układ ESP8266. Naciśnięcie przycisku Flash lub przeciągnięcie pinu GPIO0 w dół ustawia układ ESP8266 w tryb bootloadera.

Który pin układu ESP8266 użyć

Zawsze należy pamiętać, że etykieta GPIO nie odpowiada etykiecie na silkscreen. Na przykład GPIO0 odpowiada D3, a D0 odpowiada GPIO16. Najlepiej używać GPIO z zielonym haczykiem.

.

.

.

Label GPIO Wejście Wyjście Opis
A0 ADC0 Wejście analogowe Nie Dla wejścia analogowego od 0 do 3.3v i brak wyjścia.
RX GPIO3 Tak Tylko pin RX Wysoki przy rozruchu.
TX GPIO1 Tx pin only Yes Wysoki na Boot.
D0 GPIO16 Bez przerwania Bez I2C, PWM Używane do wybudzania układu z głębokiego snu, High at Boot.
D1 GPIO5 Tak Tak Często używane jako SCL
D2 GPIO4 Tak Tak Często używane jako SDA
D3 GPIO0 Podniesione do góry Tak Połączone z przyciskiem Flash
D4 GPIO2 Przyciągnięty do góry Tak Podłączony do wbudowanejw LED, High at Boot.
D5 GPIO14 Tak Tak Pin SCLK dla interfejsu SPI
D6 GPIO12 Tak Tak Pin MISO dla interfejsu SPI
D7 GPIO13 Tak Tak Pin MOSI dla interfejsu SPI
D8 GPIO15 Pulled to ground Yes CS pin for SPI interface

ESP8266 pin High and Low-Podczas uruchamiania ESP8266 następujące piny dostarczają sygnał 3.3.3v na określonych pinach, dzięki czemu podłączenie przekaźników, tranzystorów lub innych urządzeń peryferyjnych może się źle zachowywać. Następujące piny dostarczają sygnał 3.3v na Boot:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Wszystkie pozostałe piny GPIO dostarczają niskiego napięcia na Boot z wyjątkiem GPIO4 i GPIO5. Tak więc GPIO4 i GPIO5 są najlepszymi pinami do podłączenia przekaźników, tranzystorów i innych urządzeń peryferyjnych w celu uzyskania stabilnych wyników.

Konfiguracja pinów podczas uruchamiania

Aby pomyślnie uruchomić ESP8266 musimy uniemożliwić określonym pinom uzyskanie stanu HIGH lub LOW.

  • GPIO16: pin jest wysoki przy BOOT
  • GPIO3: pin jest wysoki przy BOOT
  • GPIO10: pin jest wysoki przy BOOT
  • GPIO9: pin jest wysoki przy BOOT
  • GPIO2: pin jest wysoki przy BOOT, boot failure if pulled LOW
  • GPIO1: pin jest wysoki przy BOOT, boot failure if pulled LOW
  • GPIO0: boot failure if pulled LOW
  • GPIO15: boot failure if pulled HIGH

Applications of ESP8266

  • Home automation
  • Smart plugs and switches
  • Home appliances (like AC, Drukarka)
  • Bezprzewodowa kontrola przemysłowa
  • Urządzenia czujnikowe
  • Gadżety do noszenia
  • Kamery IP
  • Znaki identyfikacyjne bezpieczeństwa
  • Urządzenia świadome lokalizacji Wi-Fi
  • System pozycjonowania Wi-Fi

Możesz również zajrzeć do innych tutoriali dotyczących ESP8266: