Справочник по распиновке ESP8266: какие выводы GPIO следует использовать?
Эта статья является справочником по GPIO ESP8266: схемы распиновки, их функции и способы использования.
Чип ESP8266 12-E имеет 17 выводов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO не рекомендуется использовать, а другие имеют очень специфические функции.
С помощью этого руководства вы узнаете, как правильно использовать GPIO ESP8266 и избежать часов разочарования, используя наиболее подходящие выводы для ваших проектов.
Примечание
Не все GPIO доступны на всех платах разработки, но каждый конкретный GPIO работает одинаково независимо от того, какую плату разработки вы используете. Если вы только начинаете работу с ESP8266, мы рекомендуем ознакомиться с нашими руководствами по ESP8266.
Распиновка чипа ESP8266 12-E
На следующем рисунке показана распиновка чипа ESP8266 12-E. Используйте эту схему, если вы используете чистый чип ESP8266 в своих проектах.
Примечание
Не все GPIO доступны на всех платах разработки, но каждый конкретный GPIO работает одинаково независимо от того, какую плату разработки вы используете. Если вы только начинаете работу с ESP8266, мы рекомендуем прочитать наше руководство: Начало работы с ESP8266.
В настоящее время существует большое разнообразие плат разработки с чипом ESP8266, которые различаются количеством доступных GPIO, размером, форм-фактором и т.д.
Наиболее широко используемые платы ESP8266 — это ESP-01, ESP8266-12E NodeMCU Kit и Wemos D1 Mini. Для сравнения этих плат вы можете прочитать это руководство: Сравнение плат разработки ESP8266 Wi-Fi.
Распиновка ESP8266-01
Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справки.
Распиновка ESP8266 12-E NodeMCU Kit
Схема распиновки ESP8266 12-E NodeMCU kit показана ниже.
Распиновка Wemos D1 Mini
На следующем рисунке показана распиновка WeMos D1 Mini.
Скачать PDF со схемами распиновки ESP8266
Мы подготовили удобный PDF-файл, который вы можете скачать и распечатать, чтобы схемы ESP8266 всегда были под рукой:
Периферия 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 работает с инвертированной логикой. Отправьте сигнал HIGH, чтобы выключить его, и сигнал LOW, чтобы включить.
Вывод RST
Когда вывод RST подтянут к LOW, ESP8266 перезагружается. Это то же самое, что нажать кнопку RESET на плате.
GPIO0
Когда GPIO0 подтянут к LOW, ESP8266 переходит в режим загрузчика. Это то же самое, что нажать кнопку FLASH/BOOT на плате.
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, у нас есть отличный контент, который может вас заинтересовать:
Спасибо за чтение.