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

ESP32-C2 (ESP8684): выводы чипа и GPIO

ESP32-C2 — чип Espressif с Wi-Fi и Bluetooth LE и самым малым в семействе числом выводов: 14 общего назначения в корпусе QFN24 4×4 мм и флеш-память внутри. Выпускается он под именем ESP8684. Здесь — таблица всех GPIO с функциями и номерами выводов корпуса и разбор ограничений по даташиту Espressif.

Обновлено Редакция GAW

ESP32-C2 — чип Espressif с наименьшим в семействе ESP32 числом выводов: одно ядро RISC-V до 120 МГц, Wi-Fi 802.11 b/g/n и Bluetooth LE, флеш-память 2 или 4 МБ в корпусе QFN24 размером 4×4 мм. Группа ESP32-C2 сейчас состоит из одной серии — ESP8684, поэтому на чипах и в даташите стоит это имя: ESP8684H2X с флеш-памятью 2 МБ и ESP8684H4X с 4 МБ. Сравнение с другими чипами — на странице «ESP32 и другие чипы Espressif».

Выводов общего назначения 14: GPIO0–10 и GPIO18–20; выводы флеш-памяти наружу не выведены. У части выводов есть прямые функции IO MUX — JTAG, UART0, шина SPI2, — а остальные сигналы назначаются на любой GPIO через матрицу GPIO.

Какие выводы свободны

Даташит советует в первую очередь брать выводы без особых функций, а strapping-выводы, JTAG и UART — если первых не хватает:

ГруппаВыводыЧисло
СвободныеGPIO0, GPIO1, GPIO2, GPIO3, GPIO10, GPIO186
С оговоркамиGPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9, GPIO19, GPIO208

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

  • GPIO8 и GPIO9 — strapping-выводы: режим загрузки и сообщения загрузчика.
  • GPIO4–7 — JTAG (MTMS, MTDI, MTCK, MTDO).
  • GPIO19 и GPIO20 — UART0: через него загрузчик выводит сообщения и принимает прошивку. USB у ESP32-C2 нет, поэтому прошивают его именно через эти выводы.

Таблица выводов

В таблице — все GPIO, номер вывода корпуса QFN24 и, если вывод называется не GPIOn, его имя в даташите. Каналы АЦП сверены с заголовками ESP-IDF.

GPIOВывод QFN24АЦПФункции IO MUXИспользование
GPIO04ADC1_CH0—свободен
GPIO15ADC1_CH1—свободен
GPIO26ADC1_CH2FSPIQсвободен
GPIO38ADC1_CH3—свободен
GPIO4 (MTMS)9ADC1_CH4MTMS, FSPIHDс оговорками — JTAG MTMS
GPIO5 (MTDI)10—MTDI, FSPIWPс оговорками — JTAG MTDI
GPIO6 (MTCK)12—MTCK, FSPICLKс оговорками — JTAG MTCK
GPIO7 (MTDO)13—MTDO, FSPIDс оговорками — JTAG MTDO
GPIO814——с оговорками — strapping-вывод, для загрузки через UART должен быть 1; управляет сообщениями загрузчика в UART0
GPIO915——с оговорками — strapping-вывод, режим загрузки: 0 при сбросе — загрузка прошивки через UART
GPIO1016—FSPICS0свободен
GPIO1818——свободен
GPIO19 (U0RXD)19—U0RXDс оговорками — UART0 RX: прошивка через UART
GPIO20 (U0TXD)20—U0TXDс оговорками — UART0 TX: сообщения загрузчика и прошивка

Strapping-выводы и загрузка

Два вывода при сбросе читаются как перемычки настройки, а после сброса работают как обычные GPIO. Уровни нужно удерживать не меньше 3 мс после появления высокого уровня на CHIP_EN:

ВыводПо умолчаниюЗапуск программыЗагрузка прошивки по UART
GPIO9подтяжка вверх, 110
GPIO8не заданлюбой1

GPIO8 вместе с битом eFuse управляет ещё и выводом сообщений загрузчика в UART0. Подробнее — на странице «Strapping-выводы ESP32».

Кварц 26 или 40 МГц

ESP32-C2 работает от кварца 26 или 40 МГц, но определить его частоту сам не может, и в eFuse она не записана. Загрузчик в ПЗУ считает, что кварц на 40 МГц, и выводит сообщения на 115200 бит/с; с кварцем 26 МГц реальная скорость будет около 74880 бит/с. Поэтому частоту кварца указывают в настройках программы, а монитор порта для сообщений загрузчика открывают на той скорости, которая соответствует кварцу на плате.

Питание выводов и токи

GPIO0–5 питаются от шины VDD3P3_RTC, остальные — от VDD3P3_CPU. Рекомендованное напряжение — 3,0–3,6 В. Высокий уровень на входе — от 0,75 VDD, выше VDD + 0,3 В подавать нельзя. Сила выхода по умолчанию — 20 мА; при наибольшей силе вывод отдаёт около 40 мА и принимает около 28 мА. Предельный суммарный выходной ток всех выводов — 730 мА.

АЦП

У ESP32-C2 пять каналов АЦП: ADC1_CH0–4 на GPIO0–4. После калибровки погрешность — ±5 мВ в диапазоне 0–950 мВ без ослабления и ±10 мВ в диапазоне 0–2800 мВ при наибольшем ослаблении.

Все 14 GPIO выведены на модуль ESP8684-MINI-1. Выводы чипов с USB — на страницах ESP32-C3, ESP32-C6 и ESP32-S3; о более старом чипе Espressif только с Wi-Fi — статья «ESP8266».

Частые вопросы

Чем ESP32-C2 отличается от ESP8684?

Ничем: ESP32-C2 — название группы чипов, а ESP8684 — единственная серия в ней. Чипы ESP8684H2X и H4X отличаются только объёмом флеш-памяти в корпусе — 2 или 4 МБ. Это замена прежних ESP8684H2 и H4: у ревизии v2.0 на 20 КБ больше оперативной памяти и, в зависимости от программы, около 100 КБ флеш-памяти в запасе.

Какие GPIO ESP32-C2 можно использовать без ограничений?

Шесть: GPIO0, 1, 2, 3, 10 и 18. Остальные восемь — strapping-выводы GPIO8 и 9, JTAG на GPIO4–7 и UART0 на GPIO19 и 20 — можно занять, учитывая их роль: например, JTAG не нужен, если чип не отлаживают, а GPIO9 должен быть в единице при сбросе.

Почему ESP32-C2 при загрузке выводит в порт мусор на 115200?

ESP32-C2 работает от кварца 26 или 40 МГц и не умеет сам определять его частоту. Загрузчик в ПЗУ считает, что кварц на 40 МГц, и выводит сообщения на 115200 бит/с; если на плате кварц 26 МГц, реальная скорость будет около 74880 бит/с. Откройте монитор порта на этой скорости, а в настройках проекта ESP-IDF укажите частоту кварца.

Есть ли у ESP32-C2 USB?

Нет. Прошивку в ESP32-C2 загружают через UART0 — GPIO19 и GPIO20 — внешним мостом USB-UART, как у классического ESP32. Встроенный контроллер USB Serial/JTAG есть у ESP32-C3 и более новых чипов.

Источники

  1. Espressif. ESP8684 Series Datasheet (группа ESP32-C2), v2.3 — титул — серия ESP8684 относится к группе ESP32-C2, одно ядро RISC-V, Wi-Fi и Bluetooth 5 (LE), флеш-память 2 или 4 МБ в корпусе, 14 GPIO, QFN24 4×4 мм; функции — ядро до 120 МГц, три SPI, два UART, I²C, 6 каналов LED PWM, АЦП до 5 каналов; табл. 1 — ESP8684H2X и H4X, ревизия v2.0, замена H2 и H4; табл. 2 — номера выводов и домены VDD3P3_RTC, VDD3P3_CPU (эталон тестов), сила выхода по умолчанию 20 мА; табл. 4 — функции IO MUX; табл. 6 — АЦП на GPIO0–4; разд. 2.3.3 — выводы с важными функциями: strapping, JTAG, UART; разд. 3, табл. 10, 11, 12 — strapping-выводы GPIO8 и GPIO9, удержание уровней 3 мс, загрузка только через UART; разд. 3.3 — кварц 26 или 40 МГц, загрузчик считает, что 40 МГц, с кварцем 26 МГц скорость UART около 74880 бит/с; табл. 15–17 — питание 3,0–3,6 В, суммарный выходной ток до 730 мА, VIH 0,75 VDD, IOH 40 мА, IOL 28 мА; табл. 19 — погрешность АЦП после калибровки
  2. Espressif. ESP-IDF v5.4.1: soc/esp32c2/include/soc/adc_channel.h (Apache-2.0) — каналы ADC1_CH0–4 на GPIO0–4 — сверка с таблицей 6 даташита

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