Оглавление:

ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15: 4 шага
ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15: 4 шага

Видео: ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15: 4 шага

Видео: ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15: 4 шага
Видео: esp8266 подключение к arduino 2024, Ноябрь
Anonim
ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15
ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15

Обновление 1 июля 2018 г. - добавлено примечание о перепрограммировании, когда GPIO0 является выходом

Это очень короткое примечание о том, как использовать контакты GPIO0 / GPIO2 и GPIO15 на модуле ESP8266.

Обновление: также ознакомьтесь с тем, как использовать контакты ESP8266-01.

Вступление

ESP8266 - недорогой чип с поддержкой Wi-Fi. Он имеет множество типов модулей и может быть запрограммирован разными способами. Все модули делают доступными GPIO0 и GPIO2. Большинство модулей, кроме ESP8266-01, также делают доступным GPIO15. Эти GPIO контролируют запуск модуля и поэтому требуют особого обращения, если они вообще будут использоваться. GPIO6-GPIO11 также требует особого обращения, как описано ниже.

Шаг 1. Прошивка контактов GPIO - с GPIO6 на GPIO11

Большинство плат ESP8266 имеют микросхему флэш-памяти, подключенную к некоторым или всем GPIO6-GPIO11. Большинство программ используют флэш-память, а также ОЗУ, поэтому, если вы специально не убедитесь, что ваш код запускается только из ОЗУ, вы не можете использовать эти контакты для других целей.

Точное количество контактов, используемых в диапазоне от GPIO6 до GPIO11, зависит от типа флеш-оборудования, используемого в вашем модуле. Quad IO использует 4 линии для данных (всего 6 контактов), что в 4 раза превышает стандартную скорость. Двойной ввод-вывод использует 2 линии для данных (всего 4 контакта). Стандарт использует одну строку для данных (всего 3 контакта).

Если вы точно не знаете, что требуется вашей плате, вам лучше просто игнорировать GPIO6 - GPIO11 и не ссылаться на них в своем коде.

Шаг 2: контакты GPIO0, GPIO2 и GPIO15

Контакты GPIO0, GPIO2 и GPIO15
Контакты GPIO0, GPIO2 и GPIO15

Эти контакты определяют, в каком режиме запускается микросхема.

Для нормального выполнения программы GPIO0 и GPIO2 необходимо подтянуть до Vcc (3,3 В), а GPIO15 нужно подтянуть к GND, каждый с резистором в диапазоне от 2 кОм до 10 кОм. Резистор 2K обеспечивает лучшую помехозащищенность. OLIMEX использует резисторы 2 кОм. SparkFun использует резисторы 10 кОм. Я использую резисторы 3К3.

Настройки этих входов проверяются только при включении (или сбросе) микросхемы. После этого выводы доступны для общего использования, но, как обсуждается ниже, их использование ограничено этими внешними подтягивающими резисторами.

Шаг 3: Использование GPIO0, GPIO2 и GPIO15 в качестве выходов

Использование GPIO0, GPIO2 и GPIO15 в качестве выходов
Использование GPIO0, GPIO2 и GPIO15 в качестве выходов

Как отмечалось выше, на этих выводах уже будет резистор, подключенный либо к VCC (GPIO0 и GPIO2), либо к GND для GPIO15. Это определяет, как должно быть подключено любое внешнее устройство, например реле или светодиод + резистор. Для GPIO0 и GPIO2 внешнее реле должно быть подключено между VCC и выводом, чтобы оно не мешало работе подтягивающего резистора. И наоборот, внешнее реле, подключенное к GPIO15, должно быть подключено между GND и контактом, чтобы оно не мешало работе понижающего резистора.

Чтобы активировать внешнее устройство, GPIO0 или GPIO2 должны быть установлены на НИЗКИЙ (активный НИЗКИЙ), а GPIO15 - на ВЫСОКИЙ (активный ВЫСОКИЙ).

На схеме выше показано, как использовать GPIO0, GPIO2 и GPIO15 в качестве выходов. Эта схема также включает в себя необходимые подтягивающие / понижающие резисторы. Обратите внимание, что модуль реле 5 В, управляемый GPIO0, оптоизолирован и имеет отдельное общее соединение для входа. Важно, чтобы на вывод ESP8266 не подавалось напряжение 5 В VCCA.

Как перепрограммировать при использовании GPIO0 в качестве выхода

Примечание: GPIO0 необходимо заземлить, чтобы перейти в режим программирования. Если вы делаете набросок слишком высоко, заземление может повредить вам микросхему ESP8266. Безопасный способ перепрограммировать ESP8266, когда ваш код управляет выходом GPIO0: короткое замыкание от GPIO0, поэтому вы не закорачиваете выход во время работы программы e) перепрограммируйте плату f) выключите и снова включите плату, если необходимо.

Шаг 4: Использование GPIO0, GPIO2 и GPIO15 в качестве входов

Использование GPIO0, GPIO2 и GPIO15 в качестве входов
Использование GPIO0, GPIO2 и GPIO15 в качестве входов

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

Хитрость заключается в том, чтобы не подключать внешний переключатель напрямую от GPIO0 или GPIO2 к GND, а подключить его вместо этого к другому выводу GPIO, который заземлен (как выход) только после запуска ESP8266. Помните, что при использовании в качестве выходов контакты GPIO обеспечивают соединение с очень низким сопротивлением либо с VCC, либо с GND, в зависимости от того, находятся ли они в ВЫСОКОМ или НИЗКОМ состоянии.

Здесь будут рассматриваться только GPIO0 и GPIO2. Используя этот метод, вы можете получить один (1) дополнительный вход, используя эти два (2) GPIO.

Аналогичный метод можно использовать для GPIO15, используя другой вывод GPIO для подключения его переключателя к + VCC, но это не дает дополнительного входа, вы также можете просто использовать другой вывод GPIO непосредственно в качестве входа.

В приведенной выше схеме в качестве примера используется модуль ESP8266-01. Без использования этого трюка ESP8266-01 не имеет свободных контактов для использования в качестве входа, если вы уже используете контакты RX / TX для соединения UART.

Поскольку метод setup () скетча запускается только после запуска модуля ESP8266, можно безопасно сделать выход GPIO0 НИЗКИМ, и таким образом обеспечить заземление для S1, подключенного к GPIO2. Затем вы можете использовать digitalRead (2) в другом месте вашего скетча, чтобы прочитать настройку переключателя.

Заключение

В этой короткой заметке показано, как использовать GPIO0, GPIO2 и GPIO15 в качестве выходов и как использовать дополнительный вход, используя GPIO0 и GPIO2 вместе.

Рекомендуемые: