Справочник по распиновке ESP8266: какие выводы GPIO следует использовать?

Эта статья является справочником по GPIO ESP8266: схемы распиновки, их функции и способы использования.

Справочник по распиновке ESP8266 GPIO

Чип ESP8266 12-E имеет 17 выводов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO не рекомендуется использовать, а другие имеют очень специфические функции.

С помощью этого руководства вы узнаете, как правильно использовать GPIO ESP8266 и избежать часов разочарования, используя наиболее подходящие выводы для ваших проектов.

Примечание

Не все GPIO доступны на всех платах разработки, но каждый конкретный GPIO работает одинаково независимо от того, какую плату разработки вы используете. Если вы только начинаете работу с ESP8266, мы рекомендуем ознакомиться с нашими руководствами по ESP8266.

Распиновка чипа ESP8266 12-E

На следующем рисунке показана распиновка чипа ESP8266 12-E. Используйте эту схему, если вы используете чистый чип ESP8266 в своих проектах.

Схема распиновки чипа ESP8266 ESP-12E GPIO

Примечание

Не все GPIO доступны на всех платах разработки, но каждый конкретный GPIO работает одинаково независимо от того, какую плату разработки вы используете. Если вы только начинаете работу с ESP8266, мы рекомендуем прочитать наше руководство: Начало работы с ESP8266.

В настоящее время существует большое разнообразие плат разработки с чипом ESP8266, которые различаются количеством доступных GPIO, размером, форм-фактором и т.д.

Наиболее широко используемые платы ESP8266 — это ESP-01, ESP8266-12E NodeMCU Kit и Wemos D1 Mini. Для сравнения этих плат вы можете прочитать это руководство: Сравнение плат разработки ESP8266 Wi-Fi.

Распиновка ESP8266-01

Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справки.

Схема распиновки ESP-01 ESP8266 GPIO

Распиновка ESP8266 12-E NodeMCU Kit

Схема распиновки ESP8266 12-E NodeMCU kit показана ниже.

Схема распиновки ESP8266 12-E NodeMCU Kit GPIO

Распиновка Wemos D1 Mini

На следующем рисунке показана распиновка WeMos D1 Mini.

Схема распиновки WeMos D1 Mini GPIO

Скачать PDF со схемами распиновки ESP8266

Мы подготовили удобный PDF-файл, который вы можете скачать и распечатать, чтобы схемы ESP8266 всегда были под рукой:

Скачать PDF-схемы распиновки »

Периферия ESP8266

Периферия ESP8266 включает:

  • 17 GPIO

  • SPI

  • I2C (реализован программно)

  • Интерфейсы I2S с DMA

  • UART

  • 10-битный АЦП

Лучшие выводы для использования — ESP8266

Одна важная вещь, которую следует учитывать при работе с ESP8266 — номер GPIO не совпадает с маркировкой на шелкографии платы. Например, D0 соответствует GPIO16, а D1 соответствует GPIO5.

В следующей таблице показано соответствие между маркировками на шелкографии и номерами GPIO, а также указано, какие выводы лучше всего использовать в ваших проектах и с какими нужно быть осторожными.

Выводы, выделенные зелёным, можно использовать без ограничений. Выводы, выделенные жёлтым, можно использовать, но нужно обратить внимание, так как они могут вести себя неожиданно, в основном при загрузке. Выводы, выделенные красным, не рекомендуется использовать в качестве входов или выходов.

Маркировка

GPIO

Вход

Выход

Примечания

D0

GPIO16

нет прерываний

нет PWM или I2C

HIGH при загрузке; используется для пробуждения из deep sleep

D1

GPIO5

OK

OK

часто используется как SCL (I2C)

D2

GPIO4

OK

OK

часто используется как SDA (I2C)

D3

GPIO0

подтянут вверх

OK

подключён к кнопке FLASH, загрузка не удаётся при LOW

D4

GPIO2

подтянут вверх

OK

HIGH при загрузке; подключён к встроенному LED, загрузка не удаётся при LOW

D5

GPIO14

OK

OK

SPI (SCLK)

D6

GPIO12

OK

OK

SPI (MISO)

D7

GPIO13

OK

OK

SPI (MOSI)

D8

GPIO15

подтянут к GND

OK

SPI (CS); загрузка не удаётся при HIGH

RX

GPIO3

OK

вывод RX

HIGH при загрузке

TX

GPIO1

вывод TX

OK

HIGH при загрузке; отладочный вывод при загрузке, загрузка не удаётся при LOW

A0

ADC0

аналоговый вход

X

Продолжайте чтение для более подробного и глубокого анализа GPIO ESP8266 и их функций.

GPIO, подключённые к Flash-чипу

GPIO6 — GPIO11 обычно подключены к flash-чипу на платах ESP8266. Поэтому эти выводы не рекомендуется использовать.

Выводы, используемые при загрузке

ESP8266 может не загрузиться, если некоторые выводы подтянуты к LOW или HIGH. В следующем списке показано состояние следующих выводов при загрузке (BOOT):

  • GPIO16: вывод в состоянии HIGH при загрузке

  • GPIO0: сбой загрузки при подтяжке к LOW

  • GPIO2: вывод в состоянии HIGH при загрузке, сбой загрузки при подтяжке к LOW

  • GPIO15: сбой загрузки при подтяжке к HIGH

  • GPIO3: вывод в состоянии HIGH при загрузке

  • GPIO1: вывод в состоянии HIGH при загрузке, сбой загрузки при подтяжке к LOW

  • GPIO10: вывод в состоянии HIGH при загрузке

  • GPIO9: вывод в состоянии HIGH при загрузке

Выводы с HIGH при загрузке

Некоторые выводы выдают сигнал 3.3В при загрузке ESP8266. Это может быть проблематично, если у вас подключены реле или другие периферийные устройства к этим GPIO. Следующие GPIO выдают сигнал HIGH при загрузке:

  • GPIO16

  • GPIO3

  • GPIO1

  • GPIO10

  • GPIO9

Кроме того, остальные GPIO, за исключением GPIO5 и GPIO4, могут выдавать низковольтный сигнал при загрузке, что может быть проблематично, если они подключены к транзисторам или реле. Вы можете прочитать эту статью, которая исследует состояние и поведение каждого GPIO при загрузке.

GPIO4 и GPIO5 — наиболее безопасные GPIO для использования, если вы хотите управлять реле.

Аналоговый вход

ESP8266 поддерживает аналоговое чтение только на одном GPIO. Этот GPIO называется ADC0 и обычно обозначен на шелкографии как A0.

Максимальное входное напряжение вывода ADC0 составляет от 0 до 1В, если вы используете чистый чип ESP8266. Если вы используете плату разработки, такую как ESP8266 12-E NodeMCU kit, диапазон входного напряжения составляет от 0 до 3.3В, поскольку эти платы содержат встроенный делитель напряжения.

Вы можете узнать, как использовать аналоговое чтение с ESP8266, из следующего руководства:

Встроенный LED

Большинство плат разработки ESP8266 имеют встроенный LED. Этот LED обычно подключён к GPIO2.

Встроенный LED ESP8266 NodeMCU

LED работает с инвертированной логикой. Отправьте сигнал HIGH, чтобы выключить его, и сигнал LOW, чтобы включить.

Вывод RST

Когда вывод RST подтянут к LOW, ESP8266 перезагружается. Это то же самое, что нажать кнопку RESET на плате.

Кнопка сброса на плате ESP8266 NodeMCU

GPIO0

Когда GPIO0 подтянут к LOW, ESP8266 переходит в режим загрузчика. Это то же самое, что нажать кнопку FLASH/BOOT на плате.

Кнопка FLASH/BOOT GPIO0 ESP8266 NodeMCU

GPIO16

GPIO16 можно использовать для пробуждения ESP8266 из режима глубокого сна (deep sleep). Для пробуждения ESP8266 из deep sleep GPIO16 должен быть подключён к выводу RST. Узнайте, как перевести ESP8266 в режим глубокого сна:

I2C

ESP8266 не имеет аппаратных выводов I2C, но I2C может быть реализован программно. Поэтому вы можете использовать любые GPIO в качестве выводов I2C. Обычно в качестве выводов I2C используются следующие GPIO:

  • GPIO5: SCL

  • GPIO4: SDA

SPI

Выводы, используемые в качестве SPI на ESP8266:

  • GPIO12: MISO

  • GPIO13: MOSI

  • GPIO14: SCLK

  • GPIO15: CS

Выводы PWM

ESP8266 позволяет использовать программный PWM на всех выводах ввода/вывода: от GPIO0 до GPIO15. Сигналы PWM на ESP8266 имеют 10-битное разрешение. Узнайте, как использовать выводы PWM ESP8266:

Выводы прерываний

ESP8266 поддерживает прерывания на любом GPIO, за исключением GPIO16.

Заключение

Мы надеемся, что этот справочник по GPIO ESP8266 оказался для вас полезным. Если у вас есть советы по правильному использованию GPIO ESP8266, вы можете написать комментарий ниже.

У нас также есть аналогичное руководство по GPIO ESP32, которое вы можете прочитать.

Если вы только начинаете работу с ESP8266, у нас есть отличный контент, который может вас заинтересовать:

Спасибо за чтение.