Съдържание:

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

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

Видео: ESP8266 Използване на пинове GPIO0/GPIO2/GPIO15: 4 стъпки
Видео: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Ноември
Anonim
ESP8266 Използване на пинове GPIO0/GPIO2/GPIO15
ESP8266 Използване на пинове GPIO0/GPIO2/GPIO15

Актуализация 1 юли 2018 г.-Добавена бележка за препрограмиране, когато GPIO0 е изход

Това е много кратка бележка за това как да използвате щифтове GPIO0 / GPIO2 и GPIO15 на модула ESP8266.

Актуализация: Вижте също как да използвате щифтовете ESP8266-01

Въведение

ESP8266 е евтин чип с възможност за wifi. Той се предлага в различни типове модули и може да бъде програмиран по различни начини. Всички модули правят GPIO0 и GPIO2 достъпни. Повечето модули, различни от ESP8266-01, също правят GPIO15 достъпен. Тези GPIO контролират начина на стартиране на модула и като такива изискват специално боравене, ако въобще трябва да се използват. GPIO6-GPIO11 също изисква специално лечение, както е описано по-долу.

Стъпка 1: Flash GPIO щифтове - GPIO6 до GPIO11

Повечето платки ESP8266 имат флаш чип, свързан към някои или всички GPIO6-GPIO11. Повечето програми използват флаш памет, както и RAM, така че освен ако не се уверите, че кодът ви работи само от RAM, не можете да използвате тези пинове за други цели.

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

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

Стъпка 2: Изводи GPIO0, GPIO2 и GPIO15

Пинове GPIO0, GPIO2 и GPIO15
Пинове GPIO0, GPIO2 и GPIO15

Тези щифтове определят в какъв режим се стартира чипът.

За нормално изпълнение на програмата GPIO0 и GPIO2 трябва да бъдат изтеглени до Vcc (3.3V), а GPIO15 трябва да се изтегли към GND, всеки с резистор в диапазона 2K до 10K резистор. 2K резистор осигурява по -добра устойчивост на шум. OLIMEX използва 2K резистори SparkFun използва 10K резистори. Използвам 3K3 резистори.

Настройките на тези входове се проверяват само по време на включване (или нулиране) на чипа. След това щифтовете са достъпни за обща употреба, но както е обсъдено по -долу, тяхната употреба е ограничена от тези външни резистори за издърпване/надолу.

Стъпка 3: Използване на GPIO0, GPIO2 и GPIO15 като изходи

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

Както бе отбелязано по -горе, тези щифтове вече ще имат резистор, свързан или към VCC (GPIO0 и GPIO2), или към GND за GPIO15. Това определя как всяко външно устройство, като реле или LED+резистор, трябва да бъде свързано. За GPIO0 и GPIO2, външно реле трябва да бъде свързано между VCC и щифта, така че да не пречи на действието на издърпващия резистор. Обратно, външно реле, свързано към GPIO15, трябва да бъде свързано между GND и щифта, така че да не пречи на действието на издърпващия резистор.

За да активирате външното устройство, GPIO0 или GPIO2 трябва да се управляват LOW (Active LOW), докато GPIO15 трябва да се управлява HIGH (Active HIGH).

Схемата по -горе показва как да използвате GPIO0 и GPIO2 и GPIO15 като изходи. Тази верига включва и необходимите издърпващи/издърпващи резистори. Обърнете внимание, че релейният модул 5V, задвижван от GPIO0, е оптоизолиран и има отделна обща връзка за входа. Важно е 5V VCCA напрежението да не се прилага към щифта ESP8266.

Как да препрограмирате, когато използвате GPIO0 като изход

Забележка: GPIO0 трябва да бъде заземен, за да влезе в режим на програмиране. Ако скицата го кара високо, заземяването може да ви повреди чипа ESP8266. Безопасният начин за препрограмиране на ESP8266, когато вашият код задвижва изхода GPIO0, е да:- а) изключите платката б) късо GPIO0 до gnd в) включите платката, която преминава в програмен режим поради късо съединение на GPIO0 г) премахнете късото от GPIO0, така че да не късате изхода, когато програмата работи д) препрограмира платката е) захранва цикъла на платката, ако е необходимо.

Стъпка 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 заедно.

Препоръчано: