ESP32

**ESP32** on Shanghaissa toimivan kiinalaisen Espressif Systemsin järjestelmäpiiri/mikrokontrolleri, joka sisältää ominaisuudet langattomien Wifi- ja Bluetooth-yhteyksien toteuttamiseen.
ESP32:sta on malleja, jotka tukevat myös muita langattomia radioverkkoja, kuten ZigBee, Thread, IEEE 802.15.4/LR-WPAN tai LoRa.
ESP32-laite toteutetaan tyypillisesti moduulina, jossa mikrokontrolleri liitetään piirilevylle, johon on painettu antenni ja liitetty esim. 4 megatavua Flash-muistia ja erilaisia liittimiä ja mahdollisesti näyttö.
ESP32:n pinout-diagrammi on tärkeä komponenttien oikean kytkennän ja ohjelmoinnin kannalta. Piirin eri pinnit on suunniteltu monikäyttöisiksi, ja ne tukevat mm. digitaalisia ja analogisia tuloja, I2C, SPI, UART, PWM ja muita liitäntöjä. ESP32:n GPIO-pinnit voivat toimia eri rooleissa riippuen siitä, miten ne on määritelty. Tarkempi katsaus pinout-diagrammiin auttaa suunnittelijoita optimoimaan käytettävissä olevien resurssien hyödyntämisen. 

ESP32-perheeseen kuuluu monia mikrokontrollereita, joissa suorittimena käytetään Tensilican (nykyisin osa Cadence Design Systemsia) 32-bittistä Xtensa LX6 -suoritinta kahdella suoritinytimellä ja korkeintaan 240 MHz kellotaajuudella.
ESP32:n myöhemmissä malleissa ESP32-C3, ESP32-C6 (Wi-Fi 6, Bluetooth 5, Thread/ZigBee),
ESP32-H2 (IEEE 802.15.4 LR-WPAN, Bluetooth 5)
on siirrytty käyttämään RISC-V-prosessoria.

Espressifin mikrokontrollit nousivat suosioon ESP32:n edeltäjän ESP8266:n aikoihin elokuussa 2014, kun rakentelijoille laitteita tekevä Ai-Thinker julkaisi siihen perustuvan ESP-01-moduulin. Laite mahdollisti kytkemisen langattomaan verkkoon helppoja AT-komentoja käyttäen. 
ESP8266 on hyvin samanlainen kuin ESP32 ja sisältää Tensilican prosessorin, mikrokontrollereille tyyppisiä liitinpinnejä, antennin, balunin, vastaanotto- ja lähetinsignaalivahvistimen, signaalisuodattimet ja virranhallinnan yhdellä piirilevyllä.
Tosin ESP8266 käyttää yksiytimistä suoritinta tyypillisesti 80 MHz kellotaajuudella ja tukee vanhempaa Wifi-standardia eikä Bluetoothia ja sisältää vähemmän liittimiä ja sensoreita. 

Xtensa LX6 -suoritinta käyttävissä ESP32:n malleissa on 32-bittinen prosessori 4 gigatavun muistiavaruudella ja 520 kB SRAM-muistia ja 448 kB ROM-muistia ja kaksi 8 kB muistilohkoa RTC-kellon käyttöön. Lisäksi piirilevylle voi lisätä ulkoista muistia, joka voidaan mapata prosessorin muistiavaruuteen. Suorittimen ytimet on jaettu PRO_CPU ja APP_CPU-ytimiksi, joista toinen on käyttäjän ohjelmien käyttöön tarkoitettu.  Suoritin sisältää tuen mm. SPI, I2C, UART, Ledin ja moottorin ohjaus-PWM, TWAI (Twowire Automotive Interface) -väylille, sisäisen ohjauspiirin korkeintaan kahdelle Secure Digital, MultiMediaCard ja CE-ATA-muistikortille, Ethernet-tuen MAC-tasolle asti ilman fyysistä kontrolleria, AES, RSA ja SHA-salauksien kiihdytyksen, satunnaislukugeneraattorin, muistinsuojauksen, moniajon ja prosessien hallinnan. Laitteessa on erikseen ULP (ultra-low-power) -apuprosessori, jolloin pääsuorittimet voi sammuttaa virran säästämiseksi.

### Sisäänrakennettu säilytystila
ESP32 sisältää seuraavan integroidun muistin:

## Ohjelmistotuki

ESP32:lle on olemassa virallinen Espressifin IoT Development Framework (ESP-IDF).

Arduino IDEen voi asentaa lisäosan, joka kääntää ESP32:lle.

Lisäksi on olemassa ohjelmistoja kuten MicroPython ja NodeMCU (aiemmin NodeLua), jotka piirille asentamalla voi ohjelmoida Python ja Lua-kielillä.

## Lähteet