ESP32 kontaktas yra viena didžiausių jo stiprybių ir vienas iš dažniausiai pasitaikančių painiavos šaltinių. Esant dideliam multipleksavimui, griežtoms įkrovos režimo priklausomybėms ir jautriam analoginiam elgesiui, teisingas kaiščių pasirinkimas yra svarbus stabiliam veikimui. Šiame straipsnyje aiškiai suskirstytos visos pagrindinės kaiščių grupės, kad galėtumėte išvengti konfliktų, išvengti įkrovos gedimų ir sukurti patikimą ESP32 pagrįstą aparatinę įrangą.

ESP32 kontaktų išdėstymo supratimas
ESP32 yra galingas ir lankstus mikrovaldiklis, plačiai naudojamas daiktų internete, automatikoje ir išmaniuosiuose įrenginiuose. Jo pažangios galimybės kyla iš labai multipleksuotos kontaktų sistemos, kurioje daugelis funkcijų turi tuos pačius fizinius kaiščius. Tai apima skaitmeninius įvesties / išvesties, ADC kanalus, talpinius jutiklinius jutiklius, ryšio magistrales, RTC domeno kaiščius ir vidines jungtis SPI flash ir įkrovos konfigūracijai. Kadangi daugelis funkcijų turi bendrus kaiščius, netinkamas laidų sujungimas gali sukelti nepavykusį įkrovimą, triukšmingus ADC rodmenis arba išjungti periferinius įrenginius.
ESP32 DevKit kaiščių išdėstymas

ESP32 kūrimo plokštės paprastai būna 30 ir 38 kontaktų versijos, abi atskleidžia tas pačias pagrindines funkcijas, tačiau su nedideliais galimų GPIO skirtumais.
Smeigtukų grupės ESP32 kūrėjų plokštėse
| Grupė | Aprašymas |
|---|---|
| Maitinimo kaiščiai | VIN (5 V), 3,3 V išvestis, GND |
| Valdymo kaiščiai | EN (atstatymas), IO0 (įkrovos režimas) |
| GPIO kaiščiai | Skaitmeninis įėjimas / išvestis su multipleksavimu |
| Analoginiai kaiščiai | ADC1 ir ADC2 kanalai |
| Ryšio smeigtukai | SPI, I2C, UART, I2S |
| Tik įvesties kaiščiai | GPIO34–GPIO39 |
| "Flash" rezervuoti kaiščiai | GPIO6–GPIO11 |
Bendras antraštės išdėstymas
Kairė antraštė
• EN, GPIO36–39, GPIO34–35
• GPIO32–33, 25–27
• VIN, GND, 3.3V
Dešinioji antraštė
• GPIO0–23
• Batų surišimo kaiščiai (0, 2, 5, 12, 15)
Suprasdami fizinį išdėstymą, lengviau išvengti klaidų ir efektyviai planuoti laidus.
ESP32 GPIO apžvalga

ESP32 GPIO yra lankstūs dėl vidinės įvesties / išvesties matricos, kuri leidžia periferinius įrenginius, tokius kaip UART, SPI, I2C ir PWM, susieti beveik bet kur. GPIO palaiko skaitmeninę įvestį / išvestį su įmontuotais traukiamaisiais / žemyn rezistoriais, krašto suaktyvintais pertraukimais ir patikimu perjungimu dideliu greičiu. Įprasta nuolatinė pavaros srovė yra 12–16 mA (pikai iki ~20–40 mA), todėl varikliams ar relėms reikalingos išorinės tvarkyklės.
Tik įvesties kaiščiai
Šie kaiščiai negali valdyti išvesties ir idealiai tinka jutikliams ir analoginiams įėjimams:
| Smeigtukas | Tipas | Rekomenduojamas naudojimas |
|---|---|---|
| GPIO34 | Tik įvestis | ADC1 / jutikliai |
| GPIO35 | Tik įvestis | ADC1 |
| GPIO36 (VP) | Tik įvestis | ADC1 / Hall jutiklis |
| GPIO39 (VN) | Tik įvestis | ADC1 |
Saugūs ESP32 kaiščiai, kuriuos reikia naudoti, ir kaiščiai, kurių reikia vengti

Ne visi ESP32 kaiščiai elgiasi vienodai. Kai kurie yra saugūs, o kiti turi įtakos įkrovos režimui arba yra susieti su vidine "flash" atmintimi.
Saugūs smeigtukai (rekomenduojami visiems vartotojams)
| GPIO | Pastabos |
|---|---|
| 4, 13–19, 21–27, 32, 33 | Nėra įkrovos smūgio, idealiai tinka daugumai periferinių įrenginių |
Atsargumo kaiščiai (įtakos įkrovos režimui)
| GPIO | Įkrovos funkcija | Venkite įkrovos metu |
|---|---|---|
| GPIO0 | "Flash" / įkrovos režimas | Išlaikyti HIGH (įvestis) įprasto įkrovimo metu |
| GPIO2 | Bagažinės įtampa | Turi būti AUKŠTAS |
| GPIO5 | Pasirenkamas įkrovos režimas | Venkite traukti žemai |
| GPIO12 | Blykstės įtampos režimas | Turi likti žemas |
| GPIO15 | SPI režimas | Turi likti žemas |
Šiuos kaiščius saugu naudoti įprastai veikiant, tačiau išoriniai komponentai neturi jų traukti į netinkamus loginius lygius iš naujo. Jų išsamūs batų vaidmenys paaiškinti 9 skyriuje.
Apriboti smeigtukai (nenaudokite)
| GPIO | Priežastis |
|---|---|
| GPIO6–11 | Prijungta prie SPI "flash" atminties |
Naudojant juos ESP32 gali užšalti arba sugesti.
ESP32 ADC kaiščiai

ESP32 integruoja du SAR ADC įrenginius, pasižyminčius skirtingu veikimo elgesiu:
• ADC1 – visada pasiekiamas ir rekomenduojamas visiems jutiklių įėjimams
• ADC2 – bendrinamas su "Wi-Fi" posistemiu ir tampa nepasiekiamas, kai "Wi-Fi" yra aktyvus
Tai yra vienas iš pagrindinių ESP32 apribojimų, todėl ADC1 yra patikimas pasirinkimas matavimams belaidėse programose.
| ADC įrenginys | Kanalai | GPIO | Pastabos |
|---|---|---|---|
| ADC1 | CH0–CH7 | GPIO32–39 | Geriausias pasirinkimas jutikliams |
| ADC2 | CH0–CH9 | 0, 2, 4, 12–15, 25–27 | Nenaudojamas naudojant "Wi-Fi" |
Ttage diapazonas ir tikslumas
ADC palaiko numatytąjį 0–1.1 V įvesties diapazoną, kurį galima išplėsti iki maždaug 3.3 V su slopinimu. Abu ADC įrenginiai yra netiesiniai ir jiems naudingas kalibravimas. Analoginiam veikimui įtakos gali turėti vidinis RF aktyvumas, todėl jutiklių linijų nukreipimas nuo antenos ir paprastų RC filtrų pridėjimas gali labai pagerinti stabilumą. Projektuose, kuriuose veikia "Wi-Fi", visada uždėkite analoginius jutiklius ant ADC1, kad užtikrintumėte nepertraukiamą ir be triukšmo veikimą.
ESP32 DAC, PWM ir jutikliniai kaiščiai
ESP32 turi integruotus analoginio stiliaus išėjimus ir jutiklinius jutiklius, kurie supaprastina bangos formos generavimą, pritemdymą, variklio valdymą ir vartotojo sąsajas.
DAC apžvalga

Du 8 bitų DAC kanalai išveda tikrąją analoginę įtampą:
| DAC | GPIO |
|---|---|
| DAB1 | GPIO25 |
| DAB2 | GPIO26 |
Įprastas naudojimas yra paprastas garsas, analoginės bangos formos, LED išblukimas ir poslinkio įtampa. Išėjimo diapazonas paprastai yra 0–3,3 V.
PWM (LEDC)

LEDC modulis užtikrina didelės raiškos, lanksčią PWM:
• 16 kanalų
• Iki 40 MHz laikmačio bazė
• Iki 20 bitų raiška
• Visiškai keičiami GPIO
Naudojamas LED pritemdymui, variklio valdymui, servo signalams, garso tonams ir bendrai moduliacijai. Bet kuris GPIO gali talpinti PWM išvestį per GPIO matricą.
Jutiklinio jutiklio kaiščiai

ESP32 10 talpinių jutiklinių kilimėlių aptinka pirštų artumą ir yra naudingi jutikliniams mygtukams, slankikliams ir pažadinimo paleidikliams.
| Jutiklinis kilimėlis | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
Šie jutikliai apima triukšmo filtravimą ir puikiai tinka mažos galios pažadinimo įvykiams.
ESP32 ryšio kaiščiai
ESP32 turi gausų ryšio periferinių įrenginių rinkinį, kurių kiekvienas gali būti nukreiptas į kelis kontaktus per lanksčią GPIO matricą. Tai leidžia beveik bet kur priskirti tokias sąsajas kaip I2C, SPI ir UART, todėl galima lengvai pritaikyti plokščių išdėstymus ir periferinius derinius.
I2C (numatytieji ir pasirinktiniai kaiščiai)

ESP32 turi du I2C valdiklius, su visišku lankstumu renkantis kaiščius. Nors dauguma kūrimo plokščių naudoja numatytuosius kaiščius, tiek SDA, tiek SCL gali būti priskirti beveik bet kuriam GPIO.
| Signalas | Numatytasis GPIO | Pastabos |
|---|---|---|
| SDA | GPIO21 | Visiškai perkraunamas |
| SCL | GPIO22 | Visiškai perkraunamas |
Bet kokie du skaitmeniniai GPIO gali veikti kaip SDA ir SCL. Palaiko tiek standartinį režimą (100 kHz), tiek greitąjį (400 kHz) ir greitąjį režimą plius (1 MHz, priklausomai nuo plokštės). Palaiko kai kurių plokščių vidinius prisitraukimus, tačiau stabiliam ryšiui rekomenduojami išoriniai 4,7 kΩ rezistoriai. Dėl šio lankstumo ESP32 idealiai tinka sistemoms, kurioms reikalingi keli jutikliai arba netradicinis kaiščių nukreipimas.
ESP32 apima kelias SPI magistrales, su HSPI ir VSPI vartotojų įrenginiams. Abu palaiko pertvarkymą per GPIO matricą, tačiau dauguma plokščių ir bibliotekų naudoja šią numatytąją VSPI konfigūraciją, kuri leidžia išvengti konfliktų su vidiniais "flash" ryšiais:
Numatytasis VSPI susiejimas
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
VSPI paprastai teikiama pirmenybė ekranams, SD kortelėms ir didelės spartos periferiniams įrenginiams. Nors smeigtukai yra keičiami, naudojant numatytuosius nustatymus užtikrinamas maksimalus suderinamumas ir sumažinamos laiko problemos, nekartojant ankstesniuose skyriuose jau aptartų apribojimų.
UART (serijinis)

ESP32 apima tris UART valdiklius su lanksčiu maršrutizavimu, leidžiančiu bet kokius UART kaiščius perkelti į beveik bet kokį GPIO.
| UART | TX kaištis | RX kaištis | Pagrindinis tikslas |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | Mirksi, įkrovos pranešimai, serijinis registravimas |
| UART1 | GPIO10 | GPIO9 | Galima naudoti naudotojams |
| UART2 | GPIO17 | GPIO16 | Galima naudoti naudotojams |
ESP32 gilaus miego ir RTC kaiščiai
ESP32 apima itin mažos galios (ULP) posistemį ir specialų realaus laiko laikrodžio (RTC) domeną, kurie išlieka maitinami net išjungus pagrindinį procesorių ir periferinius įrenginius. Ši architektūra leidžia sunaudoti itin mažai energijos, dažnai mikroamperų diapazone, todėl ESP32 tinka ilgalaikiam naudojimui su baterijomis.
Gilus miegas leidžia lustui išjungti pagrindinius branduolius, daugumą vidinių laikrodžių ir "Wi-Fi" / "Bluetooth" radijo imtuvus, tuo pačiu stebint pasirinktus kaiščius ir jutiklius per RTC periferinius įrenginius.

ESP32 gali pabusti iš gilaus miego per kelis nepriklausomus trigerius. Kiekvienas pažadinimo šaltinis veikia RTC domene, kuris sukurtas taip, kad išliktų aktyvus su minimaliomis energijos sąnaudomis.
| Pažadinimo tipas | GPIO / Pastabos |
|---|---|
| Išorinis RTC GPIO | GPIO32, GPIO33, GPIO25, GPIO26, GPIO27 – palaiko krašto arba lygio pažadinimą |
| Talpiniai jutikliniai kilimėliai | T0–T9 – aptinka pirštų artumą arba prisilietimą gilaus miego metu |
| Laikmatis pažadinimas | RTC laikmatis gali pažadinti įrenginį po užprogramuoto intervalo |
| ULP koprocesorius | (Pasirinktinai) Pasirinktinis mažos galios kodas gali būti paleistas, kad patikrintų jutiklius prieš pažadinant pagrindinį procesorių |
Šie kaiščiai priklauso RTC domenui ir išlieka aktyvūs net tada, kai CPU ir įprasti GPIO yra išjungti. Jie palaiko pabudimą kylant / krentant kraštams arba paprastam lygio aptikimui. Dažniausiai naudojamas pažadinimui, magnetiniams jungikliams ir mažos galios paleidikliams.
ESP32 įkrovos, dirželio ir EN kaiščio funkcijos

ESP32 naudoja kelis surišimo kaiščius, kurie nustato pagrindines sistemos konfigūracijas atstatymo arba įjungimo metu. Šie kaiščiai imami tik įkrovos metu ir grįžta į įprastą GPIO funkciją. Norint nuosekliai paleisti, naudinga užtikrinti, kad jie nebūtų perkelti į netinkamus lygius nustatymo metu.
Surišimo kaiščių lentelė
| Smeigtukas | Įkrovos vaidmuo | Reikalinga būsena įkrovos metu |
|---|---|---|
| GPIO0 | Parenka įkrovos įkroviklį / "flash" režimą | LOW = įjungti blykstės režimą; HIGH = normalus paleidimas |
| GPIO2 | Apibrėžia vidinį įkrovos įtampos lygį | Turi išlikti aukštas |
| GPIO5 | SPI įkrovos konfigūracija | Turi išlikti aukštas |
| GPIO12 | Parenka blykstės įtampą (3,3 V / 1,8 V) | 3,3 V blykstė turi išlikti LOW |
| GPIO15 | Nustato SPI ryšio režimą įkrovos metu | Turi išlikti žemas |
Šiame skyriuje pateikiama autoritetinga nuoroda į diržų elgesį. Ankstesniuose skyriuose apibendrinamas tik praktinis poveikis; naudokite šią lentelę priskirdami kaiščius pasirinktinėms PCB arba integruodami mygtukus ir jutiklius.
EN kaištis (įjungti / nustatyti iš naujo)
EN (Enable) kaištis veikia kaip pagrindinis ESP32 atstatymo įvestis.
LT kaiščio elgsena:
• Traukiant EN LOW, lustas iš karto nustatomas iš naujo.
• Atleidus jį atgal į HIGH, įjungiamos vidinės grandinės ir iš naujo paleidžiama įkrovos seka.
• Kūrimo plokštėse (pvz., ESP32-DevKitC, NodeMCU-ESP32) EN yra susietas su USB nuosekliąja sąsaja, kad mirksėjimo metu būtų galima automatiškai nustatyti iš naujo.
ESP32 maitinimo kaiščiai

ESP32 yra jautrus energijos kokybei, nes jo "Wi-Fi" ir "Bluetooth" radijo imtuvai ima trumpus, didelės amplitudės srovės impulsus. Stabilus energijos tiekimas užtikrina patikimą paleidimą, sumažintą "brownout" atstatymą ir pastovų belaidžio ryšio veikimą.
Maitinimo smeigtuko suvestinė
| Smeigtukas | Įtampa | Naudojimas |
|---|---|---|
| VIN | 5 V įvestis | Maitina borto reguliatorių (paprastai AMS1117 arba ME6211), kad generuotų 3,3 V |
| 3V3 | 3,3 V išėjimas | Reguliuojama išvestis iš borto LDO; Naudojamas išorinei silpnos srovės logikai ir jutikliams maitinti |
| GND | — | Visų posistemių elektrinis atskaitos ir grįžtamasis kelias |
Rekomenduojami ESP32 kaiščiai ir laidai Pavyzdžiai
Norint stabiliai veikti, švariai nukreipti signalą ir išvengti konfliktų su įkrovos diržais ar vidinėmis blykstės jungtimis, reikia pasirinkti tinkamus ESP32 kaiščius. Šios rekomendacijos pabrėžia patikimiausius, be konfliktų kaiščius įprastoms funkcijoms.
Smeigtuko pasirinkimas
| Funkcija | Geriausi smeigtukai | Pastabos |
|---|---|---|
| I2C | 21 (SDA), 22 (SCL) | Numatytoji aparatūros patikrinta pora; veikia daugumoje lentų. |
| SPI | 18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS) | Šie kaiščiai švariai susiejami su VSPI ir išvengiama prie blykstės prijungtų kaiščių. |
| UART | 16 (RX), 17 (TX) | Specialūs UART2 kaiščiai, saugūs įkrovimui ir derinimui. |
| PWM (LEDC) | 4, 16–19, 21–27, 32–33 | Didelio lankstumo diapazonas; PWM gali būti nukreiptas į beveik bet kokį GPIO. |
| ADC | 32–39 (ADC1) | ADC1 kanalai išlieka naudojami net tada, kai "Wi-Fi" yra aktyvus. |
Išvada
ESP32 kontaktų išdėstymo įvaldymas pašalina spėliones ir apsaugo nuo daugelio problemų, atsirandančių tikrose versijose, nuo triukšmingų ADC rodmenų iki nesibaigiančių įkrovos kilpų. Suprasdami saugius kaiščius, diržų elgseną, maitinimo vientisumą ir gilaus miego maršruto parinkimą, galite sukurti stabilias, nuspėjamas ir belaidžiu ryšiu paruoštas grandines. Naudokite aukščiau pateiktus smeigtukų žemėlapius ir gaires kaip pagrindą be rūpesčių ESP32 projektams.
Dažnai užduodami klausimai [DUK]
Kaip sukonfigūruoti "PlatformIO" "Freenove ESP32-S3 Breakout Board"?
Naudokite standartinius ESP32-S3 dev modulio nustatymus. Savo platformio.ini pridėkite:
[env:ESP32S3]
platforma = espressif32
lenta = esp32-s3-devkitc-1
karkasas = arduino
Tai atitinka "Freenove" kontaktą, leidžiantį normaliai kompiliuoti ir įkelti per USB.
Kiek periferinių įrenginių gali veikti ESP32 vienu metu?
Dėl GPIO matricos ESP32 vienu metu gali paleisti kelias I²C, SPI, UART, PWM ir ADC funkcijas, jei išvengsite apribotų kaiščių ir neviršysite procesoriaus bei laiko apribojimų. Pagrindinės kliūtys yra ADC2 "Wi-Fi" ir maitinimo kokybė, o ne kaiščių skaičius.
Kodėl mano ESP32 paleidžiamas iš naujo jungiant jutiklius ar modulius?
Netikėti atstatymai dažniausiai atsiranda dėl įtampos kritimo, kurį sukelia "Wi-Fi" pliūpsniai, varikliai ar blogai reguliuojamas tiekimas. Naudojant 1 A ar didesnį 5 V šaltinį, pridedant 10–100 μF tūrinius kondensatorius ir izoliuojant triukšmingas apkrovas, išvengiama nutrūkimo.
Ar galiu naudoti ESP32 3.3 V kaištį išoriniams moduliams maitinti?
Taip, bet tik silpnos srovės įrenginiams (paprastai iki 300–500 mA, priklausomai nuo borto LDO). Didelės traukos periferiniai įrenginiai, tokie kaip varikliai, servos ir didelės LED juostos, turi naudoti atskirą maitinimo šaltinį, kad būtų išvengta atstatymo ir perkaitimo.
Kaip išsirinkti geriausius ESP32 kaiščius, kai naudoju kelis periferinius įrenginius?
Pirmenybę teikite nesurištiems kaiščiams, venkite GPIO6–11, įdėkite analoginius jutiklius į ADC1 ir, jei įmanoma, naudokite numatytuosius VSPI/I²C/UART kaiščius. Tai sumažina konfliktus ir užtikrina, kad visi išoriniai įrenginiai galėtų veikti kartu be pertvarkymo problemų.