Cuprins:

ESP8266 Utilizarea pinilor GPIO0 / GPIO2 / GPIO15: 4 pași
ESP8266 Utilizarea pinilor GPIO0 / GPIO2 / GPIO15: 4 pași

Video: ESP8266 Utilizarea pinilor GPIO0 / GPIO2 / GPIO15: 4 pași

Video: ESP8266 Utilizarea pinilor GPIO0 / GPIO2 / GPIO15: 4 pași
Video: P2 ESP01 4CH Relay Module (Subtittled) 2024, Noiembrie
Anonim
ESP8266 Utilizarea pinilor GPIO0 / GPIO2 / GPIO15
ESP8266 Utilizarea pinilor GPIO0 / GPIO2 / GPIO15

Actualizare 1 iulie 2018 - S-a adăugat o notă privind reprogramarea când GPIO0 este o ieșire

Aceasta este o notă foarte scurtă despre modul de utilizare a pinilor GPIO0 / GPIO2 și GPIO15 pe modulul ESP8266.

Actualizare: Verificați și Cum să utilizați pinii ESP8266-01

Introducere

ESP8266 este un cip WiFi cu cost redus. Acesta vine într-o varietate de tipuri de module și poate fi programat într-o varietate de moduri. Toate modulele fac GPIO0 și GPIO2 accesibile. Majoritatea modulelor, altele decât ESP8266-01, fac și GPIO15 accesibil. Aceste GPIO controlează modul în care pornește modulul și, ca atare, necesită o manipulare specială pentru a fi utilizate. GPIO6-GPIO11 necesită, de asemenea, un tratament special, așa cum este descris mai jos.

Pasul 1: Pini Flash GPIO - GPIO6 la GPIO11

Majoritatea plăcilor ESP8266 au un cip flash conectat la unele sau la toate GPIO6-GPIO11. Majoritatea programelor folosesc memorie flash, precum și memorie RAM, deci dacă nu vă asigurați în mod specific că codul dvs. rulează numai din memorie RAM, nu puteți utiliza acești pini în alte scopuri.

Numărul exact de pini utilizați în intervalul GPIO6 până la GPIO11 depinde de tipul de hardware flash utilizat pe modulul dvs. Quad IO folosește 4 linii pentru date (6 pini în total) de până la 4 ori viteza standard. Dual IO folosește 2 linii pentru date (4 pini în total) Standard folosește o singură linie pentru date (3 pini în total).

Dacă nu știți exact ce necesită placa dvs., cel mai bine este să ignorați GPIO6 la GPIO11 și să nu vă referiți la acestea din codul dvs.

Pasul 2: pini GPIO0, GPIO2 și GPIO15

Pinii GPIO0, GPIO2 și GPIO15
Pinii GPIO0, GPIO2 și GPIO15

Acești pini determină în ce mod pornește cipul.

Pentru execuția normală a programului, GPIO0 și GPIO2 trebuie să fie ridicate la Vcc (3,3V), iar GPIO15 trebuie să fie tras la GND, fiecare cu un rezistor în intervalul 2K până la 10K rezistor. Un rezistor de 2K oferă o imunitate mai bună la zgomot. OLIMEX folosește rezistențe 2K SparkFun folosește rezistențe 10K. Folosesc rezistențe 3K3.

Setările acestor intrări sunt verificate numai în timpul pornirii (sau resetării) cipului. După aceea, pinii sunt disponibili pentru uz general, dar după cum se discută mai jos, utilizarea lor este restricționată de aceste rezistențe externe de tragere în sus / în jos.

Pasul 3: Utilizarea GPIO0, GPIO2 și GPIO15 ca ieșiri

Utilizarea GPIO0, GPIO2 și GPIO15 ca ieșiri
Utilizarea GPIO0, GPIO2 și GPIO15 ca ieșiri

După cum sa menționat mai sus, acești pini vor avea deja un rezistor conectat fie la VCC (GPIO0 și GPIO2), fie la GND pentru GPIO15. Acest lucru determină modul în care trebuie conectat orice dispozitiv extern, cum ar fi un releu sau led + rezistor. Pentru GPIO0 și GPIO2, un releu extern trebuie să fie conectat între VCC și pin, astfel încât să nu interfereze cu acțiunea rezistenței de tragere. În schimb, un releu extern conectat la GPIO15 trebuie să fie conectat între GND și pin, astfel încât să nu interfereze cu acțiunea rezistenței de tragere.

Pentru a activa dispozitivul extern, GPIO0 sau GPIO2 trebuie să fie condus LOW (Active LOW), în timp ce GPIO15 trebuie să fie condus HIGH (Active HIGH).

Schema de mai sus arată cum să utilizați GPIO0 și GPIO2 și GPIO15 ca ieșiri. Acest circuit include și rezistențele necesare de tragere / derulare. Rețineți că modulul de releu de 5V comandat de GPIO0 este optoizolat și are o conexiune comună separată pentru intrare. Este important ca tensiunea VCCA de 5V să nu fie aplicată pinului ESP8266.

Cum se reprogramează când se utilizează GPIO0 ca ieșire

Notă: GPIO0 trebuie să fie conectat la pământ pentru a intra în modul de programare. Dacă schița îl ridică, împământarea vă poate deteriora cipul ESP8266. Modul sigur de a reprograma ESP8266 atunci când codul dvs. conduce ieșirea GPIO0 este: - a) Opriți placa b) scurta GPIO0 la gnd c) porniți placa care intră în modul program datorită scurtcircuitului GPIO0 d) eliminați scurtul de la GPIO0 astfel încât să nu scurtați ieșirea atunci când programul rulează e) reprogramați placa f) alimentați placa dacă este necesar.

Pasul 4: Utilizarea GPIO0, GPIO2 și GPIO15 ca intrări

Utilizarea GPIO0, GPIO2 și GPIO15 ca intrări
Utilizarea GPIO0, GPIO2 și GPIO15 ca intrări

Utilizarea acestor pini ca intrări este un pic dificilă. Așa cum s-a menționat mai sus la pornire și în timpul resetării, acei ace trebuie să fie trase în sus sau în jos, după cum este necesar, pentru ca modulul ESP8266 să poată porni în modul normal de funcționare. Aceasta înseamnă, în general, că nu puteți atașa doar un comutator extern la acești pini, deoarece la pornire nu puteți garanta că comutatorul nu va trage intrarea la sol și, astfel, împiedicați modulul să pornească corect.

Trucul este să nu conectați comutatorul extern direct de la GPIO0 sau GPIO2 la GND, ci să îl conectați la un alt pin GPIO care este condus la masă (ca ieșire) numai după pornirea ESP8266. Amintiți-vă, atunci când sunt folosiți ca ieșiri, pinii GPIO asigură o conexiune de rezistență foarte mică fie la VCC, fie la GND, în funcție de faptul dacă sunt acționați HIGH sau LOW.

Aici vor fi luate în considerare doar GPIO0 și GPIO2. Folosind această metodă puteți obține o (1) intrare suplimentară folosind aceste două (2) GPIO-uri.

O metodă similară poate fi utilizată pentru GPIO15 utilizând un alt pin GPIO pentru a-și conecta comutatorul la + VCC, dar acest lucru nu câștigă o intrare suplimentară, la fel de bine puteți utiliza celălalt pin GPIO direct ca intrare.

Circuitul de mai sus utilizează modulul ESP8266-01 ca exemplu. Fără a utiliza acest truc, ESP8266-01 nu are niciun pin liber de utilizat ca intrare dacă utilizați deja pinii RX / TX pentru o conexiune UART.

Deoarece metoda schiței setup () se execută numai după pornirea modulului ESP8266, este sigur să faceți ieșirea GPIO0 LOW atunci și astfel să asigurați o masă pentru S1 conectat la GPIO2. Puteți utiliza apoi digitalRead (2) în altă parte în schița dvs. pentru a citi setarea comutatorului.

Concluzie

Această scurtă notă arată cum să utilizați GPIO0, GPIO2 și GPIO15 ca ieșiri și cum să utilizați obțineți o intrare suplimentară utilizând împreună GPIO0 și GPIO2.

Recomandat: