ESP32-S2: выводы чипа и GPIO
У ESP32-S2 43 вывода общего назначения в корпусе QFN56; без оговорок свободны 20, ещё 16 связаны с загрузкой, отладкой, USB или восьмилинейной памятью, а семь заняты флеш-памятью. Здесь — таблица всех GPIO с функциями и номерами выводов корпуса и разбор ограничений по даташиту Espressif.
Обновлено Редакция GAW
ESP32-S2 — чип Espressif на одном ядре Xtensa LX7 с Wi-Fi и контроллером USB OTG, без Bluetooth. Он выпускается в корпусе QFN56 размером 7×7 мм и имеет 43 вывода общего назначения: GPIO0–21 и GPIO26–46. Варианты отличаются памятью в корпусе: у ESP32-S2 её нет, у S2FH4 — флеш-память 4 МБ, у S2R2 — PSRAM 2 МБ, у S2FN4R2 — и то и другое, а S2FH2 снят с производства. Сравнение с другими чипами — на странице «ESP32 и другие чипы Espressif».
У каждого вывода до пяти функций IO MUX — UART, JTAG, шины SPI, выходы тактового сигнала, — а почти любой сигнал периферии можно вывести на любой GPIO через матрицу GPIO. GPIO0–21 подключены ещё и к RTC IO MUX: в глубоком сне ими управляют сопроцессор ULP и периферия домена RTC. У них же аналоговые функции — АЦП, ЦАП, сенсоры касания.
Какие выводы свободны
Даташит делит выводы по приоритету на свободные, с оговорками и занятые:
| Группа | Выводы | Число |
|---|---|---|
| Свободные | GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18, GPIO21, GPIO38 | 20 |
| С оговорками | GPIO0, GPIO19, GPIO20, GPIO33, GPIO34, GPIO35, GPIO36, GPIO37, GPIO39, GPIO40, GPIO41, GPIO42, GPIO43, GPIO44, GPIO45, GPIO46 | 16 |
| Заняты флеш-памятью и PSRAM | GPIO26, GPIO27, GPIO28, GPIO29, GPIO30, GPIO31, GPIO32 | 7 |
С оговорками — это выводы с особой ролью:
- GPIO0, GPIO45, GPIO46 — strapping-выводы: режим загрузки, напряжение флеш-памяти и сообщения загрузчика. GPIO46 к тому же работает только на вход.
- GPIO19 и GPIO20 — линии USB D− и D+, по умолчанию подключённые к контроллеру USB OTG.
- GPIO39–42 — JTAG (MTCK, MTDO, MTDI, MTMS).
- GPIO43 и GPIO44 — UART0: сообщения загрузчика и прошивка.
- GPIO33–37 — старшие линии данных и строб восьмилинейной шины памяти; свободны, если флеш-память и PSRAM подключены по четырём линиям, как во всех вариантах с памятью в корпусе.
Таблица выводов
В таблице — все GPIO, номер вывода корпуса и, если вывод называется не GPIOn, его имя в даташите. В колонке «Аналог и RTC» — канал АЦП, сенсор касания, ЦАП, кварц 32 кГц или линия USB и номер вывода RTC. Каналы сверены с заголовками ESP-IDF.
| GPIO | Вывод QFN56 | Аналог и RTC | Функции IO MUX | Использование |
|---|---|---|---|---|
| GPIO0 | 5 | RTC_GPIO0 | — | с оговорками — strapping-вывод, режим загрузки: 0 вместе с GPIO46 = 0 — загрузка через USB или UART |
| GPIO1 | 6 | ADC1_CH0, TOUCH1, RTC_GPIO1 | — | свободен |
| GPIO2 | 7 | ADC1_CH1, TOUCH2, RTC_GPIO2 | — | свободен |
| GPIO3 | 8 | ADC1_CH2, TOUCH3, RTC_GPIO3 | — | свободен |
| GPIO4 | 9 | ADC1_CH3, TOUCH4, RTC_GPIO4 | — | свободен |
| GPIO5 | 10 | ADC1_CH4, TOUCH5, RTC_GPIO5 | — | свободен |
| GPIO6 | 11 | ADC1_CH5, TOUCH6, RTC_GPIO6 | — | свободен |
| GPIO7 | 12 | ADC1_CH6, TOUCH7, RTC_GPIO7 | — | свободен |
| GPIO8 | 13 | ADC1_CH7, TOUCH8, RTC_GPIO8 | SUBSPICS1 | свободен |
| GPIO9 | 14 | ADC1_CH8, TOUCH9, RTC_GPIO9 | SUBSPIHD, FSPIHD | свободен |
| GPIO10 | 15 | ADC1_CH9, TOUCH10, RTC_GPIO10 | FSPIIO4, SUBSPICS0, FSPICS0 | свободен |
| GPIO11 | 16 | ADC2_CH0, TOUCH11, RTC_GPIO11 | FSPIIO5, SUBSPID, FSPID | свободен |
| GPIO12 | 17 | ADC2_CH1, TOUCH12, RTC_GPIO12 | FSPIIO6, SUBSPICLK, FSPICLK | свободен |
| GPIO13 | 18 | ADC2_CH2, TOUCH13, RTC_GPIO13 | FSPIIO7, SUBSPIQ, FSPIQ | свободен |
| GPIO14 | 19 | ADC2_CH3, TOUCH14, RTC_GPIO14 | FSPIDQS, SUBSPIWP, FSPIWP | свободен |
| GPIO15 (XTAL_32K_P) | 21 | ADC2_CH4, XTAL_32K_P, RTC_GPIO15 | U0RTS | свободен |
| GPIO16 (XTAL_32K_N) | 22 | ADC2_CH5, XTAL_32K_N, RTC_GPIO16 | U0CTS | свободен |
| GPIO17 (DAC_1) | 23 | ADC2_CH6, DAC_1, RTC_GPIO17 | U1TXD | свободен |
| GPIO18 (DAC_2) | 24 | ADC2_CH7, DAC_2, RTC_GPIO18 | U1RXD, CLK_OUT3 | свободен |
| GPIO19 | 25 | ADC2_CH8, USB_D-, RTC_GPIO19 | U1RTS, CLK_OUT2 | с оговорками — USB D−, по умолчанию у USB OTG |
| GPIO20 | 26 | ADC2_CH9, USB_D+, RTC_GPIO20 | U1CTS, CLK_OUT1 | с оговорками — USB D+, по умолчанию у USB OTG |
| GPIO21 | 28 | RTC_GPIO21 | — | свободен |
| GPIO26 (SPICS1) | 29 | — | SPICS1 | занят — шина флеш-памяти и PSRAM (SPICS1) |
| GPIO27 (SPIHD) | 31 | — | SPIHD | занят — шина флеш-памяти и PSRAM (SPIHD) |
| GPIO28 (SPIWP) | 32 | — | SPIWP | занят — шина флеш-памяти и PSRAM (SPIWP) |
| GPIO29 (SPICS0) | 33 | — | SPICS0 | занят — шина флеш-памяти и PSRAM (SPICS0) |
| GPIO30 (SPICLK) | 34 | — | SPICLK | занят — шина флеш-памяти и PSRAM (SPICLK) |
| GPIO31 (SPIQ) | 35 | — | SPIQ | занят — шина флеш-памяти и PSRAM (SPIQ) |
| GPIO32 (SPID) | 36 | — | SPID | занят — шина флеш-памяти и PSRAM (SPID) |
| GPIO33 | 37 | — | FSPIHD, SUBSPIHD, SPIIO4 | с оговорками — DQ4 при восьмилинейной флеш-памяти или PSRAM |
| GPIO34 | 38 | — | FSPICS0, SUBSPICS0, SPIIO5 | с оговорками — DQ5 при восьмилинейной флеш-памяти или PSRAM |
| GPIO35 | 39 | — | FSPID, SUBSPID, SPIIO6 | с оговорками — DQ6 при восьмилинейной флеш-памяти или PSRAM |
| GPIO36 | 40 | — | FSPICLK, SUBSPICLK, SPIIO7 | с оговорками — DQ7 при восьмилинейной флеш-памяти или PSRAM |
| GPIO37 | 41 | — | FSPIQ, SUBSPIQ, SPIDQS | с оговорками — DQS при восьмилинейной флеш-памяти или PSRAM |
| GPIO38 | 42 | — | FSPIWP, SUBSPIWP | свободен |
| GPIO39 (MTCK) | 43 | — | MTCK, CLK_OUT3, SUBSPICS1 | с оговорками — JTAG MTCK |
| GPIO40 (MTDO) | 44 | — | MTDO, CLK_OUT2 | с оговорками — JTAG MTDO |
| GPIO41 (MTDI) | 46 | — | MTDI, CLK_OUT1 | с оговорками — JTAG MTDI |
| GPIO42 (MTMS) | 47 | — | MTMS | с оговорками — JTAG MTMS |
| GPIO43 (U0TXD) | 48 | — | U0TXD, CLK_OUT1 | с оговорками — UART0 TX: сообщения загрузчика и прошивка |
| GPIO44 (U0RXD) | 49 | — | U0RXD, CLK_OUT2 | с оговорками — UART0 RX: прошивка через UART |
| GPIO45 | 50 | — | — | с оговорками — strapping-вывод, напряжение VDD_SPI: 1 при сбросе — 1,8 В вместо 3,3 В |
| GPIO46 | 55 | — | — | с оговорками — strapping-вывод, режим загрузки вместе с GPIO0 и вывод сообщений загрузчика; только вход |
Флеш-память и PSRAM
Флеш-память и PSRAM подключаются к шине SPI0/1 на GPIO26–32 — выводы SPICS1, SPIHD, SPIWP, SPICS0, SPICLK, SPIQ, SPID; флеш-память выбирается по SPICS0, PSRAM — по SPICS1. Даташит запрещает использовать выводы, подключённые к памяти в корпусе, для чего-то ещё. В восьмилинейном режиме к шине добавляются GPIO33–37.
Память питается от вывода VDD_SPI: 3,3 В от шины VDD3P3_RTC через внутреннее сопротивление около 5 Ом или 1,8 В от встроенного стабилизатора на ток до 40 мА. Варианты с памятью в корпусе рассчитаны на 3,3 В.
Strapping-выводы
Три вывода при сбросе читаются как перемычки настройки, после сброса они работают как обычные GPIO. Уровни нужно удерживать не меньше 3 мс после появления высокого уровня на CHIP_PU:
| Вывод | По умолчанию | Что задаёт |
|---|---|---|
| GPIO0 | подтяжка вверх, 1 | 1 — запуск программы; 0 вместе с GPIO46 = 0 — загрузка прошивки через USB OTG, UART или SPI |
| GPIO45 | подтяжка вниз, 0 | напряжение VDD_SPI: 0 — 3,3 В, 1 — 1,8 В, если не закреплено eFuse |
| GPIO46 | подтяжка вниз, 0 | режим загрузки вместе с GPIO0; вместе с eFuse управляет сообщениями загрузчика |
Подробнее — на странице «Strapping-выводы ESP32».
Питание выводов и токи
GPIO0–21 питаются от шины VDD3P3_RTC_IO, GPIO26–32 — от VDD_SPI, GPIO33–37 — от VDD_SPI или VDD3P3_CPU, по настройке регистра, а GPIO38–46 — от VDD3P3_CPU. Рекомендованное напряжение VDD3P3_RTC_IO — 3,0–3,6 В, VDD3P3_CPU — 2,8–3,6 В. Высокий уровень на входе — от 0,75 VDD, низкий — до 0,25 VDD, выше VDD + 0,3 В подавать нельзя. Внутренние подтяжки — около 45 кОм.
Сила выхода по умолчанию — 20 мА у всех выводов. При наибольшей силе вывод отдаёт около 40 мА при напряжении не ниже 2,64 В и принимает около 28 мА при 0,495 В. Предельный суммарный выходной ток всех выводов — 1800 мА.
Аналоговые функции
- АЦП — 20 каналов: ADC1_CH0–9 на GPIO1–10 и ADC2_CH0–9 на GPIO11–20. После калибровки погрешность — ±10 мВ в диапазоне 0–700 мВ, ±11 мВ до 950 мВ, ±13 мВ до 1200 мВ и ±17 мВ до 2300 мВ; измерения сделаны при выключенном Wi-Fi.
- ЦАП — DAC_1 на GPIO17 и DAC_2 на GPIO18.
- Сенсоры касания — 14 каналов, TOUCH1–14 на GPIO1–14.
Выводы других чипов — на страницах ESP32, ESP32-S3, ESP32-C3, ESP32-C6 и ESP32-H2.
Частые вопросы
Какие GPIO ESP32-S2 можно использовать без ограничений?
По даташиту свободны 20: GPIO1–18, 21 и 38. GPIO15 и 16 заняты, если подключён кварц 32 кГц. Ещё 16 выводов — strapping GPIO0, 45, 46, USB на GPIO19 и 20, JTAG на GPIO39–42, UART0 на GPIO43 и 44 и линии восьмилинейной памяти GPIO33–37 — применимы с оговорками, а GPIO26–32 заняты флеш-памятью.
Есть ли у ESP32-S2 Bluetooth?
Нет. У ESP32-S2 только Wi-Fi 802.11 b/g/n, зато есть контроллер USB OTG на GPIO19 и GPIO20: через него можно прошивать чип и сделать из платы USB-устройство. Если нужен Bluetooth LE, подходит ESP32-S3 — у него 45 выводов, два ядра и тоже есть USB.
Почему GPIO46 ESP32-S2 не работает как выход?
По таблице функций IO MUX GPIO46 — только вход. Кроме того, это strapping-вывод: вместе с GPIO0 он выбирает режим загрузки и управляет сообщениями загрузчика, поэтому для входа в режим прошивки на нём при сбросе должен быть 0 — его и даёт внутренняя подтяжка вниз.
Сколько каналов АЦП и ЦАП у ESP32-S2?
Двадцать каналов АЦП — ADC1_CH0–9 на GPIO1–10 и ADC2_CH0–9 на GPIO11–20 — и два канала ЦАП: DAC_1 на GPIO17 и DAC_2 на GPIO18. После калибровки погрешность АЦП — от ±10 мВ в диапазоне до 700 мВ до ±17 мВ в диапазоне до 2300 мВ.
Источники
- Espressif. ESP32-S2 Series Datasheet, v1.9 — титул — одно ядро Xtensa LX7, Wi-Fi 802.11 b/g/n, 43 GPIO, QFN56 7×7 мм; табл. 1-1 — ESP32-S2, S2FH2 (снят с производства), S2FH4, S2FN4R2, S2R2, флеш-память и PSRAM в корпусе, VDD_SPI 3,3 или 1,8 В; табл. 2-1 — номера выводов и домены питания, сила выхода по умолчанию 20 мА; табл. 2-3 — функции IO MUX F0–F4, GPIO46 — только вход; табл. 2-6 — RTC_GPIO0–21; табл. 2-8 — сенсоры касания, АЦП, кварц 32 кГц, ЦАП, USB; разд. 2.3.5–2.3.6, табл. 2-9 — приоритеты выводов P1–P4 (эталон тестов); табл. 2-14 — выводы флеш-памяти и PSRAM; разд. 3, табл. 3-1, 3-3, 3-4, 3-5 — strapping-выводы GPIO0, 45, 46, удержание уровней 3 мс; табл. 5-1–5-4 — суммарный выходной ток до 1800 мА, VDD3P3_RTC_IO 3,0–3,6 В, VDD3P3_CPU 2,8–3,6 В, VDD_SPI 3,3 В через 5 Ом или 1,8 В от стабилизатора до 40 мА, VIH 0,75 VDD, VIL 0,25 VDD, подтяжки 45 кОм, IOH 40 мА и IOL 28 мА; табл. 5-6 — погрешность АЦП после калибровки
- Espressif. ESP-IDF v5.4.1: soc/esp32s2/include/soc — adc_channel.h, touch_sensor_channel.h, rtc_io_channel.h (Apache-2.0) — ADC1_CH0–9 на GPIO1–10, ADC2_CH0–9 на GPIO11–20, TOUCH1–14 на GPIO1–14, RTC IO 0–21 на GPIO0–21 — сверка с таблицами 2-6 и 2-8 даташита
Нашли ошибку?
Смотрите также
- ESP32ESP32, S2, S3, C2, C3, C5, C6, H2, P4: ядра, радио, USB, GPIO — сравнение и выбор
- ESP32-S3: выводы и GPIO45 GPIO: функции, свободные и занятые выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- Матрица GPIOПрограммное соединение сигналов периферии ESP32 с любыми выводами
- PSRAMВнешняя оперативная память на шине SPI: размеры, режимы, выводы
- Вывод обвязки загрузкиGPIO, уровень которого при сбросе задаёт режим загрузки
- ULP-сопроцессорМаломощный сопроцессор ESP32 для работы в глубоком сне