Перейти к содержанию

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, GPIO248
С оговоркамиGPIO2, GPIO3, GPIO4, GPIO5, GPIO7, GPIO11, GPIO12, GPIO13, GPIO14, GPIO19, GPIO25, GPIO26, GPIO27, GPIO2814
Заняты флеш-памятью и PSRAMGPIO15, GPIO16, GPIO17, GPIO18, GPIO20, GPIO21, GPIO227

С оговорками — это выводы с особой ролью:

  • 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)9XTAL_32K_P, LP_GPIO0, LP_UART_DTRN—свободен
GPIO1 (XTAL_32K_N)10ADC1_CH0, XTAL_32K_N, LP_GPIO1, LP_UART_DSRN—свободен
GPIO2 (MTMS)11ADC1_CH1, LP_GPIO2, LP_UART_RTSN, LP_I2C_SDAMTMS, FSPIQс оговорками — strapping-вывод, в таблице 3-1 даташита, назначение не описано; JTAG MTMS
GPIO3 (MTDI)12ADC1_CH2, LP_GPIO3, LP_UART_CTSN, LP_I2C_SCLMTDIс оговорками — strapping-вывод, фронты тактов ведомого SDIO вместе с GPIO25; JTAG MTDI
GPIO4 (MTCK)13ADC1_CH3, LP_GPIO4, LP_UART_RXDMTCK, FSPIHDс оговорками — JTAG MTCK
GPIO5 (MTDO)14ADC1_CH4, LP_GPIO5, LP_UART_TXDMTDO, FSPIWPс оговорками — JTAG MTDO
GPIO615ADC1_CH5, LP_GPIO6FSPICLKсвободен
GPIO716—SDIO_DATA1, FSPIDс оговорками — strapping-вывод, источник сигналов JTAG, если это разрешено битами eFuse
GPIO817PAD_COMP0SDIO_DATA0свободен
GPIO918PAD_COMP1SDIO_CLKсвободен
GPIO1019—SDIO_CMD, FSPICS0свободен
GPIO11 (U0TXD)20—U0TXDс оговорками — UART0 TX: сообщения загрузчика и прошивка
GPIO12 (U0RXD)21—U0RXDс оговорками — UART0 RX: прошивка через UART
GPIO1322USB_D-SDIO_DATA3с оговорками — USB D−, по умолчанию у USB Serial/JTAG
GPIO1423USB_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)29VDD_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 не подключён
GPIO2333——свободен
GPIO2434——свободен
GPIO2535——с оговорками — strapping-вывод, фронты тактов ведомого SDIO вместе с MTDI
GPIO2636——с оговорками — strapping-вывод, режим загрузки вместе с GPIO27 и GPIO28
GPIO2737——с оговорками — strapping-вывод, режим загрузки; управляет сообщениями загрузчика в UART0
GPIO2838——с оговорками — 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подтяжка вверх, 11 — запуск программы; 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 мВ.

Источники

  1. 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 — погрешность АЦП после калибровки
  2. 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 даташита

Нашли ошибку?