This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:iot-open:hardware2:esp32 [2023/11/14 16:44] – jpaduch | en:iot-open:hardware2:esp32 [2024/05/27 14:16] (current) – pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ======ESP32 General Information====== | ||
| + | {{: | ||
| + | ESP32 is a low-cost, low-power system on a chip (SoC) series microcontroller with WiFi & dual-mode Bluetooth capabilities ((https:// | ||
| + | For now, the ESP32 family includes the following chips in mass production: | ||
| + | * ESP32-D0WD-V3 (figure {{ref> | ||
| + | * ESP32-U4WDH (figure {{ref> | ||
| + | * ESP32-PICO-D4 - SiP (system in package) (figure {{ref> | ||
| + | * ESP32-PICO-V3 - SiP (system in package ) -- new core (ECO V3) | ||
| + | * ESP32-PICO-V3-02 - SiP (figure {{ref> | ||
| + | and older chips, not for new designs: | ||
| + | * ESP32-D0WDQ6 | ||
| + | * ESP32-D0WDQ6-V3, | ||
| + | * ESP32-D0WD | ||
| + | * ESP32-S0WD (figure {{ref> | ||
| + | |||
| + | <figure esp32_d0wdv3> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_u4wdh> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_pico_d4> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_picov302> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_d0wdq6> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_d0wd> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_d2wd> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_s0wd> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | == ESP32 Architecture Overview == | ||
| + | The functional block diagram of the ESP32 chip is shown in figure {{ref> | ||
| + | |||
| + | **Processors** | ||
| + | * **Main processor: | ||
| + | * **Cores**: 2 or 1 (depending on variation). (All chips in the ESP32 series are dual-core except for ESP32-S0WD, which is single-core.) | ||
| + | * Internal 8 Mhz oscillator with calibration. | ||
| + | * External 2 MHz to 60 MHz crystal oscillator (40 MHz only for WiFi/BT functionality). | ||
| + | * External 32 kHz crystal oscillator for RTC with calibration. | ||
| + | * **Clock frequency: | ||
| + | * **Performance: | ||
| + | * **Ultra low power co-processor: | ||
| + | **Wireless connectivity** | ||
| + | * **WiFi:** 802.11 b/g/n/e/i (802.11n @ 2.4 GHz up to 150 Mbit/s) with simultaneous Infrastructure BSS Station mode/ | ||
| + | * **Bluetooth: | ||
| + | **Memory: Internal memory** | ||
| + | * **ROM:** 448 kB (booting and core functions). | ||
| + | * **SRAM:** 520 kB (for data and instruction). | ||
| + | * **RTC fast SRAM:** 8 kB (for data storage and main CPU during RTC Boot from the deep-sleep mode). | ||
| + | * **RTC slow SRAM:** 8 kB (for co-processor accessing during deep-sleep mode). | ||
| + | * **eFuse:** 1 Kibit (of which 256 bits are used for the system (MAC address and chip configuration), | ||
| + | * **Embedded flash** (flash connected internally via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 and SD_DATA_1 on ESP32-D2WD and ESP32-PICO-D4): | ||
| + | | ||
| + | | ||
| + | **External Flash & SRAM** | ||
| + | * ESP32 supports up to four 16 MB external QSPI flashes and SRAMs with hardware encryption based on AES to protect developers' | ||
| + | * Up to 16 MB of external flash are memory-mapped onto the CPU code space, supporting 8-bit, 16-bit and 32-bit access. Code execution is supported. | ||
| + | * Up to 8 MB of external flash/SRAM memory is mapped onto the CPU data space, supporting 8-bit, 16-bit and 32-bit access. Data-read is supported on the flash and SRAM. Data write is supported on the SRAM. | ||
| + | ESP32 chips with embedded flash do not support the address mapping between external flash and peripherals. | ||
| + | |||
| + | **Peripheral Input/ | ||
| + | * Rich peripheral interface with DMA includes capacitive touch (10× touch sensors). | ||
| + | * 12-bit ADCs (analog-to-digital converter) up to 18 channels. | ||
| + | * 2 × 8 bit DACs (digital-to-analog converter). | ||
| + | * 2 × I²C (Inter-Integrated Circuit. | ||
| + | * 3x UART (universal asynchronous receiver/ | ||
| + | * CAN 2.0 (Controller Area Network). | ||
| + | * 4 × SPI (Serial Peripheral Interface). | ||
| + | * 2 × I²S (Integrated Inter-IC Sound). | ||
| + | * RMII (Reduced Media-Independent Interface). | ||
| + | * Motor PWM (pulse width modulation). | ||
| + | * LED PWM up to 16 channels. | ||
| + | * Hall sensor. | ||
| + | * Internal temperature sensor. | ||
| + | **Security** | ||
| + | * Secure boot. | ||
| + | * Flash encryption. | ||
| + | * IEEE 802.11 standard security features are all supported, including WFA, WPA/WPA2 and WAPI. | ||
| + | * 1024-bit OTP, up to 768-bit for customers. | ||
| + | * Cryptographic hardware acceleration: | ||
| + | * | ||
| + | * SHA-2, | ||
| + | * | ||
| + | * elliptic curve cryptography (ECC), | ||
| + | * random number generator (RNG). | ||
| + | |||
| + | <figure esp32_functions> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ==ESP32 Modules== | ||
| + | |||
| + | The company also produces ready-made modules using the processors above ((https:// | ||
| + | |||
| + | <table esp32_modules> | ||
| + | < | ||
| + | ^**Module**^**Chip**^**Number of cores**^**Flash, | ||
| + | |ESP32-WROOM-32(figure {{ref> | ||
| + | |ESP32-WROOM-32D|ESP32-D0WD|2|4, | ||
| + | |ESP32-WROOM-32U(figure {{ref> | ||
| + | |ESP32-SOLO-1|ESP32-S0WD|1|4|–|PCB|18 × 25.5 × 3.1| | ||
| + | |ESP32-WROVER (PCB)(figure {{ref> | ||
| + | |ESP32-WROVER (IPEX)|ESP32-D0WDQ6|2|4|8|U.FL|18 × 31.4 × 3.3| | ||
| + | |ESP32-WROVER-B|ESP32-D0WD|2|4, | ||
| + | |ESP32-WROVER-IB(figure {{ref> | ||
| + | - U.FL - U.FL / IPEX antenna connector \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | </ | ||
| + | |||
| + | <figure esp32_wroom> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | | ||
| + | <figure esp32_wroomu> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_wroover> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_wrooveri> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==ESP32 Pico Architecture Overview== | ||
| + | |||
| + | **ESP32-PICO-D4**\\ | ||
| + | The ESP32-PICO-D4((https:// | ||
| + | * Integrated crystal oscillator, filter capacitors and RF matching circuit, \\ | ||
| + | * Internal built-in memory 4 MB SPI flash, \\ | ||
| + | * chip size 7.0 mm × 7.0 mm × 0.94 mm. \\ | ||
| + | |||
| + | **ESP32-PICO-V3**\\ | ||
| + | The ESP32-PICO-V3((https:// | ||
| + | * New silicone wafer ECO V3, \\ | ||
| + | * 16 kB SRAM in RTC, \\ | ||
| + | * chip size 7.0 mm × 7.0 mm × 1,11 mm. \\ | ||
| + | |||
| + | **ESP32-PICO-V3-02**\\ | ||
| + | The ESP32-PICO-V3-02((https:// | ||
| + | * Internal built-in SPI flash memory 8 MB, \\ | ||
| + | * Internal built-in SPI PSRAM memory 2 MB, \\ | ||
| + | * additional GPIO pin - GPIO20, \\ | ||
| + | * For chip security purposes, flash pins DI, DO, /HOLD, /WP and PSRAM pins SI/SIO0, SO/SIO1, SIO2, and SIO3 are not led out. | ||
| + | |||
| + | **ESP32-PICO Modules**\\ | ||
| + | The company also produces ready-made modules using the ESP32-PICO SOCs ((https:// | ||
| + | | ||
| + | |||
| + | <table esp32pico_modules> | ||
| + | < | ||
| + | ^**Module**^**Chip**^**Number of cores**^**Flash, | ||
| + | |ESP32-PICO-MINI-02 (figure {{ref> | ||
| + | |ESP32-PICO-MINI-02U (figure {{ref> | ||
| + | |ESP32-PICO-V3-ZERO (figure {{ref> | ||
| + | </ | ||
| + | |||
| + | <figure esp32_pico_mini_02> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_pico_mini_02U> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_pico_v3_zero> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ==ESP32 Development Kits== | ||
| + | To accelerate the design of circuits, developers can use specially prepared sets with ESP32, which are ready to use. The original Espressif best-known small development boards are: | ||
| + | * ESP32-DevkitC (figure {{ref> | ||
| + | * ESP32-PICO-KIT-V4 (figure {{ref> | ||
| + | * ESP32-PICO-KIT-1 with ESP32-PICO-V3 (figure {{ref> | ||
| + | * ESP32-PICO-DevKitM-2 with ESP32-PICO-Mini-02 (figure {{ref> | ||
| + | |||
| + | <figure esp32_devkitc> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_picokit> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_picokit1> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure esp32_picodevkitm2> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | **General Purpose Input-Output (GPIO) Connector**\\ | ||
| + | Each ESP32 is equipped with a standard 38/40-pis male connector containing universal GPIO ports, VCC 3.3/5 V, GND, CLK, I2C/SPI bus pins, which developers can use to connect their external sensors, switches and other controlled devices to the ESP32 board and then program their behaviour within the code loaded to the board. | ||
| + | |||
| + | * ESP32-DevkitC v2 pins (figure {{ref> | ||
| + | |||
| + | <figure esp32_devkitpins> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | * ESP32-PICO D4 pins (figure {{ref> | ||
| + | <figure esp32_picokitpins> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | * ESP32 Wemos Pro pins (figure {{ref> | ||
| + | |||
| + | <figure esp32_wemospins> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | In addition to modules for developers, small microcomputers with ESP processors are also produced. They are very convenient to use. They often include one or two buttons, an RGB LED or LCD, and everything enclosed in a case and ready for use in small projects. One of them is the ESP-PICO-D4 based M5 Atom-lite (figure {{ref> | ||
| + | |||
| + | <figure esp32_atomlite> | ||
| + | {{ : | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | An additional advantage of such a module for use in mini projects is the available housing with a prototype PCB shown in figure {{ref> | ||
| + | |||
| + | <figure esp32_atomhub> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||