Esp 32
Esp 32
Esp 32
Datasheet
Including:
ESP32-D0WD-V3
ESP32-D0WDQ6-V3
ESP32-D0WD
ESP32-D0WDQ6
ESP32-D2WD
ESP32-S0WD
ESP32-U4WDH
Version 3.6
Espressif Systems
Copyright © 2021
www.espressif.com
About This Guide
This document provides the specifications of ESP32 family of chips.
Document Updates
Please always refer to the latest version on https://www.espressif.com/en/support/download/documents.
Revision History
For any changes to this document over time, please refer to the last page.
Certification
Download certificates for Espressif products from www.espressif.com/en/certificates.
Contents
Contents
1 Overview 8
1.1 Featured Solutions 8
1.1.1 Ultra-Low-Power Solution 8
1.1.2 Complete Integration Solution 8
1.2 Wi-Fi Key Features 8
1.3 BT Key Features 9
1.4 MCU and Advanced Features 9
1.4.1 CPU and Memory 9
1.4.2 Clocks and Timers 10
1.4.3 Advanced Peripheral Interfaces 10
1.4.4 Security 10
1.5 Applications (A Non-exhaustive List) 11
1.6 Block Diagram 12
2 Pin Definitions 13
2.1 Pin Layout 13
2.2 Pin Description 15
2.3 Power Scheme 18
2.4 Strapping Pins 19
3 Functional Description 22
3.1 CPU and Memory 22
3.1.1 CPU 22
3.1.2 Internal Memory 22
3.1.3 External Flash and SRAM 23
3.1.4 Memory Map 23
3.2 Timers and Watchdogs 25
3.2.1 64-bit Timers 25
3.2.2 Watchdog Timers 25
3.3 System Clocks 26
3.3.1 CPU Clock 26
3.3.2 RTC Clock 26
3.3.3 Audio PLL Clock 26
3.4 Radio 26
3.4.1 2.4 GHz Receiver 27
3.4.2 2.4 GHz Transmitter 27
3.4.3 Clock Generator 27
3.5 Wi-Fi 27
3.5.1 Wi-Fi Radio and Baseband 27
3.5.2 Wi-Fi MAC 28
3.6 Bluetooth 28
3.6.1 Bluetooth Radio and Baseband 28
5 Electrical Characteristics 42
5.1 Absolute Maximum Ratings 42
5.2 Recommended Operating Conditions 42
5.3 DC Characteristics (3.3 V, 25 °C) 43
5.4 Reliability Qualifications 43
5.5 RF Power-Consumption Specifications 44
5.6 Wi-Fi Radio 44
5.7 Bluetooth Radio 45
5.7.1 Receiver – Basic Data Rate 45
5.7.2 Transmitter – Basic Data Rate 45
5.7.3 Receiver – Enhanced Data Rate 46
5.7.4 Transmitter – Enhanced Data Rate 46
5.8 Bluetooth LE Radio 47
5.8.1 Receiver 47
5.8.2 Transmitter 48
6 Package Information 49
8 Learning Resources 51
8.1 Must-Read Documents 51
8.2 Must-Have Resources 51
Revision History 61
List of Tables
1 Pin Description 15
2 Description of ESP32 Power-up and Reset Timing Parameters 19
3 Strapping Pins 20
4 Parameter Descriptions of Setup and Hold Times for the Strapping Pin 21
5 Memory and Peripheral Mapping 24
6 Power Consumption by Power Modes 30
7 ADC Characteristics 32
8 ADC Calibration Results 33
9 Capacitive-Sensing GPIOs Available on ESP32 33
10 Peripheral Pin Configurations 37
11 Absolute Maximum Ratings 42
12 Recommended Operating Conditions 42
13 DC Characteristics (3.3 V, 25 °C) 43
14 Reliability Qualifications 43
15 RF Power-Consumption Specifications 44
16 Wi-Fi Radio Characteristics 44
17 Receiver Characteristics – Basic Data Rate 45
18 Transmitter Characteristics – Basic Data Rate 45
19 Receiver Characteristics – Enhanced Data Rate 46
20 Transmitter Characteristics – Enhanced Data Rate 47
21 Receiver Characteristics – BLE 47
22 Transmitter Characteristics – BLE 48
23 ESP32 Ordering Information 50
24 Notes on ESP32 Pin Lists 52
25 GPIO_Matrix 54
26 Ethernet_MAC 59
List of Figures
1 Functional Block Diagram 12
2 ESP32 Pin Layout (QFN 6*6, Top View) 13
3 ESP32 Pin Layout (QFN 5*5, Top View) 14
4 ESP32 Power Scheme 18
5 ESP32 Power-up and Reset Timing 19
6 Setup and Hold Times for the Strapping Pin 21
7 Address Mapping Structure 23
8 QFN48 (6x6 mm) Package 49
9 QFN48 (5x5 mm) Package 49
10 ESP32 Part Number 50
1 Overview
ESP32 is a single 2.4 GHz Wi-Fi-and-Bluetooth combo chip designed with the TSMC ultra-low-power 40 nm
technology. It is designed to achieve the best power and RF performance, showing robustness, versatility and
reliability in a wide variety of applications and power scenarios.
For details on part numbers and ordering information, please refer to Section 7.
For details on ECO V3 instructions, please refer to ESP32 ECO V3 User Guide.
Note:
For more information, refer to Section 3.7 RTC and Low-Power Management.
ESP32 uses CMOS for single-chip fully-integrated radio and baseband, while also integrating advanced
calibration circuitries that allow the solution to remove external circuit imperfections or adjust to changes in
external conditions. As such, the mass production of ESP32 solutions does not require expensive and
specialized Wi-Fi testing equipment.
• WMM
• Defragmentation
• Antenna diversity
Note:
For more information, please refer to Section 3.5 Wi-Fi.
• 448 KB ROM
• 520 KB SRAM
• 16 KB SRAM in RTC
• External 2 MHz ~ 60 MHz crystal oscillator (40 MHz only for Wi-Fi/BT functionality)
• Two timer groups, including 2 × 64-bit timers and 1 × main watchdog in each group
• RTC watchdog
• 2 × 8-bit DAC
• 10 × touch sensors
• 4 × SPI
• 2 × I²S
• 2 × I²C
• 3 × UART
• 1 host (SD/eMMC/SDIO)
• 1 slave (SDIO/SPI)
• Ethernet MAC interface with dedicated DMA and IEEE 1588 support
• IR (TX/RX)
• Motor PWM
• Hall sensor
1.4.4 Security
• Secure boot
• Flash encryption
– AES
– Hash (SHA-2)
– RSA
– ECC
Embedded Flash
Bluetooth RF
Bluetooth
link receive
baseband
SPI controller
Switch
Clock
Balun
I2C generator
I2S Wi-Fi RF
Wi-Fi MAC
baseband transmit
SDIO
UART
Core and memory Cryptographic hardware
TWAI® acceleration
2 or 1 x Xtensa® 32-
ETH
bit LX6 Microprocessors
SHA RSA
RMT
Touch sensor
RTC
DAC
Note:
Products in the ESP32 series differ from each other in terms of their support for embedded flash and the number of CPUs
they have. For details, please refer to Section 7 Part Number and Ordering Information.
2 Pin Definitions
VDD3P3_CPU
GPIO21
GPIO22
GPIO19
XTAL_N
XTAL_P
U0RXD
U0TXD
VDDA
VDDA
CAP1
CAP2
48
47
46
45
44
43
42
41
40
39
38
37
VDDA 1 36 GPIO23
LNA_IN 2 35 GPIO18
VDD3P3 3 34 GPIO5
VDD3P3 4 33 SD_DATA_1
SENSOR_VP 5 32 SD_DATA_0
SENSOR_VN 8 29 SD_DATA_3
CHIP_PU 9 28 SD_DATA_2
VDET_1 10 27 GPIO17
VDET_2 11 26 VDD_SDIO
32K_XP 12 25 GPIO16
13
14
15
16
17
18
19
20
21
22
23
24
32K_XN
GPIO25
GPIO26
GPIO27
MTMS
MTDI
VDD3P3_RTC
MTCK
MTDO
GPIO2
GPIO0
GPIO4
GPIO21
GPIO22
XTAL_N
XTAL_P
U0RXD
U0TXD
VDDA
VDDA
CAP1
CAP2
48
47
46
45
44
43
42
41
40
39
VDDA 1 38 GPIO19
LNA_IN 2 37 VDD3P3_CPU
VDD3P3 3 36 GPIO23
VDD3P3 4 35 GPIO18
SENSOR_VP 5 34 GPIO5
SENSOR_CAPP 6 33 SD_DATA_1
CHIP_PU 9 30 SD_CMD
VDET_1 10 29 SD_DATA_3
VDET_2 11 28 SD_DATA_2
32K_XP 12 27 GPIO17
32K_XN 13 26 VDD_SDIO
GPIO25 14 25 GPIO16
15
16
17
18
19
20
21
22
23
24
GPIO26
GPIO27
MTMS
MTDI
VDD3P3_RTC
MTCK
MTDO
GPIO2
GPIO0
GPIO4
Note:
For details on ESP32’s part numbers and the corresponding packaging, please refer to Section 7 Part Number and Ordering
Information.
2 Pin Definitions
2.2 Pin Description
2 Pin Definitions
Name No. Type Function
GPIO2 22 I/O GPIO2, ADC2_CH2, RTC_GPIO12, TOUCH2, HSPIWP, HS2_DATA0, SD_DATA0
GPIO0 23 I/O GPIO0, ADC2_CH1, RTC_GPIO11, TOUCH1, EMAC_TX_CLK, CLK_OUT1,
GPIO4 24 I/O GPIO4, ADC2_CH0, RTC_GPIO10, TOUCH0, EMAC_TX_ER, HSPIHD, HS2_DATA1, SD_DATA1
VDD_SDIO
GPIO16 25 I/O GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
VDD_SDIO 26 P Output power supply: 1.8 V or the same voltage as VDD3P3_RTC
GPIO17 27 I/O GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
SD_DATA_2 28 I/O GPIO9, HS1_DATA2, U1RXD, SD_DATA2, SPIHD
SD_DATA_3 29 I/O GPIO10, HS1_DATA3, U1TXD, SD_DATA3, SPIWP
SD_CMD 30 I/O GPIO11, HS1_CMD, U1RTS, SD_CMD, SPICS0
Submit Documentation Feedback
Analog
VDDA 43 P Analog power supply (2.3 V ∼ 3.6 V)
XTAL_N 44 O External crystal output
XTAL_P 45 I External crystal input
VDDA 46 P Analog power supply (2.3 V ∼ 3.6 V)
CAP2 47 I Connects to a 3.3 nF (10%) capacitor and 20 kΩ resistor in parallel to CAP1
Espressif Systems
2 Pin Definitions
Name No. Type Function
CAP1 48 I Connects to a 10 nF series capacitor to ground
GND 49 P Ground
Note:
• The pin-pin mapping between ESP32-D2WD/ESP32-U4WDH and the embedded flash is as follows: GPIO16 = CS#, GPIO17 = IO1/DO, SD_CMD = IO3/HOLD#, SD_CLK =
CLK, SD_DATA_0 = IO2/WP#, SD_DATA_1 = IO0/DI. The pins used for embedded flash are not recommended for other uses.
• In most cases, the data port connection between ESP32 series of chips other than ESP32-D2WD/ESP32-U4WDH and external flash is as follows: SD_DATA0/SPIQ = IO1/DO,
SD_DATA1/SPID = IO0/DI, SD_DATA2/SPIHD = IO3/HOLD#, SD_DATA3/SPIWP = IO2/WP#.
• For a quick reference guide to using the IO_MUX, Ethernet MAC, and GIPO Matrix pins of ESP32, please refer to Appendix ESP32 Pin Lists.
Submit Documentation Feedback
17
ESP32 Series Datasheet V3.6
2 Pin Definitions
• VDD3P3_RTC
• VDD3P3_CPU
• VDD_SDIO
VDD3P3_RTC is also the input power supply for RTC and CPU.
VDD_SDIO connects to the output of an internal LDO whose input is VDD3P3_RTC. When VDD_SDIO is
connected to the same PCB net together with VDD3P3_RTC, the internal LDO is disabled automatically. The
power scheme diagram is shown below:
VDD3P3_RTC VDD3P3_CPU
VDD_SDIO
3.3 V/1.8 V
The internal LDO can be configured as having 1.8 V, or the same voltage as VDD3P3_RTC. It can be powered off
via software to minimize the current of flash/SRAM during the Deep-sleep mode.
Notes on CHIP_PU:
• The illustration below shows the ESP32 power-up and reset timing. Details about the parameters are listed
in Table 2.
t0 t1
VDD3P3_RTC Min
VDD
VIL_nRST
CHIP_PU
• In scenarios where ESP32 is powered on and off repeatedly by switching the power rails, while there is a
large capacitor on the VDD33 rail and CHIP_PU and VDD33 are connected, simply switching off the
CHIP_PU power rail and immediately switching it back on may cause an incomplete power discharge cycle
and failure to reset the chip adequately.
An additional discharge circuit may be required to accelerate the discharge of the large capacitor on rail
VDD33, which will ensure proper power-on-reset when the ESP32 is powered up again.
• When a battery is used as the power supply for the ESP32 series of chips and modules, a supply voltage
supervisor is recommended, so that a boot failure due to low voltage is avoided. Users are recommended
to pull CHIP_PU low if the power supply for ESP32 is below 2.3 V.
• The operating voltage of ESP32 ranges from 2.3 V to 3.6 V. When using a single-power supply, the
recommended voltage of the power supply is 3.3 V, and its recommended output current is 500 mA or
more.
• When VDD_SDIO 1.8 V is used as the power supply for external flash/PSRAM, a 2 kΩ grounding resistor
should be added to VDD_SDIO. For the circuit design, please refer to Figure ESP32WROVER
Schematics, in ESP32-WROVER Datasheet.
• When the three digital power supplies are used to drive peripherals, e.g., 3.3 V flash, they should comply
with the peripherals’ specifications.
• MTDO
• GPIO5
Software can read the values of these five bits from register ”GPIO_STRAPPING”.
During the chip’s system reset release (power-on-reset, RTC watchdog reset and brownout reset), the latches of
the strapping pins sample the voltage level as strapping bits of ”0” or ”1”, and hold these bits until the chip is
powered down or shut down. The strapping bits configure the device’s boot mode, the operating voltage of
VDD_SDIO and other initial system settings.
Each strapping pin is connected to its internal pull-up/pull-down during the chip reset. Consequently, if a
strapping pin is unconnected or the connected external circuit is high-impedance, the internal weak
pull-up/pull-down will determine the default input level of the strapping pins.
To change the strapping bit values, users can apply the external pull-down/pull-up resistances, or use the host
MCU’s GPIOs to control the voltage level of these pins when powering on the chip.
Note:
• Firmware can configure register bits to change the settings of “Voltage of Internal LDO (VDD_SDIO)” and “Timing
of SDIO Slave”, after booting.
• For ESP32 chips that contain an embedded flash, users need to note the logic level of MTDI. For example, ESP32-
D2WD contains an embedded flash that operates at 1.8 V, therefore, the MTDI should be pulled high. ESP32-
U4WDH contains an embedded flash that operates at 3.3 V, therefore, the MTDI should be low.
The illustration below shows the setup and hold times for the strapping pin before and after the CHIP_PU signal
goes high. Details about the parameters are listed in Table 4.
t0 t1
VIL_nRST
CHIP_PU
VIH
Strapping pin
Table 4: Parameter Descriptions of Setup and Hold Times for the Strapping Pin
3 Functional Description
This chapter describes the functions integrated in ESP32.
• 7-stage pipeline to support the clock frequency of up to 240 MHz (160 MHz for ESP32-S0WD,
ESP32-D2WD, and ESP32-U4WDH)
• Support for DSP instructions, such as a 32-bit multiplier, a 32-bit divider, and a 40-bit MAC
• 8 KB of SRAM in RTC, which is called RTC FAST Memory and can be used for data storage; it is accessed
by the main CPU during RTC Boot from the Deep-sleep mode.
• 8 KB of SRAM in RTC, which is called RTC SLOW Memory and can be accessed by the co-processor
during the Deep-sleep mode.
• 1 Kbit of eFuse: 256 bits are used for the system (MAC address and chip configuration) and the remaining
768 bits are reserved for customer applications, including flash-encryption and chip-ID.
• Embedded flash
Note:
Products in the ESP32 series differ from each other, in terms of their support for embedded flash and the size of it. For
details, please refer to Section 7 Part Number and Ordering Information.
ESP32 can access the external QSPI flash and SRAM through high-speed caches.
• Up to 16 MB of external flash can be mapped into CPU instruction memory space and read-only memory
space simultaneously.
– When external flash is mapped into CPU instruction memory space, up to 11 MB + 248 KB can be
mapped at a time. Note that if more than 3 MB + 248 KB are mapped, cache performance will be
reduced due to speculative reads by the CPU.
– When external flash is mapped into read-only data memory space, up to 4 MB can be mapped at a
time. 8-bit, 16-bit and 32-bit reads are supported.
• External SRAM can be mapped into CPU data memory space. SRAM up to 8 MB is supported and up to 4
MB can be mapped at a time. 8-bit, 16-bit and 32-bit reads and writes are supported.
Note:
After ESP32 is initialized, firmware can customize the mapping of external SRAM or flash into the CPU address space.
• A 64-bit timer
• Auto-reload at alarming
During flash boot the RWDT and the first MWDT start automatically in order to detect, and recover from, booting
problems.
• One of three or four possible actions (interrupt, CPU reset, core reset, and system reset) upon the expiry of
each stage
• Write protection that prevents the RWDT and MWDT configuration from being inadvertently altered
In addition, ESP32 has an internal 8 MHz oscillator. The application can select the clock source from the external
crystal clock source, the PLL clock or the internal 8 MHz oscillator. The selected clock source drives the CPU
clock directly, or after division, depending on the application.
• internal 31.25 kHz clock (derived from the internal 8 MHz oscillator divided by 256)
When the chip is in the normal power mode and needs faster CPU accessing, the application can choose the
external high-speed crystal clock divided by 4 or the internal 8 MHz oscillator. When the chip operates in the
low-power mode, the application chooses the external low-speed (32 kHz) crystal clock, the internal RC clock or
the internal 31.25 kHz clock.
3.4 Radio
The radio module consists of the following blocks:
• clock generator
Additional calibrations are integrated to cancel any radio imperfections, such as:
• Carrier leakage
• Baseband nonlinearities
• RF nonlinearities
• Antenna matching
These built-in calibration routines reduce the amount of time required for product testing, and render the testing
equipment unnecessary.
The clock generator has built-in calibration and self-test circuits. Quadrature clock phases and phase noise are
optimized on-chip with patented calibration algorithms which ensure the best performance of the receiver and
the transmitter.
3.5 WiFi
ESP32 implements a TCP/IP and full 802.11 b/g/n Wi-Fi MAC protocol. It supports the Basic Service Set (BSS)
STA and SoftAP operations under the Distributed Control Function (DCF). Power management is handled with
minimal host interaction to minimize the active-duty period.
• 802.11b/g/n
• Antenna diversity
ESP32 supports antenna diversity with an external RF switch. One or more GPIOs control the RF switch
and selects the best antenna to minimize the effects of channel fading.
• Defragmentation
• TXOP
• WMM
• CCMP (CBC-MAC, counter mode), TKIP (MIC, RC4), WAPI (SMS4), WEP (RC4) and CRC
3.6 Bluetooth
The chip integrates a Bluetooth link controller and Bluetooth baseband, which carry out the baseband protocols
and other low-level link routines, such as modulation/demodulation, packet processing, bit stream processing,
frequency hopping, etc.
• Class-1, class-2 and class-3 transmit output powers, and a dynamic control range of up to 24 dB
• High performance in NZIF receiver sensitivity with over 94 dBm of dynamic range
• Internal SRAM allows full-speed data-transfer, mixed voice and data, and full piconet operation
• Logic for forward error correction, header error control, access code correlation, CRC, demodulation,
encryption bit stream generation, whitening and transmit pulse shaping
• Classic Bluetooth
– Multi-connections
– Master/Slave Switch
– Broadcast encryption
– Secure Simple-Pairing
– Sniff mode
– Ping
– Advertising
– Scanning
– Multiple connections
– LE Ping
• Power modes
– Active mode: The chip radio is powered on. The chip can receive, transmit, or listen.
– Modemsleep mode: The CPU is operational and the clock is configurable. The Wi-Fi/Bluetooth
baseband and radio are disabled.
– Lightsleep mode: The CPU is paused. The RTC memory and RTC peripherals, as well as the ULP
co-processor are running. Any wake-up events (MAC, host, RTC timer, or external interrupts) will wake
up the chip.
– Deepsleep mode: Only the RTC memory and RTC peripherals are powered on. Wi-Fi and Bluetooth
connection data are stored in the RTC memory. The ULP co-processor is functional.
– Hibernation mode: The internal 8-MHz oscillator and ULP co-processor are disabled. The RTC
recovery memory is powered down. Only one RTC timer on the slow clock and certain RTC GPIOs are
active. The RTC timer or the RTC GPIOs can wake up the chip from the Hibernation mode.
Note:
• * Among the ESP32 series of SoCs, ESP32-D0WD-V3, ESP32-D0WDQ6-V3, ESP32-D0WD, and ESP32-D0WDQ6
have a maximum CPU frequency of 240 MHz, ESP32-D2WD, ESP32-S0WD, and ESP32-U4WDH have a maximum
CPU frequency of 160 MHz.
• When Wi-Fi is enabled, the chip switches between Active and Modem-sleep modes. Therefore, power consumption
changes accordingly.
• In Modem-sleep mode, the CPU frequency changes automatically. The frequency depends on the CPU load and
the peripherals used.
• During Deep-sleep, when the ULP co-processor is powered on, peripherals such as GPIO and I²C are able to
operate.
• When the system works in the ULP sensor-monitored pattern, the ULP co-processor works with the ULP sensor
periodically and the ADC works with a duty cycle of 1%, so the power consumption is 100 µA.
Most of the digital GPIOs can be configured as internal pull-up or pull-down, or set to high impedance. When
configured as an input, the input value can be read through the register. The input can also be set to edge-trigger
or level-trigger to generate CPU interrupts. Most of the digital IO pins are bi-directional, non-inverting and tristate,
including input and output buffers with tristate control. These pins can be multiplexed with other functions, such
as the SDIO, UART, SPI, etc. (More details can be found in the Appendix, Table IO_MUX.) For low-power
operations, the GPIOs can be set to hold their states.
With appropriate settings, the ADCs can be configured to measure voltage on 18 pins maximum.
Notes:
• When atten=3 and the measurement result is above 3000 (voltage at approx. 2450 mV), the ADC accuracy
will be worse than described in the table above.
• To get better DNL results, users can take multiple sampling tests with a filter, or calculate the average value.
• The input voltage range of GPIO pins within VDD3P3_RTC domain should strictly follow the DC
characteristics provided in Table 13. Otherwise, measurement errors may be introduced, and chip
performance may be affected.
By default, there are ±6% differences in measured results between chips. ESP-IDF provides couple of calibration
methods for ADC1. Results after calibration using eFuse Vref value are shown in Table 8. For higher accuracy,
users may apply other calibration methods provided in ESP-IDF, or implement their own.
• Dedicated DMA controller allowing high-speed transfer between the dedicated SRAM and Ethernet MAC
• Several address-filtering modes for physical and multicast address (multicast and group addresses)
• Internal FIFOs to buffer transmit and receive frames. The transmit FIFO and the receive FIFO are both 512
words (32-bit)
• Hardware PTP (Precision Time Protocol) in accordance with IEEE 1588 2008 (PTP V2)
• Secure Digital memory (SD mem Version 3.0 and Version 3.01)
• Multimedia Cards (MMC Version 4.41, eMMC Version 4.5 and Version 4.51)
The controller allows up to 80 MHz clock output in three different data-bus modes: 1-bit, 4-bit and 8-bit. It
supports two SD/SDIO/MMC4.41 cards in a 4-bit data-bus mode. It also supports one SD card operating at 1.8
V.
• SPI, 1-bit SDIO, and 4-bit SDIO transfer modes over the full clock range from 0 to 50 MHz
• Automatic loading of SDIO bus data and automatic discarding of padding data
• Interrupt vectors between the host and the slave, allowing both to interrupt each other
Users can program command registers to control I²C interfaces, so that they have more flexibility.
Both of the I²S interfaces have dedicated DMA controllers. PDM and BT PCM interfaces are supported.
The 16 channels of digital waveforms operate with an APB clock of 80 MHz. Eight of these channels have the
option of using the 8 MHz oscillator clock. Each channel can select a 20-bit timer with configurable counting
range, while its accuracy of duty can be up to 16 bits within a 1 ms period.
The software can change the duty immediately. Moreover, each channel automatically supports step-by-step
duty increase or decrease, which is useful for the LED RGB color-gradient generator.
• Four modes of SPI transfer format, which depend on the polarity (CPOL) and the phase (CPHA) of the SPI
clock
• Up to 80 MHz (The actual speed it can reach depends on the selected pads, PCB tracing, peripheral
characteristics, etc.)
• up to 64-byte FIFO
All SPIs can also be connected to the external flash/SRAM and LCD. Each SPI can be served by DMA
controllers.
• standard frame format (11-bit ID) and extended frame format (29-bit ID)
• error detection and handling: error counters, configurable error interrupt threshold, error code capture,
arbitration lost capture
4.1.19 Accelerator
ESP32 is equipped with hardware accelerators of general algorithms, such as AES (FIPS PUB 197), SHA (FIPS
PUB 180-4), RSA, and ECC, which support independent arithmetic, such as Big Integer Multiplication and Big
Integer Modular Multiplication. The maximum operation length for RSA, ECC, Big Integer Multiply and Big Integer
Modular Multiplication is 4096 bits.
The hardware accelerators greatly improve operation speed and reduce software complexity. They also support
code encryption and dynamic decryption, which ensures that code in the flash will not be hacked.
5 Electrical Characteristics
* The chip worked properly after a 24-hour test in ambient temperature at 25 °C, and the IOs in three domains
(VDD3P3_RTC, VDD3P3_CPU, VDD_SDIO) output high logic level to ground.
Notes:
1. Please see Table IO_MUX for IO’s power domain. VDD is the I/O voltage for a particular power domain of pins.
2. For VDD3P3_CPU and VDD3P3_RTC power domain, per-pin current sourced in the same domain is gradually reduced
from around 40 mA to around 29 mA, VOH >=2.64 V, as the number of current-source pins increases.
3. For VDD_SDIO power domain, per-pin current sourced in the same domain is gradually reduced from around 30 mA to
around 10 mA, VOH >=2.64 V, as the number of current-source pins increases.
1. JEDEC document JEP155 states that 500 V HBM allows safe manufacturing with a standard ESD control process.
2. JEDEC document JEP157 states that 250 V CDM allows safe manufacturing with a standard ESD control process.
1. Device should operate in the frequency range allocated by regional regulatory authorities. Target operating frequency
range is configurable by software.
2. The typical value of ESP32’s Wi-Fi radio output impedance is different between chips in different QFN packages. For
ESP32 chips with a QFN 6×6 package, the value is 30+j10 Ω. For ESP32 chips with a QFN 5×5 package, the value is
35+j10 Ω.
3. Target TX power is configurable based on device or certification requirements.
Note:
There are a total of eight power levels from 0 to 7, and the transmit power ranges from –12 dBm to 9 dBm. When the
power level rises by 1, the transmit power increases by 3 dB. Power level 4 is used by default and the corresponding
transmit power is 0 dBm.
5.8.2 Transmitter
6 Package Information
Pin 1
Pin 2 Pin 1
Pin 3 Pin 2
Pin 3
Note:
The pins of the chip are numbered in an anti-clockwise direction from Pin 1 in the top view.
ESP32 - D 0 WD H Q6 V3
Wafer version 3
Package
Q6=QFN 6*6
N/A=QFN 5*5
Connection
WD=Wi-Fi b/g/n + BT/BLE dual mode
Embedded flash
0=No embedded flash
2=2 MB flash
4=4 MB flash
Core
D=Dual core
S =Single core
The table below provides the ordering information of the ESP32 series of chips.
8 Learning Resources
• ESP32 BBS
This is an Engineer-to-Engineer (E2E) Community for ESP32, where you can post questions, share
knowledge, explore ideas, and solve problems together with fellow engineers.
• ESP32 GitHub
ESP32 development projects are freely distributed under Espressif’s MIT license on GitHub. This channel of
communication has been established to help developers get started with ESP32 and encourage them to
share their knowledge of ESP32-related hardware and software.
• ESP32 Tools
This is a webpage where users can download ESP32 Flash Download Tools and the zip file ”ESP32
Certification and Test”.
• ESP-IDF
This webpage links users to the official IoT development framework for ESP32.
• ESP32 Resources
This webpage provides the links to all available ESP32 documents, SDK and tools.
No. Description
In Table IO_MUX, the boxes highlighted in yellow indicate the GPIO pins that are input-only.
1
Please see the following note for further details.
GPIO pins 34-39 are input-only. These pins do not feature an output driver or internal pull-
2 up/pull-down circuitry. The pin names are: SENSOR_VP (GPIO36), SENSOR_CAPP (GPIO37),
SENSOR_CAPN (GPIO38), SENSOR_VN (GPIO39), VDET_1 (GPIO34), VDET_2 (GPIO35).
The pins are grouped into four power domains: VDDA (analog power supply), VDD3P3_RTC
(RTC power supply), VDD3P3_CPU (power supply of digital IOs and CPU cores), VDD_SDIO
(power supply of SDIO IOs). VDD_SDIO is the output of the internal SDIO-LDO. The voltage of
3
SDIO-LDO can be configured at 1.8 V or be the same as that of VDD3P3_RTC. The strapping
pin and eFuse bits determine the default voltage of the SDIO-LDO. Software can change the
voltage of the SDIO-LDO by configuring register bits. For details, please see the column “Power
Domain” in Table IO_MUX.
The functional pins in the VDD3P3_RTC domain are those with analog functions, including the
4 32 kHz crystal oscillator, ADC, DAC, and the capacitive touch sensor. Please see columns
“Analog Function 1~3” in Table IO_MUX.
These VDD3P3_RTC pins support the RTC function, and can work during Deep-sleep. For
5
example, an RTC-GPIO can be used for waking up the chip from Deep-sleep.
The GPIO pins support up to six digital functions, as shown in columns “Function 1~6” In Table
IO_MUX. The function selection registers will be set as “N-1”, where N is the function number.
Below are some definitions:
• SD_* is for signals of the SDIO slave.
• HS1_* is for Port 1 signals of the SDIO host.
• HS2_* is for Port 2 signals of the SDIO host.
6 • MT* is for signals of the JTAG.
• U0* is for signals of the UART0 module.
• U1* is for signals of the UART1 module.
• U2* is for signals of the UART2 module.
• SPI* is for signals of the SPI01 module.
• HSPI* is for signals of the SPI2 module.
• VSPI* is for signals of the SPI3 module.
No. Description
Each column about digital “Function” is accompanied by a column about “Type”. Please see
the following explanations for the meanings of “type” with respect to each “function” they are
associated with. For each “Function-N”, “type” signifies:
• I: input only. If a function other than “Function-N” is assigned, the input signal of
“Function-N” is still from this pin.
• I1: input only. If a function other than “Function-N” is assigned, the input signal of
“Function-N” is always “1”.
• I0: input only. If a function other than “Function-N” is assigned, the input signal of
“Function-N” is always “0”.
7
• O: output only.
• T: high-impedance.
• I/O/T: combinations of input, output, and high-impedance according to the function sig-
nal.
• I1/O/T: combinations of input, output, and high-impedance, according to the function
signal. If a function is not selected, the input signal of the function is “1”.
For example, pin 30 can function as HS1_CMD or SD_CMD, where HS1_CMD is of an “I1/O/T”
type. If pin 30 is selected as HS1_CMD, this pin’s input and output are controlled by the SDIO
host. If pin 30 is not selected as HS1_CMD, the input signal of the SDIO host is always “1”.
Each digital output pin is associated with its configurable drive strength. Column “Drive
Strength” in Table IO_MUX lists the default values. The drive strength of the digital output
pins can be configured into one of the following four options:
• 0: ~5 mA
8 • 1: ~10 mA
• 2: ~20 mA
• 3: ~40 mA
The default value is 2.
The drive strength of the internal pull-up (wpu) and pull-down (wpd) is ~75 µA.
Column “At Reset” in Table IO_MUX lists the status of each pin during reset, including input-
9 enable (ie=1), internal pull-up (wpu) and internal pull-down (wpd). During reset, all pins are
output-disabled.
Column “After Reset” in Table IO_MUX lists the status of each pin immediately after reset,
10 including input-enable (ie=1), internal pull-up (wpu) and internal pull-down (wpd). After reset,
each pin is set to “Function 1”. The output-enable is controlled by digital Function 1.
Table Ethernet_MAC is about the signal mapping inside Ethernet MAC. The Ethernet MAC
supports MII and RMII interfaces, and supports both the internal PLL clock and the external
11
clock source. For the MII interface, the Ethernet MAC is with/without the TX_ERR signal. MDC,
MDIO, CRS and COL are slow signals, and can be mapped onto any GPIO pin through the
GPIO-Matrix.
Table GPIO Matrix is for the GPIO-Matrix. The signals of the on-chip functional modules can
be mapped onto any GPIO pin. Some signals can be mapped onto a pin by both IO-MUX
12
and GPIO-Matrix, as shown in the column tagged as “Same input signal from IO_MUX core”
in Table GPIO Matrix.
No. Description
*In Table GPIO_Matrix�the column “Default Value if unassigned” records the default value of
the an input signal if no GPIO is assigned to it. The actual value is determined by register
13
GPIO_FUNCm_IN_INV_SEL and GPIO_FUNCm_IN_SEL. (The value of m ranges from 1 to
255.)
A.2. GPIO_Matrix
A.3. Ethernet_MAC
PIN Name Function6 MII (int_osc) MII (ext_osc) RMII (int_osc) RMII (ext_osc)
GPIO0 EMAC_TX_CLK TX_CLK (I) TX_CLK (I) CLK_OUT(O) EXT_OSC_CLK(I)
GPIO5 EMAC_RX_CLK RX_CLK (I) RX_CLK (I) - -
GPIO21 EMAC_TX_EN TX_EN(O) TX_EN(O) TX_EN(O) TX_EN(O)
GPIO19 EMAC_TXD0 TXD[0](O) TXD[0](O) TXD[0](O) TXD[0](O)
GPIO22 EMAC_TXD1 TXD[1](O) TXD[1](O) TXD[1](O) TXD[1](O)
MTMS EMAC_TXD2 TXD[2](O) TXD[2](O) - -
MTDI EMAC_TXD3 TXD[3](O) TXD[3](O) - -
MTCK EMAC_RX_ER RX_ER(I) RX_ER(I) - -
GPIO27 EMAC_RX_DV RX_DV(I) RX_DV(I) CRS_DV(I) CRS_DV(I)
GPIO25 EMAC_RXD0 RXD[0](I) RXD[0](I) RXD[0](I) RXD[0](I)
GPIO26 EMAC_RXD1 RXD[1](I) RXD[1](I) RXD[1](I) RXD[1](I)
U0TXD EMAC_RXD2 RXD[2](I) RXD[2](I) - -
MTDO EMAC_RXD3 RXD[3](I) RXD[3](I) - -
GPIO16 EMAC_CLK_OUT CLK_OUT(O) - CLK_OUT(O) -
GPIO17 EMAC_CLK_OUT_180 CLK_OUT_180(O) - CLK_OUT_180(O) -
GPIO4 EMAC_TX_ER TX_ERR(O)* TX_ERR(O)* - -
In GPIO Matrix* - MDC(O) MDC(O) MDC(O) MDC(O)
In GPIO Matrix* - MDIO(IO) MDIO(IO) MDIO(IO) MDIO(IO)
In GPIO Matrix* - CRS(I) CRS(I) - -
In GPIO Matrix* - COL(I) COL(I) - -
*Notes: 1. The GPIO Matrix can be any GPIO. 2. The TX_ERR (O) is optional.
A.4. IO_MUX
For the list of IO_MUX pins, please see the next page.
Appendix A
IO_MUX
Power Analog Analog Analog RTC RTC Drive Strength
Pin No. Analog Pin Digital Pin Power Domain Function1 Type Function2 Type Function3 Type Function4 Type Function5 Type Function6 Type At Reset After Reset
Supply Pin Function1 Function2 Function3 Function1 Function2 (2’d2: 20 mA)
1 VDDA VDDA supply in
2 LNA_IN VDD3P3
3 VDD3P3 VDD3P3 supply in
4 VDD3P3 VDD3P3 supply in
5 SENSOR_VP VDD3P3_RTC ADC_H ADC1_CH0 RTC_GPIO0 GPIO36 I GPIO36 I oe=0, ie=0 oe=0, ie=0
6 SENSOR_CAPP VDD3P3_RTC ADC_H ADC1_CH1 RTC_GPIO1 GPIO37 I GPIO37 I oe=0, ie=0 oe=0, ie=0
7 SENSOR_CAPN VDD3P3_RTC ADC_H ADC1_CH2 RTC_GPIO2 GPIO38 I GPIO38 I oe=0, ie=0 oe=0, ie=0
8 SENSOR_VN VDD3P3_RTC ADC_H ADC1_CH3 RTC_GPIO3 GPIO39 I GPIO39 I oe=0, ie=0 oe=0, ie=0
9 CHIP_PU VDD3P3_RTC
10 VDET_1 VDD3P3_RTC ADC1_CH6 RTC_GPIO4 GPIO34 I GPIO34 I oe=0, ie=0 oe=0, ie=0
11 VDET_2 VDD3P3_RTC ADC1_CH7 RTC_GPIO5 GPIO35 I GPIO35 I oe=0, ie=0 oe=0, ie=0
12 32K_XP VDD3P3_RTC XTAL_32K_P ADC1_CH4 TOUCH9 RTC_GPIO9 GPIO32 I/O/T GPIO32 I/O/T 2'd2 oe=0, ie=0 oe=0, ie=0
13 32K_XN VDD3P3_RTC XTAL_32K_N ADC1_CH5 TOUCH8 RTC_GPIO8 GPIO33 I/O/T GPIO33 I/O/T 2'd2 oe=0, ie=0 oe=0, ie=0
14 GPIO25 VDD3P3_RTC DAC_1 ADC2_CH8 RTC_GPIO6 GPIO25 I/O/T GPIO25 I/O/T EMAC_RXD0 I 2'd2 oe=0, ie=0 oe=0, ie=0
15 GPIO26 VDD3P3_RTC DAC_2 ADC2_CH9 RTC_GPIO7 GPIO26 I/O/T GPIO26 I/O/T EMAC_RXD1 I 2'd2 oe=0, ie=0 oe=0, ie=0
16 GPIO27 VDD3P3_RTC ADC2_CH7 TOUCH7 RTC_GPIO17 GPIO27 I/O/T GPIO27 I/O/T EMAC_RX_DV I 2'd2 oe=0, ie=0 oe=0, ie=0
17 MTMS VDD3P3_RTC ADC2_CH6 TOUCH6 RTC_GPIO16 MTMS I0 HSPICLK I/O/T GPIO14 I/O/T HS2_CLK O SD_CLK I0 EMAC_TXD2 O 2'd2 oe=0, ie=0 oe=0, ie=1, wpu
18 MTDI VDD3P3_RTC ADC2_CH5 TOUCH5 RTC_GPIO15 MTDI I1 HSPIQ I/O/T GPIO12 I/O/T HS2_DATA2 I1/O/T SD_DATA2 I1/O/T EMAC_TXD3 O 2'd2 oe=0, ie=1, wpd oe=0, ie=1, wpd
Submit Documentation Feedback
25 GPIO16 VDD_SDIO GPIO16 I/O/T GPIO16 I/O/T HS1_DATA4 I1/O/T U2RXD I1 EMAC_CLK_OUT O 2'd2 oe=0, ie=0 oe=0, ie=1
60
Total
8 14 26
Number
Notes:
• wpu: weak pull-up;
• Please see Table: Notes on ESP32 Pin Lists for more information.(请参考表:管脚清单说明。)
Espressif www.espressif.com
Revision History
Revision History