Indholdsfortegnelse:

ESP8266 Brug af GPIO0/GPIO2/GPIO15 pins: 4 trin
ESP8266 Brug af GPIO0/GPIO2/GPIO15 pins: 4 trin

Video: ESP8266 Brug af GPIO0/GPIO2/GPIO15 pins: 4 trin

Video: ESP8266 Brug af GPIO0/GPIO2/GPIO15 pins: 4 trin
Video: Как связать несколько плат ESP8266 и передать данные другим ESP 2024, November
Anonim
ESP8266 Brug af GPIO0/GPIO2/GPIO15 pins
ESP8266 Brug af GPIO0/GPIO2/GPIO15 pins

Opdatering 1. juli 2018-Tilføjet note om genprogrammering, når GPIO0 er et output

Dette er en meget kort note om, hvordan du bruger GPIO0 / GPIO2 og GPIO15 ben på ESP8266 modulet.

Opdatering: Tjek også Sådan bruges ESP8266-01 benene

Introduktion

ESP8266 er en billig wifi -chip. Det findes i forskellige modultyper og kan programmeres på forskellige måder. Alle moduler gør GPIO0 og GPIO2 tilgængelige. De fleste moduler, bortset fra ESP8266-01, gør også GPIO15 tilgængelig. Disse GPIO'er styrer, hvordan modulet starter og kræver som sådan særlig håndtering, hvis de overhovedet skal bruges. GPIO6-GPIO11 kræver også særlig behandling som beskrevet nedenfor.

Trin 1: Flash GPIO -pins - GPIO6 til GPIO11

De fleste ESP8266-kort har en flashchip tilsluttet nogle eller alle GPIO6-GPIO11. De fleste programmer bruger flashhukommelse samt RAM, så medmindre du specifikt sørger for, at din kode kun kører fra RAM, kan du ikke bruge disse pins til andre formål.

Det nøjagtige antal ben, der bruges i området GPIO6 til GPIO11, afhænger af den type flashhardware, der bruges på dit modul. Quad IO bruger 4 linjer til data (i alt 6 ben) i op til 4 gange standardens hastighed. Dual IO bruger 2 linjer til data (4 pins i alt) Standard bruger en enkelt linje til data (3 pins i alt).

Medmindre du ved præcis, hvad dit board kræver, er du bedst til bare at ignorere GPIO6 til GPIO11 og ikke henvise til dem fra din kode.

Trin 2: GPIO0, GPIO2 og GPIO15 pins

GPIO0, GPIO2 og GPIO15 pins
GPIO0, GPIO2 og GPIO15 pins

Disse ben bestemmer, hvilken tilstand chippen starter i.

For normal programudførelse skal GPIO0 og GPIO2 trækkes op til Vcc (3.3V), og GPIO15 skal trækkes til GND, hver med en modstand i området 2K til 10K modstand. En 2K modstand giver bedre støjimmunitet. OLIMEX bruger 2K modstande SparkFun bruger 10K modstande. Jeg bruger 3K3 modstande.

Indstillingerne for disse input kontrolleres kun under chipens opstart (eller nulstilling). Derefter er stifterne tilgængelige til generel brug, men som diskuteret nedenfor er deres anvendelse begrænset af disse eksterne pull up/down modstande.

Trin 3: Brug af GPIO0, GPIO2 og GPIO15 som output

Brug af GPIO0, GPIO2 og GPIO15 som udgange
Brug af GPIO0, GPIO2 og GPIO15 som udgange

Som nævnt ovenfor vil disse ben allerede have en modstand tilsluttet enten VCC (GPIO0 og GPIO2) eller GND til GPIO15. Dette bestemmer, hvordan enhver ekstern enhed, som et relæ eller en led+modstand, skal tilsluttes. For GPIO0 og GPIO2 skal der tilsluttes et eksternt relæ mellem VCC og stiften, så det ikke forstyrrer virkningen af pull up -modstanden. Omvendt skal et eksternt relæ, der er forbundet til GPIO15, forbindes mellem GND og stiften, så det ikke forstyrrer virkningen af pull down -modstanden.

For at aktivere den eksterne enhed skal GPIO0 eller GPIO2 køres LOW (Active LOW), mens GPIO15 skal køres HIGH (Active HIGH).

Ovenstående skematisk viser, hvordan du bruger GPIO0 og GPIO2 og GPIO15 som output. Dette kredsløb indeholder også de nødvendige pullup/pulldown -modstande. Bemærk, at 5V-relæmodulet drevet af GPIO0 er opto-isoleret og har en separat fælles forbindelse til indgangen. Det er vigtigt, at 5V VCCA -spændingen ikke tilføres ESP8266 -stiften.

Sådan programmeres om, når du bruger GPIO0 som output

Bemærk: GPIO0 skal jordes for at komme i programmeringstilstand. Hvis du tegner kører den højt, kan jordforbindelse beskadige din ESP8266 -chip. Den sikre måde at omprogrammere ESP8266, når din kode driver GPIO0-udgangen, er:- a) Sluk for kortet b) kort GPIO0 til gnd c) tænd for kortet, der går i programtilstand på grund af den korte GPIO0 d) fjern den korte fra GPIO0, så du ikke kortslutter output, når programmet kører e) omprogrammerer tavlen f) om nødvendigt tændes kortet.

Trin 4: Brug af GPIO0, GPIO2 og GPIO15 som input

Brug af GPIO0, GPIO2 og GPIO15 som input
Brug af GPIO0, GPIO2 og GPIO15 som input

Det er lidt svært at bruge disse ben som input. Som nævnt ovenfor ved opstart og under nulstilling skal disse ben trækkes op eller ned efter behov for at ESP8266 -modulet skal starte i normal driftstilstand. Dette betyder, at du generelt ikke bare kan tilslutte en ekstern kontakt til disse ben, fordi du ved opstart normalt ikke kan garantere, at kontakten ikke trækker indgangen til jorden og forhindrer modulet i at starte korrekt.

Tricket er ikke at tilslutte den eksterne switch direkte fra GPIO0 eller GPIO2 til GND, men at tilslutte den i stedet til en anden GPIO -pin, der først drives til jorden (som output), når ESP8266 starter. Husk, at når de bruges som output, giver GPIO -benene en meget lav modstandsforbindelse til enten VCC eller GND, afhængigt af om de drives HIGH eller LOW.

Her vil kun GPIO0 og GPIO2 blive overvejet. Ved hjælp af denne metode kan du få en (1) additionsindgang ved hjælp af disse to (2) GPIO'er.

En lignende metode kan bruges til GPIO15 ved at bruge en anden GPIO -pin til at slutte sin switch til +VCC, men dette får ikke et ekstra input, du kan lige så godt bruge den anden GPIO -pin direkte som input.

Kredsløbet ovenfor bruger ESP8266-01-modulet som et eksempel. Uden at bruge dette trick har ESP8266-01 ikke nogen gratis ben til at bruge som input, hvis du allerede bruger stifter RX/TX til en UART-forbindelse.

Da skitsens setup () -metode først køres, efter at ESP8266 -modulet er startet, er det sikkert at lave GPIO0 -output LAVT derefter og dermed give en jord for S1, der er forbundet til GPIO2. Du kan derefter bruge digitalRead (2) andre steder i din skitse til at læse switchindstillingen.

Konklusion

Denne korte note viser, hvordan du bruger GPIO0, GPIO2 og GPIO15 som output, og hvordan du kan få en ekstra input ved hjælp af GPIO0 og GPIO2 sammen.

Anbefalede: