Prispevki ESP

ESP32-S3 pinout: katere pine lahko uporabljaš (in katerim se izogneš)

ESP32-S3 GPIO pregled — barvno kodirana mapa vseh 45 pinov po varnostnih skupinah

ESP32-S3 pinout

ESP32-S3 ima 45 GPIO pinov. Ampak ne kar kateregakoli — nekateri te bodo pokvarili projekt, eden pa ti lahko celo poškoduje čip. Ta vodič ti pove točno, katere pine lahko uporabljaš brez skrbi, katerim se izogneš in zakaj.

Ker pa ima čip 45 pinov z zelo različnimi vlogami, je prav, da pred prvim projektom razumeš, kateri so resnično prosti za tvojo uporabo — in kateri ti bodo povzročili težave še pred prvim zagonom.

Vodič velja za vse priljubljene module: ESP32-S3-WROOM-1, MINI-1 in N16R8. Razlike med njimi so v velikosti Flash in PSRAM ter številu dostopnih GPIO — ne v sami arhitekturi pinov. Vse, kar je opisano za strapping pine, ADC in periferijo, velja za vse tri.

Koliko pinov ima ESP32-S3?

Čip ima 45 programabilnih GPIO pinov, oštevilčenih od 0 do 48 — ampak ne po vrsti. GPIO 22–25 ne obstajajo.

Celoten seznam: 0–21, 26–48

Razvojna plošča pa je druga zgodba:

GPIO skupaj
ESP32-S3 čip 45
DevKitC-1 plošča ~36–38

Zakaj razlika? GPIO 26–32 so interno vezani na Flash in PSRAM. Na DevKitC-1 jih na headerjih pogosto sploh ni — kar je prav, ker če bi jih uporabil, bi se čip sesul.

Uradni PDF pinout: Espressifov ESP32-S3 Series Datasheet ali Technical Reference Manual.

ESP32-S3 strapping pini — tveganja pri zagonu čipa, GPIO 0, 3, 45, 46

Oštevilčevanje brez GPIO 22–25 ni napaka v kodi — ti naslovi v silikoniju preprosto ne obstajajo. Espressif jih je izpustil med zasnovo čipa, zato se jih v nobeni knjižnici ne da nasloviti. Isto velja za GPIO 49–GPIO 53, ki obstajajo samo na čipu v obliki SPI Flash signalov in niso dostopni navzven.

Praktična posledica: ko pišete kodo in iterira po GPIO 0–48, preskočite 22–25 — sicer dobite napako gpio: gpio_num error. Priporočamo eksplicitne sezname namesto zank po obsegu.

Pini, ki ti pokvarijo dan

To je del, ki ga večina prebere prehitro — in potem ure išče, zakaj čip ne zažene.

ESP32-S3 preveri štiri strapping pine takoj ob zagonu, preden sploh pomisli na tvojo kodo. Napačna vrednost na napačnem pinu pomeni ali napačen zagonski način ali — pri GPIO 45 — možno trajno poškodbo čipa.

GPIO Privzeto HIGH LOW Tveganje
0 Pull-up (HIGH) Normalni zagon Download Mode Srednje
45 LOW Flash/PSRAM na 1,8V Flash/PSRAM na 3,3V Visoko
46 Boot logi izklopljeni Boot logi vklopljeni Nizko
3 JTAG prek USB JTAG prek GPIO Nizko

GPIO 45 je tisti, ki zahteva posebno pozornost. Večina modulov potrebuje 3,3V Flash. Če vezje pri zagonu potegne GPIO 45 na HIGH, nastaviš napetost na 1,8V — in čip ne more brati kode iz pomnilnika. V najslabšem primeru: trajna škoda.

  • GPIO 45 — nič kar bi ga vleklo na HIGH. Pika.
  • GPIO 0 — tipke ali kondenzatorji na masi brez pull-up upora so klasična napaka pri prvem projektu.
  • GPIO 26–32 — interni Flash/PSRAM. Uporaba = “Illegal Instruction” ali neskončna boot zanka. Na DevKitC-1 jih na headerjih pogosto sploh ni.
ESP32-S3 varne GPIO skupine — katere pine varno uporabljaš in katerim se izogneš

Kateri GPIO so res varni?

Pri ESP32-S3 so vsi GPIO dvosmerni — na originalnem ESP32 so bili GPIO 34, 35, 36 in 39 samo za vhod. Tu te omejitve ni več. Celoten pregled pinov klasičnega čipa najdeš v vodiču ESP32 pinout.

Samo-vhodni GPIO Dvosmerni GPIO
ESP32 (original) GPIO 34, 35, 36, 39 Ostali
ESP32-S3 Nobenih Vseh 45

Za digitalni izhod:

Skupina GPIO
Najvarnejši 1, 2, 4–18
Varni 33–44, 47–48
Uporabi premišljeno 19, 20 (USB), 39–42 (JTAG)
Izogni se 0, 3, 45, 46 (strapping); 26–32 (Flash/PSRAM)

Za tokove: maksimum je 40 mA na pin, ampak za zanesljivo delovanje ostani pod 20 mA. Skupni limit vseh GPIO skupaj je ~1100–1200 mA. Izhodni tok je nastavljiv v kodi na 5, 10, 20 ali 40 mA.

ESP32-S3 periferija — hitri pregled ADC, I2C, SPI, UART, Touch in PWM pinov

Najboljša skupina za splošno rabo so GPIO 1–21 in GPIO 33–48 (kjer ni Flash/PSRAM). V tej skupini ne boste naleteli na boot konflikte, input-only omejitve ali strapping vedenje — kar priključite, to dobite.

Izjeme, ki si jih zapomnite: GPIO 19 in 20 sta nativni USB D−/D+, zato ju na DevKitC-1 ne reciklirajte za tipkovnico ali senzor. GPIO 3 nima pull-up upora in ob zagonu pulzira — neustrezen za stanje, ki ga berete takoj po resetu. GPIO 46 je v novejših modulih bolj prilagodljiv kot v prvih revizijah, a preverite datasheet revizije svojega modula.

Praktični pinout za pogosta vezja

Preden pogledaš datasheet, tukaj je pet najpogostejših vezij in katera pinska izbira je prava:

Projekt Signal GPIO Opomba
LED ali rele Digitalni izhod 2, 4–18 Kateri koli iz najvarnejše skupine
Tipka Digitalni vhod 4–18 Ne GPIO 0 — strapping pin
Analogni senzor + WiFi ADC 1–10 Samo ADC1 — ADC2 ob WiFi ne deluje
Zaslon ali senzor I2C SDA / SCL 8 / 9 Privzeti; GPIO Matrix omogoča premik kamorkoli
SD kartica ali SPI zaslon SCK / MISO / MOSI / CS 12 / 13 / 11 / 10 SPI2; SPI0/1 rezervirana za Flash

Za kompleksnejša vezja — ko kombiniraš I2C, SPI in UART hkrati — si vnaprej nariši tabelo zasedenih pinov. GPIO Matrix ti da fleksibilnost, ampak prekrivajoče periferije so pogosta past pri načrtovanju.

Touch pini (GPIO 1–14) so koristni za tipke brez mehanskega kontakta — kapacitivni dotik zaznaš brez enega samega upora ali kondenzatorja. Enako jih lahko uporabiš za prebujanje čipa iz deep sleep režima, kar pride prav pri baterijsko napajanih projektih.

Periferija

ADC

20 ADC kanalov v dveh skupinah — in tukaj je tista stvar, ki jo mnogi odkrijejo prepozno:

ADC GPIO Ob aktivnem WiFi
ADC1 GPIO 1–10 Dela normalno
ADC2 GPIO 11–20 Ne uporabljaš — WiFi driver povzroča konflikte

Preprosto: projekt z WiFi + analogni senzor = vedno ADC1. Več očem ESP32-S3 zmore glejte v vodiču za začetnike.

I2C

Signal Privzeti GPIO
SDA GPIO 8
SCL GPIO 9

GPIO Matrix ti omogoča, da jih v kodi preslikaš kamorkoli.

SPI

Štiri SPI vodila, od tega dve za tvojo uporabo: SPI2 in SPI3. SPI0 in SPI1 sta rezervirani za Flash/PSRAM.

Signal GPIO
SCK 12
MISO 13
MOSI 11
CS 10

UART

UART TX RX Namen
UART0 GPIO 43 GPIO 44 Programiranje / Serial Monitor
UART1, UART2 Po izbiri Po izbiri Tvoji projekti

Touch senzorji

GPIO 1–14, skupaj 14 kanalov. Uporabno za tipke brez mehanskega kontakta ali prebujanje iz deep sleep — čip zazna dotik brez kakršnegakoli pritiska.

PWM (LEDC)

Ni posebnih PWM pinov — signal gre na katerikoli GPIO prek GPIO Matrix. LEDC periferija: 8 neodvisnih kanalov, do 14-bitna ločljivost, hardware fading brez obremenjevanja CPE, deluje tudi v low-power načinih.

Pogoste napake pri delu z ESP32-S3

ADC2 ne deluje ob aktivnem WiFi

Klasičen primer: vremenska postaja pošilja podatke prek WiFi, analogni senzor vlage je na GPIO 11. Senzor vrača napačne vrednosti ali sploh ne dela. Razlog: WiFi gonilnik zasede strojno opremo ADC2. Rešitev je preprosta — analogni senzorji vedno na ADC1 (GPIO 1–10).

GPIO 0 s kondenzatorjem brez pull-up upora

Kondenzator ali tipka, vezana neposredno na GND brez zunanjega pull-up upora, ob zagonu potegne GPIO 0 na LOW. Čip vstopi v Download Mode in tvoja koda se sploh ne zažene. Vedno dodaj zunanji pull-up, če vezje zahteva kondenzator na GPIO 0.

GPIO 26–32: boot zanka in napaka „Illegal Instruction“

Ti pini so interno vezani na Flash in PSRAM. Vsak zunanji signal na katerem koli od njih prekine komunikacijo med procesorjem in pomnilnikom. Posledica je takojšnje sesutje ali neskončna boot zanka. Na DevKitC-1 teh pinov na headerjih pogosto sploh ni — kar je prav.

GPIO 45 — visoko tveganje za trajno škodo

Če karkoli ob zagonu potegne GPIO 45 na HIGH, čip nastavi napetost Flash in PSRAM na 1,8 V namesto 3,3 V. Pomnilnik ne deluje, čip se ne zažene. V najslabšem primeru: trajna poškodba. Pravilo brez izjem — na GPIO 45 ne priključuješ ničesar.

Napajalni pini

Orientacija: USB konektorji stran od tebe.

Pin Lokacija Kaj naredi
5V (EXT/VIN) Levi header J1, pin 1 Vhod 5V ali izhod 5V ob USB
3,3V (3V3) Desni header J3, pin 1 Izhod LDO regulatorja
GND J1 pin 2, J3 pin 2, J3 pin 22 Tri ozemljitvene točke

LDO regulator zmore 600 mA do 1 A skupaj. Ker ESP32-S3 med WiFi/BT prenosom sam porabi do 500 mA, za zunanje komponente ostane med 100 in 500 mA.

Prek 5V VIN pina lahko ploščo napajaš brez USB. Samo ne priključuj hkrati zunanjega 5V in USB kabla brez preverjanja zaščitne diode na plošči.

LDO regulator na DevKitC-1 zmore skupaj 600 mA do 1 A. ESP32-S3 sam porabi do 500 mA med aktivnim WiFi/BT prenosom, kar pomeni, da za zunanje naprave ostane razmeroma malo rezerve. Če napajate servo motor, zaslon ali senzorje z večjo porabo, napajajte ESP32-S3 prek 5V pina in zunanje naprave neposredno iz napajanja — ne skozi 3,3V pin plošče.

Pin EN (Enable) je reset pin: ko ga potegnete nizko, se procesor ustavi. Koristno za watchdog vezja in deep sleep aplikacije, kjer zunanji RTC nadzoruje, kdaj se S3 prebudi. Interno ima pull-up, zato brez zunanjega vezja deluje normalno.

Posebni pini

Nativni USB — GPIO 19 in 20

GPIO 19 = USB D−, GPIO 20 = USB D+. Brez zunanjega pretvornika podpira:

  • CDC — USB Serial za programiranje in Serial Monitor
  • HID — tipkovnica, miška, gamepad
  • MSC — USB pomnilnik, drag & drop na Flash
  • DFU — posodobitev firmware prek USB

JTAG

Signal GPIO
MTCK 39
MTDO 40
MTDI 41
MTMS 42

Za večino projektov zadostuje interni USB JTAG prek GPIO 19/20 — brez ESP-Prog ali zunanjega vmesnika.

Boot gumb — GPIO 0

Ročni vstop v Flash Mode:

  1. Drži BOOT gumb
  2. Pritisni in spusti RESET (EN)
  3. Spusti BOOT

Čip čaka na nov firmware.

Primerjava ESP32, ESP32-S2 in ESP32-S3 — razlike v GPIO, USB, Bluetooth in AI

Nativni USB je ena od najpomembnejših novosti ESP32-S3 v primerjavi z originalnim ESP32. Brez zunanjega CH340 ali CP2102 pretvornika se S3 pojavi na računalniku kot serijska naprava, HID naprava ali pomnilniški disk — odvisno od tega, kako konfigurirate USB stack v ESP-IDF ali Arduino. To zmanjša stroške PCB-ja in poenostavi programiranje v produkciji.

JTAG debug pini (GPIO 39–42) so privzeto aktivni in vidni v OpenOCD takoj ob priključitvi. Če te pine potrebujete za GPIO v projektu, JTAG izklopite v menuconfig (CONFIG_ESP_SYSTEM_JTAG_ENABLE=n) ali prek efuse. Brez tega koraka boste opazili nepričakovano vedenje na teh štirih pinih.

Kateri modul izbrati: WROOM-1, MINI-1 ali N16R8?

ESP32-S3 čip pride v več modulih — vsak izpostavlja drugačno število pinov in ima drug pomnilnik.

Modul Flash PSRAM Rezervirani GPIO Opomba
WROOM-1 N4 4 MB 26–32 Standardna izbira za večino projektov
WROOM-1 N16R8 16 MB 8 MB Octal 26–32 in 33–37 Octal PSRAM zasede dodatnih 5 pinov
MINI-1 4 MB 26–32 Manjši format; manj izpostavljenih pinov na headerjih

Ključna razlika pri N16R8: ker 8 MB PSRAM uporablja Octal SPI vmesnik, so zasedeni tudi GPIO 33–37. Teh pet pinov na N16R8 modulu ne smeš uporabljati za lastna vezja — drugače bo projekt deloval na standardnem modulu, na N16R8 pa se bo sesul.

Za večino začetnih in srednjih projektov je WROOM-1 N4 prava izbira — dovolj Flash, jasno definirani rezervirani pini, nič presenečenj. N16R8 pride v poštev, ko projekt zahteva obdelavo slik, zvoka ali lokalni model strojnega učenja, kjer 8 MB PSRAM naredi resnično razliko.

ESP32, S2 ali S3 — katerega vzeti?

ESP32 ESP32-S2 ESP32-S3
GPIO skupaj ~34 43 45
Samo-vhodni GPIO 4 0 0
Nativni USB Ne Da Da
ADC kanali 18 20 20
Touch kanali 10 14 14
Bluetooth Da Ne BLE 5
Jedra 2 1 2
AI pospeševanje Ne Ne Da

S3 je nadgradnja S2 z Bluetooth 5 LE, dvojedrnim procesorjem in AI vektorskimi inštrukcijami — za podrobno primerjavo ESP32-S3 vs ESP32 glejte ločen članek — pri skoraj enakem pinoutu. Če delaš nov brezžični projekt, je S3 logična izbira. Starih S2 projektov ni smiselno migrirati samo zaradi tega.

Proti originalnemu ESP32 je razlika večja: konec samo-vhodnih pinov, nativni USB, 11 GPIO pinov več. Za vsak nov projekt danes vzameš S3 — razen če imaš res specifičen razlog za starejši čip.

Kateri pini za tvoj naslednji projekt?

ESP32-S3 je izjemno zmogljiva platforma, a le če veste, kateri pini so resnično varni za vaš projekt. Večina začetniških težav izhaja iz enega ali dveh napačnih pinov — strapping pin, ki moti boot, ali ADC2 ob aktivnem WiFi. Z razumevanjem pinout-a se večini teh napak enostavno izognete že pri načrtovanju vezja.

Kratek povzetek za hitro referenco:

  • Splošni digitalni izhod — GPIO 1, 2, 4–18. Brez skrbi.
  • Analogno branje z aktivnim WiFi — samo ADC1, torej GPIO 1–10.
  • I2C — GPIO 8 (SDA) in GPIO 9 (SCL), ali kateri koli drugi par prek GPIO Matrix.
  • SPI — SPI2 (GPIO 11–13) ali SPI3; SPI0 in SPI1 sta rezervirana za Flash.
  • Ne priključuj ničesar na GPIO 0, 3, 45, 46 (strapping) in GPIO 26–32 (Flash/PSRAM). Na modulu N16R8 velja enako za GPIO 33–37.

ESP32-S3 je eden izmed bolj prilagodljivih mikrokrmilnikov, ki so danes dostopni. GPIO Matrix ti da pravo svobodo pri načrtovanju — dokler se izogneš rezerviranim pinom. Za nove projekte je S3 danes naravna izbira. Oglejte si ESP32-S3 module in razvojne ploščice v naši ponudbi.