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, GPIO18 | 6 |
| С оговорками | GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9, GPIO19, GPIO20 | 8 |
С оговорками — это выводы с особой ролью:
- 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 | Использование |
|---|---|---|---|---|
| GPIO0 | 4 | ADC1_CH0 | — | свободен |
| GPIO1 | 5 | ADC1_CH1 | — | свободен |
| GPIO2 | 6 | ADC1_CH2 | FSPIQ | свободен |
| GPIO3 | 8 | ADC1_CH3 | — | свободен |
| GPIO4 (MTMS) | 9 | ADC1_CH4 | MTMS, FSPIHD | с оговорками — JTAG MTMS |
| GPIO5 (MTDI) | 10 | — | MTDI, FSPIWP | с оговорками — JTAG MTDI |
| GPIO6 (MTCK) | 12 | — | MTCK, FSPICLK | с оговорками — JTAG MTCK |
| GPIO7 (MTDO) | 13 | — | MTDO, FSPID | с оговорками — JTAG MTDO |
| GPIO8 | 14 | — | — | с оговорками — strapping-вывод, для загрузки через UART должен быть 1; управляет сообщениями загрузчика в UART0 |
| GPIO9 | 15 | — | — | с оговорками — strapping-вывод, режим загрузки: 0 при сбросе — загрузка прошивки через UART |
| GPIO10 | 16 | — | FSPICS0 | свободен |
| GPIO18 | 18 | — | — | свободен |
| GPIO19 (U0RXD) | 19 | — | U0RXD | с оговорками — UART0 RX: прошивка через UART |
| GPIO20 (U0TXD) | 20 | — | U0TXD | с оговорками — UART0 TX: сообщения загрузчика и прошивка |
Strapping-выводы и загрузка
Два вывода при сбросе читаются как перемычки настройки, а после сброса работают как обычные GPIO. Уровни нужно удерживать не меньше 3 мс после появления высокого уровня на CHIP_EN:
| Вывод | По умолчанию | Запуск программы | Загрузка прошивки по UART |
|---|---|---|---|
| GPIO9 | подтяжка вверх, 1 | 1 | 0 |
| 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 и более новых чипов.
Источники
- 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 — погрешность АЦП после калибровки
- Espressif. ESP-IDF v5.4.1: soc/esp32c2/include/soc/adc_channel.h (Apache-2.0) — каналы ADC1_CH0–4 на GPIO0–4 — сверка с таблицей 6 даташита
Нашли ошибку?
Смотрите также
- ESP32ESP32, S2, S3, C2, C3, C5, C6, H2, P4: ядра, радио, USB, GPIO — сравнение и выбор
- ESP8684-MINI-1: выводы модуля53 площадки, 14 GPIO: функции, strapping, UART0, варианты, питание
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи
- ESP8266ESP8266EX: статус, отличия от ESP32, выводы и загрузка, АЦП, сон через GPIO16
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- Прошивка ESP32Загрузчик ПЗУ, GPIO0 и автосброс, write-flash и адреса, ошибки esptool и питание
- Матрица GPIOПрограммное соединение сигналов периферии ESP32 с любыми выводами
- Вывод обвязки загрузкиGPIO, уровень которого при сбросе задаёт режим загрузки