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