ESP32-C3-DevKitM-1: распиновка и устройство платы
Плата ESP32-C3-DevKitM-1 по руководству, схеме и чертежу Espressif: где какой из 30 контактов, какие функции ESP32-C3 доступны на каждом, почему GPIO8 одновременно светодиод, вывод обвязки загрузки и SDA в Arduino и где взять встроенный USB.
Обновлено Редакция GAW
ESP32-C3-DevKitM-1 — небольшая отладочная плата Espressif на модуле ESP32-C3-MINI-1 или -1U. Внутри модуля — ESP32-C3 с одним ядром RISC-V и флеш-памятью 4 МБ в корпусе чипа. Свободные выводы модуля выведены на два разъёма по 15 контактов, внизу — micro-USB через мост USB-UART.
| Параметр | Значение |
|---|---|
| Микроконтроллер | ESP32-C3: одно ядро RISC-V до 160 МГц |
| Память | 400 КБ SRAM, 384 КБ ПЗУ, флеш 4 МБ в корпусе чипа |
| Радио | Wi-Fi 802.11 b/g/n (2,4 ГГц), Bluetooth 5 (LE) |
| Контакты | 2 × 15 с шагом 2,54 мм: 15 GPIO |
| Периферия ESP32-C3 | 2 UART, I²C, I²S, SPI, TWAI (CAN), 6 каналов LED PWM, USB Serial/JTAG |
| Аналоговые | 2 АЦП по 12 бит, 6 каналов |
| USB | micro-USB, мост USB-UART CP2102N |
| Питание | 5 В от USB или контакта 5V, либо 3,3 В на контакт 3V3 |
| Размер | 25,40 × 38,91 мм, антенна модуля выступает за край |
Распиновка
Плата нарисована сверху, антенной вверх: J1 слева, J3 справа, оба нумеруются от антенны.
- ввод-вывод
- питание и земля
- управление: RST
- выбранная функция
Контакты и функции
Функции — по таблицам 2-4 и 2-6 даташита ESP32-C3. Цифровые интерфейсы, кроме показанных, через матрицу GPIO выводятся почти на любой вывод.
| Контакт | Подпись | GPIO | АЦП | IO MUX | Ещё |
|---|---|---|---|---|---|
| J1-1 | GND | — | общий провод | ||
| J1-2 | 3V3 | — | 3,3 В | ||
| J1-3 | 3V3 | — | 3,3 В | ||
| J1-4 | IO2 | 2 | ADC1_CH2 | FSPIQ | вывод обвязки загрузки (без подтяжки): режим загрузки не выбирает, но даташит советует подтяжку вверх |
| J1-5 | IO3 | 3 | ADC1_CH3 | — | |
| J1-6 | GND | — | общий провод | ||
| J1-7 | RST | — | CHIP_PU: низкий уровень выключает чип | ||
| J1-8 | GND | — | общий провод | ||
| J1-9 | IO0 | 0 | ADC1_CH0 | XTAL_32K_P | вход кварца 32 кГц (XTAL_32K_P) |
| J1-10 | IO1 | 1 | ADC1_CH1 | XTAL_32K_N | вход кварца 32 кГц (XTAL_32K_N) |
| J1-11 | IO10 | 10 | — | FSPICS0 | |
| J1-12 | GND | — | общий провод | ||
| J1-13 | 5V | — | 5 В | ||
| J1-14 | 5V | — | 5 В | ||
| J1-15 | GND | — | общий провод | ||
| J3-1 | GND | — | общий провод | ||
| J3-2 | TX | 21 | — | U0TXD | в Arduino-ESP32 по умолчанию Serial TX |
| J3-3 | RX | 20 | — | U0RXD | в Arduino-ESP32 по умолчанию Serial RX |
| J3-4 | GND | — | общий провод | ||
| J3-5 | IO9 | 9 | — | — | вывод обвязки загрузки (подтяжка вверх): режим загрузки: 0 при сбросе — загрузка через USB или UART; в Arduino-ESP32 по умолчанию SCL (Wire) |
| J3-6 | IO8 | 8 | — | — | вывод обвязки загрузки (без подтяжки): для загрузки через USB или UART должен быть 1; управляет выводом сообщений загрузчика; в Arduino-ESP32 по умолчанию SDA (Wire) |
| J3-7 | GND | — | общий провод | ||
| J3-8 | IO7 | 7 | — | MTDO, FSPID | в Arduino-ESP32 по умолчанию SS (SPI) |
| J3-9 | IO6 | 6 | — | MTCK, FSPICLK | в Arduino-ESP32 по умолчанию MOSI (SPI) |
| J3-10 | IO5 | 5 | ADC2_CH0 | MTDI, FSPIWP | в Arduino-ESP32 по умолчанию MISO (SPI) |
| J3-11 | IO4 | 4 | ADC1_CH4 | MTMS, FSPIHD | в Arduino-ESP32 по умолчанию SCK (SPI) |
| J3-12 | GND | — | общий провод | ||
| J3-13 | IO18 | 18 | — | USB_D- | по умолчанию подключён к контроллеру USB Serial/JTAG |
| J3-14 | IO19 | 19 | — | USB_D+ | по умолчанию подключён к контроллеру USB Serial/JTAG |
| J3-15 | GND | — | общий провод | ||
GPIO8 и GPIO9: светодиод, загрузка и I²C
На этих двух выводах сходится сразу несколько ролей:
| Вывод | На плате | При сбросе (даташит) | В Arduino-ESP32 3.3.0 |
|---|---|---|---|
| GPIO8 | адресный RGB-светодиод SK68XXMINI-HS, подтяжка 10 кОм к 3,3 В | для загрузки через USB или UART должен быть 1; управляет выводом сообщений загрузчика в UART0 | SDA, PIN_RGB_LED |
| GPIO9 | кнопка Boot | подтянут вверх; 0 — загрузка через USB или UART | SCL |
Удерживая кнопку Boot и нажимая Reset, плату переводят в режим загрузки прошивки — по схеме кнопка замыкает GPIO9 на землю, а резистор R20 держит GPIO8 в единице. Программа прошивки делает то же сама: линии DTR и RTS моста через транзисторы управляют CHIP_PU и GPIO9. Подключая к GPIO8 и GPIO9 датчики I²C с подтяжками или другие схемы, следите, чтобы они не меняли уровни в момент сброса. А шину I²C удобнее перенести на свободные выводы: на ESP32-C3 её можно назначить почти на любой GPIO. Все 22 GPIO чипа с функциями и ограничениями — на странице «ESP32-C3: выводы чипа и GPIO».
Третий вывод обвязки — GPIO2: режим загрузки он не выбирает, но даташит советует подтянуть его вверх, чтобы избежать помех.
Другие ограничения
- Флеш-память: GPIO12–GPIO17 соединены с флеш-памятью в корпусе чипа, GPIO11 — вывод VDD_SPI, её питание. На разъёмы они не выведены.
- USB: GPIO18 и GPIO19 — линии USB_D− и USB_D+ контроллера USB Serial/JTAG; по умолчанию они подключены к нему. Разъём micro-USB платы идёт к мосту CP2102N; на схеме есть места для перемычек R2 и R3 к GPIO18 и GPIO19, но они не устанавливаются.
- JTAG и UART0: GPIO4–GPIO7 — выводы JTAG (MTMS, MTDI, MTCK, MTDO), GPIO20 и GPIO21 — UART0 моста USB-UART. По даташиту JTAG можно взять через USB Serial/JTAG и освободить эти выводы.
- АЦП: шесть каналов — ADC1 на GPIO0–GPIO4 и ADC2 на GPIO5. GPIO0 и GPIO1 могут быть входом кварца 32 кГц.
Питание
Плату питают 5 В от micro-USB или контакта 5V — стабилизатор SGM2212 даёт 3,3 В — либо 3,3 В на контакт 3V3. Выводы ESP32-C3 рассчитаны на 3,3 В, к 5-вольтовым устройствам их подключают через преобразователь уровней.
Другие платы на чипах Espressif — ESP32-S3-DevKitC-1 с двумя портами USB и ESP32-DevKitC V4, обзор семейства — в разделе ESP32.
Частые вопросы
Какие выводы ESP32-C3 нельзя трогать при загрузке?
GPIO2, GPIO8 и GPIO9 — выводы обвязки загрузки. По даташиту режим загрузки задают GPIO9 (подтянут вверх: 0 при сбросе — загрузка через USB или UART) и GPIO8, который для этого должен быть в единице. GPIO2 режим не выбирает, но даташит советует подтянуть его вверх. Схема, подключённая к этим выводам, не должна менять уровни в момент сброса.
Почему в Arduino I²C на ESP32-C3 конфликтует со светодиодом?
В варианте esp32c3 Arduino-ESP32 3.3.0 SDA по умолчанию — GPIO8, SCL — GPIO9. На ESP32-C3-DevKitM-1 к GPIO8 подключён RGB-светодиод, а оба вывода ещё и участвуют в выборе режима загрузки. Надёжнее указать другие выводы в Wire.begin(sda, scl): I²C на ESP32-C3 можно вывести почти на любой GPIO через матрицу.
Есть ли у ESP32-C3-DevKitM-1 встроенный USB?
У чипа есть контроллер USB Serial/JTAG на выводах GPIO18 (USB_D−) и GPIO19 (USB_D+), но разъём micro-USB платы подключён к мосту CP2102N и через него к UART0; перемычки R2 и R3 к GPIO18 и GPIO19 на схеме помечены как неустанавливаемые. Выводы GPIO18 и GPIO19 есть на разъёме J3: к ним подключают отдельный USB-кабель, если нужна прошивка и отладка через встроенный USB.
Сколько аналоговых входов у ESP32-C3?
Шесть: по даташиту ADC1 — на GPIO0–GPIO4, ADC2 — один канал на GPIO5. Все шесть выведены на разъёмы платы: GPIO0–3 на J1, GPIO4 и GPIO5 на J3.
Источники
- Espressif. ESP32-C3-DevKitM-1 User Guide (esp-dev-kits, коммит 927ed7e) — модули ESP32-C3-MINI-1 и -1U с флеш-памятью 4 МБ в корпусе чипа; LDO 5 → 3,3 В; мост USB-UART до 3 Мбит/с; кнопки Boot и Reset; адресный RGB-светодиод на GPIO8; таблицы разъёмов J1 и J3; GPIO2, GPIO8 и GPIO9 — выводы обвязки загрузки; лицензия CC BY-SA 4.0
- Espressif. ESP32-C3-DevKitM-1: Schematic, Dimensions — SGM2212-3.3, CP2102N-A02-GQFN28, SK68XXMINI-HS, ESP32-C3-MINI-1; SW1 (Boot) — GPIO9, R20 10 кОм — подтяжка GPIO8; DTR и RTS через Q1, Q2 — CHIP_PU и GPIO9; R2, R3 (NC) — разъём USB к GPIO18 и GPIO19; чертёж DIMENSION_ESP32-C3-DEVKITM-1_V1_20200915AA.pdf — 25,40 × 38,91 мм, ряды через 22,86 мм, шаг 2,54 мм
- Espressif. ESP32-C3 Series Datasheet v2.4 — одно ядро RISC-V до 160 МГц, 400 КБ SRAM, 384 КБ ПЗУ, Wi-Fi 802.11 b/g/n, Bluetooth 5 (LE); 22 GPIO, 2 UART, 3 SPI, I²C, I²S, USB Serial/JTAG, TWAI, 6 каналов LED PWM, 2 АЦП по 12 бит до 6 каналов; табл. 2-4 и 2-6 — функции выводов; разд. 2.3.3–2.3.4 — ограничения: GPIO12–17 — флеш, GPIO11 — VDD_SPI, USB_D± по умолчанию у USB Serial/JTAG; табл. 3-1, 3-3, 3-4 — выводы обвязки GPIO2, GPIO8, GPIO9
- Espressif. ESP32-C3-MINI-1 & ESP32-C3-MINI-1U Datasheet — табл. 3-1 — выводы модуля и их функции
- Espressif. arduino-esp32 3.3.0: variants/esp32c3/pins_arduino.h — TX — 21, RX — 20, SDA — 8, SCL — 9, SPI: SS 7, MOSI 6, MISO 5, SCK 4; PIN_RGB_LED 8; лицензия LGPL-2.1
- Espressif. esp-idf v5.4.1: soc/esp32c3/include/soc/adc_channel.h — ADC1 на GPIO0–4, ADC2 на GPIO5 (сверка табл. 2-6); лицензия Apache-2.0
Нашли ошибку?
Смотрите также
- ПлатыArduino, ESP32-DevKitC, Raspberry Pi Pico: распиновка и питание
- ESP32-S3-DevKitC-144 контакта, АЦП, сенсоры, обвязка загрузки, два USB, RGB-светодиод, PSRAM
- ESP32-DevKitC V438 контактов, АЦП, сенсоры, обвязка загрузки, питание, прошивка
- ESP32ESP32, S2, S3, C2, C3, C5, C6, H2, P4: ядра, радио, USB, GPIO — сравнение и выбор
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-C3-MINI-1: выводы модуля53 площадки, 15 GPIO: функции, strapping, USB, варианты, питание