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

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

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

Примечание

Обратите внимание, что данный справочник по распиновке относится к популярной 30-контактной плате разработки ESP8266 NodeMCU.

Плата разработки ESP8266 NodeMCU

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

Периферия и ввод/вывод ESP8266

ESP8266 NodeMCU имеет в общей сложности 17 выводов GPIO, которые выведены на контактные гребёнки по обеим сторонам платы разработки. Этим выводам можно назначить различные периферийные функции, в том числе:

1 канал АЦП

1 канал 10-битного SAR АЦП

2 интерфейса UART

2 интерфейса UART с поддержкой управления потоком

4 выхода PWM

4 вывода PWM для управления, например, скоростью двигателя или яркостью светодиода

2 SPI и 1 I2C интерфейс

Два интерфейса SPI и один интерфейс I2C для подключения различных датчиков и периферийных устройств

Интерфейс I2S

Один интерфейс I2S для добавления звука в ваш проект

Благодаря функции мультиплексирования выводов ESP8266, которая позволяет нескольким периферийным устройствам совместно использовать один вывод GPIO, один GPIO-вывод может выполнять такие функции, как I2C, I2S, UART, PWM и т.д.

Для получения подробной информации об ESP8266 обратитесь к даташиту.

Даташит ESP8266

Распиновка ESP8266

ESP8266 NodeMCU имеет 30 выводов. Для удобства выводы со схожим функционалом сгруппированы вместе. Распиновка выглядит следующим образом:

Распиновка ESP8266 NodeMCU

Давайте подробнее рассмотрим выводы ESP8266 и их функции по отдельности.

Выводы GPIO ESP8266

ESP8266 NodeMCU имеет 17 выводов GPIO, которым можно назначить различные функции путём программирования соответствующих регистров. Каждый GPIO можно настроить с внутренним подтягивающим резистором к питанию или к земле, либо установить в режим высокого импеданса.

Выводы GPIO ESP8266

Какие GPIO ESP8266 безопасны для использования?

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

  • 🟢 — Выводы первого приоритета. Их использование полностью безопасно.

  • 🟡 — Обратите особое внимание, поскольку их поведение, особенно при загрузке, может быть непредсказуемым. Используйте их только при крайней необходимости.

  • 🔴 — Рекомендуется избегать использования этих выводов.

Маркировка

GPIO

Безопасен?

Причина

D0

GPIO16

🟡

HIGH при загрузке, используется для выхода из глубокого сна

D1

GPIO5

🟢

D2

GPIO4

🟢

D3

GPIO0

🟡

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

D4

GPIO2

🟡

HIGH при загрузке, загрузка не удастся, если подтянут к LOW

D5

GPIO14

🟢

D6

GPIO12

🟢

D7

GPIO13

🟢

D8

GPIO15

🟡

Необходим для загрузки, загрузка не удастся, если подтянут к HIGH

RX

GPIO3

🟡

Вывод Rx, используется для прошивки и отладки

TX

GPIO1

🟡

Вывод Tx, используется для прошивки и отладки

CLK

GPIO6

🔴

Подключён к Flash-памяти

SDO

GPIO7

🔴

Подключён к Flash-памяти

CMD

GPIO11

🔴

Подключён к Flash-памяти

SD1

GPIO8

🔴

Подключён к Flash-памяти

SD2

GPIO9

🔴

Подключён к Flash-памяти

SD3

GPIO10

🔴

Подключён к Flash-памяти

A0

ADC0

🟢

Аналоговый вход, не может быть настроен как выход

На изображении ниже показано, какие выводы GPIO можно безопасно использовать.

Выводы GPIO ESP8266, безопасные для использования

Выводы АЦП ESP8266

ESP8266 оснащён 10-битным SAR АЦП, что означает, что он может определять 1024 (2^10) дискретных аналоговых уровня. Другими словами, он преобразует входное напряжение в диапазоне от 0 до 3,3 В (рабочее напряжение) в целочисленные значения в диапазоне от 0 до 1024. Это даёт разрешение 3,3 В / 1024 единицы, или 0,0032 В (3,2 мВ) на единицу.

Выводы АЦП ESP8266

С помощью АЦП можно реализовать два следующих измерения. Однако их нельзя реализовать одновременно.

  • Измерение напряжения питания VDD3P3 (Pin3 и Pin4).

  • Измерение входного напряжения на выводе A0.

Выводы SPI ESP8266

ESP8266 имеет два интерфейса SPI (SPI и HSPI) в режимах ведомого и ведущего. Эти SPI также поддерживают следующие функции общего назначения:

  • 4 режима синхронизации формата передачи SPI

  • Частота до 80 МГц и делённые тактовые частоты от 80 МГц

  • FIFO до 64 байт

Выводы SPI ESP8266

Также возможно использовать SPI на любых выводах с помощью программной реализации (bitbanging).

Выводы I2C ESP8266

ESP8266 не имеет аппаратных выводов I2C, но протокол может быть реализован программно (bitbanging). Это работает достаточно хорошо, и ESP8266 достаточно быстр, чтобы соответствовать скорости «уровня Arduino».

По умолчанию GPIO4 (SDA) и GPIO5 (SCL) используются в качестве выводов I2C, чтобы облегчить использование существующего кода, библиотек и скетчей Arduino.

Однако вы можете использовать любые другие два вывода GPIO в качестве выводов I2C, вызвав wire.begin(SDA, SCL) в Arduino IDE.

Выводы I2C ESP8266

Выводы UART ESP8266

ESP8266 имеет два интерфейса UART — UART0 и UART2, которые поддерживают асинхронную связь (RS232 и RS485) на скорости до 4,5 Мбит/с.

  • UART0 (выводы TXD0, RXD0, RST0 и CTS0) используется для связи.

  • UART1 (вывод TXD1) имеет только сигнал передачи данных и обычно используется для вывода логов.

Выводы UART ESP8266

RXD0 и TXD0 являются выводами управления последовательной связью и загрузки прошивки. Они в первую очередь используются для связи с модулем ESP.

Поэтому следует проявлять осторожность при использовании этих выводов, поскольку они подключены через USB-последовательный преобразователь и, следовательно, будут получать USB-трафик.

Выводы PWM ESP8266

Все выводы GPIO ESP8266 — от GPIO0 до GPIO15 — могут быть запрограммированы для генерации сигналов с широтно-импульсной модуляцией (PWM).

Выводы PWM ESP8266

На ESP8266 сигнал PWM имеет 10-битное разрешение, а диапазон частоты PWM регулируется в пределах от 1000 мкс до 10000 мкс, т.е. от 100 Гц до 1 кГц.

Выводы SDIO ESP8266

ESP8266 имеет один подчинённый интерфейс SDIO (Secure Digital Input/Output Interface) для подключения SD-карт. Поддерживаются SDIO v1.1 (4-бит, 25 МГц) и SDIO v2.0 (4-бит, 50 МГц).

Выводы SDIO ESP8266

Выводы питания ESP8266

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

Вывод 3V3 является выходом встроенного стабилизатора напряжения; от него можно получить до 600 мА.

GND — это вывод заземления.

Выводы питания ESP8266

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

Все GPIO могут быть настроены как прерывания, за исключением GPIO16.

Управляющие выводы ESP8266

Вывод EN (также известный как CH_PD или Chip Power Down) — это вывод включения ESP8266, по умолчанию подтянутый к высокому уровню. Когда на нём HIGH, чип включён; когда LOW — чип выключен.

Вывод RST — это вывод сброса ESP8266, по умолчанию подтянутый к высокому уровню. При кратковременном подключении к земле происходит сброс ESP8266. Это эквивалентно нажатию кнопки RST на плате.

Вывод FLASH используется ESP8266 для определения момента входа в загрузчик. Если этот вывод удерживается в низком состоянии при включении питания, начнётся загрузка прошивки! Это эквивалентно нажатию кнопки FLASH на плате.

Вывод WAKE используется для пробуждения ESP8266 из глубокого сна.

Управляющие выводы ESP8266