ESP32-C5: выводы чипа и GPIO
ESP32-C5 — чип Espressif с двухдиапазонным Wi-Fi 6, 2,4 и 5 ГГц; у него 29 GPIO в корпусе QFN48. Без оговорок свободны восемь, ещё 14 связаны с загрузкой, отладкой, USB или питанием памяти, а семь заняты шиной флеш-памяти и PSRAM. Здесь — таблица всех GPIO с функциями и номерами выводов корпуса и разбор ограничений по даташиту Espressif.
Обновлено Редакция GAW
ESP32-C5 — чип Espressif на ядре RISC-V с Wi-Fi 6 в диапазонах 2,4 и 5 ГГц, Bluetooth LE и радио IEEE 802.15.4 для Zigbee и Thread. Он выпускается в корпусе QFN48 размером 6×6 мм с PSRAM внутри — ESP32-C5HR2 на 2 МБ и HR8 на 8 МБ — или с флеш-памятью 4 МБ внутри (HF4); вариант NF8R2LA в корпусе LGA48 пока не в массовом производстве. Выводов общего назначения — 29: GPIO0–28. Сравнение с другими чипами — на странице «ESP32 и другие чипы Espressif».
У каждого вывода до трёх прямых функций IO MUX — JTAG, UART0, шины SPI, интерфейс ведомого SDIO, — а почти любой сигнал периферии можно вывести на любой GPIO через матрицу GPIO. GPIO0–6 подключены ещё и к LP IO MUX: в глубоком сне ими управляют малопотребляющее ядро и периферия LP — UART и I²C.
Какие выводы свободны
Даташит делит выводы по приоритету на свободные, с оговорками и занятые:
| Группа | Выводы | Число |
|---|---|---|
| Свободные | GPIO0, GPIO1, GPIO6, GPIO8, GPIO9, GPIO10, GPIO23, GPIO24 | 8 |
| С оговорками | GPIO2, GPIO3, GPIO4, GPIO5, GPIO7, GPIO11, GPIO12, GPIO13, GPIO14, GPIO19, GPIO25, GPIO26, GPIO27, GPIO28 | 14 |
| Заняты флеш-памятью и PSRAM | GPIO15, GPIO16, GPIO17, GPIO18, GPIO20, GPIO21, GPIO22 | 7 |
С оговорками — это выводы с особой ролью:
- GPIO2, 3, 7, 25, 26, 27, 28 — strapping-выводы: режим загрузки, фронты SDIO, источник JTAG.
- GPIO2–5 — JTAG (MTMS, MTDI, MTCK, MTDO); отлаживать можно и через USB Serial/JTAG, тогда эти выводы свободны.
- GPIO11 и GPIO12 — UART0: сообщения загрузчика и прошивка.
- GPIO13 и GPIO14 — USB D− и D+, по умолчанию у контроллера USB Serial/JTAG; на них же выведены линии DATA3 и DATA2 ведомого SDIO.
- GPIO19 — вывод VDD_SPI, питание флеш-памяти; как GPIO — только при отдельном питании памяти. В тексте раздела 2.3.5 даташита он по ошибке назван GPIO27, таблицы выводов указывают GPIO19.
Таблица выводов
В таблице — все GPIO, номер вывода корпуса QFN48 и, если вывод называется не GPIOn, его имя в даташите. Каналы АЦП и выводы LP сверены с заголовками ESP-IDF.
| GPIO | Вывод QFN48 | Аналог и LP | Функции IO MUX | Использование |
|---|---|---|---|---|
| GPIO0 (XTAL_32K_P) | 9 | XTAL_32K_P, LP_GPIO0, LP_UART_DTRN | — | свободен |
| GPIO1 (XTAL_32K_N) | 10 | ADC1_CH0, XTAL_32K_N, LP_GPIO1, LP_UART_DSRN | — | свободен |
| GPIO2 (MTMS) | 11 | ADC1_CH1, LP_GPIO2, LP_UART_RTSN, LP_I2C_SDA | MTMS, FSPIQ | с оговорками — strapping-вывод, в таблице 3-1 даташита, назначение не описано; JTAG MTMS |
| GPIO3 (MTDI) | 12 | ADC1_CH2, LP_GPIO3, LP_UART_CTSN, LP_I2C_SCL | MTDI | с оговорками — strapping-вывод, фронты тактов ведомого SDIO вместе с GPIO25; JTAG MTDI |
| GPIO4 (MTCK) | 13 | ADC1_CH3, LP_GPIO4, LP_UART_RXD | MTCK, FSPIHD | с оговорками — JTAG MTCK |
| GPIO5 (MTDO) | 14 | ADC1_CH4, LP_GPIO5, LP_UART_TXD | MTDO, FSPIWP | с оговорками — JTAG MTDO |
| GPIO6 | 15 | ADC1_CH5, LP_GPIO6 | FSPICLK | свободен |
| GPIO7 | 16 | — | SDIO_DATA1, FSPID | с оговорками — strapping-вывод, источник сигналов JTAG, если это разрешено битами eFuse |
| GPIO8 | 17 | PAD_COMP0 | SDIO_DATA0 | свободен |
| GPIO9 | 18 | PAD_COMP1 | SDIO_CLK | свободен |
| GPIO10 | 19 | — | SDIO_CMD, FSPICS0 | свободен |
| GPIO11 (U0TXD) | 20 | — | U0TXD | с оговорками — UART0 TX: сообщения загрузчика и прошивка |
| GPIO12 (U0RXD) | 21 | — | U0RXD | с оговорками — UART0 RX: прошивка через UART |
| GPIO13 | 22 | USB_D- | SDIO_DATA3 | с оговорками — USB D−, по умолчанию у USB Serial/JTAG |
| GPIO14 | 23 | USB_D+ | SDIO_DATA2 | с оговорками — USB D+, по умолчанию у USB Serial/JTAG |
| GPIO15 (SPICS1) | 25 | — | SPICS1 | занят — шина флеш-памяти и PSRAM (SPICS1) |
| GPIO16 (SPICS0) | 26 | — | SPICS0 | занят — шина флеш-памяти и PSRAM (SPICS0); у ESP32-C5HF4 не подключён |
| GPIO17 (SPIQ) | 27 | — | SPIQ | занят — шина флеш-памяти и PSRAM (SPIQ); у ESP32-C5HF4 не подключён |
| GPIO18 (SPIWP) | 28 | — | SPIWP | занят — шина флеш-памяти и PSRAM (SPIWP); у ESP32-C5HF4 не подключён |
| GPIO19 (VDD_SPI) | 29 | VDD_SPI | — | с оговорками — вывод питания флеш-памяти VDD_SPI; у ESP32-C5HF4 не подключён |
| GPIO20 (SPIHD) | 30 | — | SPIHD | занят — шина флеш-памяти и PSRAM (SPIHD); у ESP32-C5HF4 не подключён |
| GPIO21 (SPICLK) | 31 | — | SPICLK | занят — шина флеш-памяти и PSRAM (SPICLK); у ESP32-C5HF4 не подключён |
| GPIO22 (SPID) | 32 | — | SPID | занят — шина флеш-памяти и PSRAM (SPID); у ESP32-C5HF4 не подключён |
| GPIO23 | 33 | — | — | свободен |
| GPIO24 | 34 | — | — | свободен |
| GPIO25 | 35 | — | — | с оговорками — strapping-вывод, фронты тактов ведомого SDIO вместе с MTDI |
| GPIO26 | 36 | — | — | с оговорками — strapping-вывод, режим загрузки вместе с GPIO27 и GPIO28 |
| GPIO27 | 37 | — | — | с оговорками — strapping-вывод, режим загрузки; управляет сообщениями загрузчика в UART0 |
| GPIO28 | 38 | — | — | с оговорками — strapping-вывод, режим загрузки: 1 — запуск программы, 0 — загрузка прошивки |
На GPIO8 и GPIO9 есть аналоговые входы PAD_COMP0 и PAD_COMP1 — по даташиту это входы аналогового компаратора напряжения.
Флеш-память и PSRAM
Флеш-память у ESP32-C5HR2 и HR8 внешняя: она подключается к выводам SPICS0, SPIQ, SPIWP, SPIHD, SPICLK и SPID — GPIO16–18 и GPIO20–22. Внешнюю PSRAM подключают к тем же линиям, а её выбор — к SPICS1, GPIO15. Даташит не рекомендует использовать эти выводы для чего-то ещё. У ESP32-C5HF4 флеш-память внутри, и выводы SPICS0, SPIQ, SPIWP, VDD_SPI, SPIHD, SPICLK и SPID не подключены — остаётся только SPICS1.
Strapping-выводы
Семь выводов при сбросе читаются как перемычки настройки, а после сброса работают как обычные GPIO. Уровни нужно удерживать не меньше 3 мс после появления высокого уровня на CHIP_PU:
| Вывод | По умолчанию | Что задаёт |
|---|---|---|
| GPIO28 | подтяжка вверх, 1 | 1 — запуск программы; 0 — загрузка прошивки |
| GPIO27 | подтяжка вверх, 1 | при GPIO28 = 0: 1 — загрузка через USB или UART, 0 вместе с GPIO26 = 0 — через UART или SDIO; вместе с eFuse управляет сообщениями загрузчика в UART0 |
| GPIO26 | без подтяжки | режим загрузки вместе с GPIO27 и GPIO28 |
| GPIO25, GPIO3 (MTDI) | без подтяжки | фронты выборки и выдачи сигналов ведомого SDIO |
| GPIO7 | без подтяжки | источник сигналов JTAG, если это разрешено битами eFuse |
| GPIO2 (MTMS) | без подтяжки | указан в таблице 3-1 даташита, назначение в нём не описано |
Подробнее — на странице «Strapping-выводы ESP32».
Питание выводов и токи
GPIO0–12 питаются от шины VDDPST1, GPIO13 и 14 — от VDDPST2, выводы памяти GPIO15–22 — от VDD_SPI, а GPIO23–28 — от VDDPST3. Рекомендованное напряжение всех шин — 3,0–3,6 В. Высокий уровень на входе — от 0,75 VDD, низкий — до 0,25 VDD, выше VDD + 0,3 В подавать нельзя. Внутренние подтяжки — около 45 кОм.
Сила выхода по умолчанию — 20 мА, у GPIO13 и GPIO14 — 40 мА. При наибольшей силе вывод отдаёт около 40 мА при напряжении не ниже 2,64 В и принимает около 28 мА при 0,495 В.
АЦП
У ESP32-C5 шесть каналов АЦП: ADC1_CH0–5 на GPIO1–6. После калибровки погрешность — ±10 мВ в диапазонах 0–1000 и 0–1300 мВ, ±12 мВ до 1900 мВ и ±15 мВ до 3300 мВ при наибольшем ослаблении; измерения сделаны при выключенном Wi-Fi.
Как выводы чипа разведены на модуле — на странице «ESP32-C5-WROOM-1: выводы модуля». Выводы других чипов — на страницах ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 и ESP32-H2.
Частые вопросы
Какие GPIO ESP32-C5 можно использовать без ограничений?
По даташиту свободны восемь: GPIO0, 1, 6, 8, 9, 10, 23 и 24; GPIO0 и GPIO1 заняты, если подключён кварц 32 кГц. Ещё 14 — strapping-выводы, JTAG, UART0, USB и вывод питания флеш-памяти GPIO19 — применимы с оговорками, а GPIO15–18 и 20–22 заняты шиной флеш-памяти и PSRAM.
Какой вывод ESP32-C5 переводит его в режим прошивки?
GPIO28: с внутренней подтяжкой вверх на нём 1, и чип запускает программу из флеш-памяти. Если при сбросе GPIO28 = 0, а GPIO27 = 1, чип входит в режим загрузки через USB или UART; если GPIO26, 27 и 28 все в нуле — в режим загрузки через UART или SDIO. Уровни нужно удерживать не меньше 3 мс после включения CHIP_PU.
Чем ESP32-C5 отличается от ESP32-C6?
У ESP32-C5 Wi-Fi 6 работает в обоих диапазонах — 2,4 и 5 ГГц, а у ESP32-C6 только в 2,4 ГГц; основное ядро C5 быстрее — до 240 МГц против 160 МГц у C6. Оба чипа поддерживают Bluetooth LE, Zigbee и Thread. У C5 29 GPIO в корпусе 6×6 мм, у C6 — 30 или 22 в корпусе 5×5 мм.
Сколько каналов АЦП у ESP32-C5?
Шесть: ADC1_CH0–5 на GPIO1–6. По даташиту после калибровки погрешность — ±10 мВ в диапазонах до 1000 и до 1300 мВ, ±12 мВ до 1900 мВ и ±15 мВ до 3300 мВ.
Источники
- Espressif. ESP32-C5 Series Datasheet, v1.5 — титул — одно ядро RISC-V, Wi-Fi 6 2,4 и 5 ГГц, Bluetooth 5 (LE), Zigbee и Thread, внешняя флеш-память и PSRAM, 29 GPIO, QFN48 или LGA48 6×6 мм; табл. 1-1 — ESP32-C5HR2 и HR8 (PSRAM 2 и 8 МБ), HF4 (флеш-память 4 МБ), NF8R2LA (LGA48, ещё не в массовом производстве); табл. 2-1 — выводы и домены VDDPST1, VDDPST2, VDD_SPI, VDDPST3 (эталон тестов), сила выхода 20 мА, у GPIO13 и 14 — 40 мА; у HF4 выводы SPICS0, SPIQ, SPIWP, VDD_SPI, SPIHD, SPICLK, SPID не подключены; табл. 2-3 — функции IO MUX; табл. 2-5 — LP IO MUX на GPIO0–6; табл. 2-7 — АЦП на GPIO1–6, компаратор PAD_COMP0/1 на GPIO8/9, кварц 32 кГц, USB, VDD_SPI на GPIO19; разд. 2.3.4–2.3.5, табл. 2-8 — приоритеты выводов P1–P4 (эталон тестов; в тексте разд. 2.3.5 вывод VDD_SPI ошибочно назван GPIO27); табл. 2-13, 2-14 — выводы внешней флеш-памяти и PSRAM; разд. 3, табл. 3-1, 3-3, 3-4 — strapping-выводы MTMS, MTDI, GPIO7, 25–28, удержание уровней 3 мс; табл. 5-2–5-4 — питание 3,0–3,6 В, VIH 0,75 VDD, VIL 0,25 VDD, подтяжки 45 кОм, IOH 40 мА и IOL 28 мА; табл. 5-6 — погрешность АЦП после калибровки
- Espressif. ESP-IDF v5.5: soc/esp32c5/include/soc/adc_channel.h и rtc_io_channel.h (Apache-2.0) — каналы ADC1_CH0–5 на GPIO1–6 и выводы LP_GPIO0–6 на GPIO0–6 — сверка с таблицами 2-5 и 2-7 даташита
Нашли ошибку?
Смотрите также
- ESP32ESP32, S2, S3, C2, C3, C5, C6, H2, P4: ядра, радио, USB, GPIO — сравнение и выбор
- ESP32-C5-WROOM-1: выводы модуля29 выводов, 22 GPIO: функции, IO15 и PSRAM, strapping, USB, варианты
- ESP32-C6: выводы и GPIO30 или 22 GPIO: функции, свободные выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- Матрица GPIOПрограммное соединение сигналов периферии ESP32 с любыми выводами
- PSRAMВнешняя оперативная память на шине SPI: размеры, режимы, выводы
- USB Serial/JTAGВстроенный в ESP32 контроллер USB: COM-порт и JTAG без внешних микросхем
- Вывод обвязки загрузкиGPIO, уровень которого при сбросе задаёт режим загрузки