ESP32-S3-DevKitC-1: распиновка и устройство платы
Плата ESP32-S3-DevKitC-1 по документации и схеме Espressif: где какой из 44 контактов, какие функции ESP32-S3 доступны на каждом, чем отличаются два порта USB, почему светодиод в Arduino может не загореться и какие выводы занимает октальная PSRAM модуля.
Обновлено Редакция GAW
ESP32-S3-DevKitC-1 — отладочная плата Espressif на модуле ESP32-S3-WROOM-1, -1U или -2. Почти все выводы модуля выведены на два разъёма по краям, а внизу стоят два порта micro-USB: один через мост USB-UART, другой — прямо к встроенному USB чипа. Ниже — ревизия v1.1 по руководству пользователя, схеме и чертежу Espressif.
| Параметр | Значение |
|---|---|
| Микроконтроллер | ESP32-S3: 2 × Xtensa LX7 до 240 МГц |
| Память ESP32-S3 | 512 КБ SRAM, 384 КБ ПЗУ |
| Флеш-память и PSRAM | в модуле; у вариантов R8 — 8 МБ октальной PSRAM |
| Радио | Wi-Fi 802.11 b/g/n (2,4 ГГц), Bluetooth 5 (LE) |
| Контакты | 2 × 22 с шагом 2,54 мм: 36 GPIO |
| Периферия ESP32-S3 | 3 UART, 2 I²C, 2 I²S, 2 SPI для внешних устройств, TWAI (CAN), 8 каналов LED PWM, 2 MCPWM, интерфейсы камеры и ЖК-дисплея |
| Аналоговые | 2 АЦП по 12 бит, 20 каналов; 14 сенсорных входов |
| USB | 2 × micro-USB: мост USB-UART CP2102N и встроенный USB OTG / USB Serial/JTAG |
| Питание | 5 В от любого USB или контакта 5V, либо 3,3 В на контакт 3V3 |
| Размер | 25,40 × 62,74 мм, антенна модуля выступает за край |
Распиновка
Плата нарисована сверху, антенной вверх. Разъём J1 — слева, J3 — справа, оба нумеруются от антенны к разъёмам USB.
- ввод-вывод
- питание и земля
- управление: RST
- выбранная функция
Контакты и функции
Функции выводов — из таблиц 2-4, 2-6 и 2-8 даташита ESP32-S3 и таблиц разъёмов руководства платы. Цифровые интерфейсы ESP32-S3, кроме показанных, через матрицу GPIO можно вывести почти на любой вывод.
| Контакт | Подпись | GPIO | АЦП | Сенсор | RTC | IO MUX | Ещё |
|---|---|---|---|---|---|---|---|
| J1-1 | 3V3 | — | 3,3 В | ||||
| J1-2 | 3V3 | — | 3,3 В | ||||
| J1-3 | RST | — | EN: высокий уровень включает чип, низкий выключает | ||||
| J1-4 | 4 | 4 | ADC1_CH3 | TOUCH4 | RTC_GPIO4 | — | |
| J1-5 | 5 | 5 | ADC1_CH4 | TOUCH5 | RTC_GPIO5 | — | |
| J1-6 | 6 | 6 | ADC1_CH5 | TOUCH6 | RTC_GPIO6 | — | |
| J1-7 | 7 | 7 | ADC1_CH6 | TOUCH7 | RTC_GPIO7 | — | |
| J1-8 | 15 | 15 | ADC2_CH4 | — | RTC_GPIO15 | XTAL_32K_P, U0RTS | вход кварца 32 кГц (XTAL_32K_P) |
| J1-9 | 16 | 16 | ADC2_CH5 | — | RTC_GPIO16 | XTAL_32K_N, U0CTS | вход кварца 32 кГц (XTAL_32K_N) |
| J1-10 | 17 | 17 | ADC2_CH6 | — | RTC_GPIO17 | U1TXD | |
| J1-11 | 18 | 18 | ADC2_CH7 | — | RTC_GPIO18 | U1RXD, CLK_OUT3 | |
| J1-12 | 8 | 8 | ADC1_CH7 | TOUCH8 | RTC_GPIO8 | SUBSPICS1 | в Arduino-ESP32 по умолчанию SDA (Wire) |
| J1-13 | 3 | 3 | ADC1_CH2 | TOUCH3 | RTC_GPIO3 | — | вывод обвязки загрузки (без подтяжки): источник сигналов JTAG, если это разрешено битами eFuse |
| J1-14 | 46 | 46 | — | — | — | — | вывод обвязки загрузки (подтяжка вниз): режим загрузки вместе с GPIO0 и вывод сообщений загрузчика |
| J1-15 | 9 | 9 | ADC1_CH8 | TOUCH9 | RTC_GPIO9 | SUBSPIHD, FSPIHD | в Arduino-ESP32 по умолчанию SCL (Wire) |
| J1-16 | 10 | 10 | ADC1_CH9 | TOUCH10 | RTC_GPIO10 | FSPIIO4, SUBSPICS0, FSPICS0 | в Arduino-ESP32 по умолчанию SS (SPI) |
| J1-17 | 11 | 11 | ADC2_CH0 | TOUCH11 | RTC_GPIO11 | FSPIIO5, SUBSPID, FSPID | в Arduino-ESP32 по умолчанию MOSI (SPI) |
| J1-18 | 12 | 12 | ADC2_CH1 | TOUCH12 | RTC_GPIO12 | FSPIIO6, SUBSPICLK, FSPICLK | в Arduino-ESP32 по умолчанию SCK (SPI) |
| J1-19 | 13 | 13 | ADC2_CH2 | TOUCH13 | RTC_GPIO13 | FSPIIO7, SUBSPIQ, FSPIQ | в Arduino-ESP32 по умолчанию MISO (SPI) |
| J1-20 | 14 | 14 | ADC2_CH3 | TOUCH14 | RTC_GPIO14 | FSPIDQS, SUBSPIWP, FSPIWP | |
| J1-21 | 5V | — | 5 В | ||||
| J1-22 | G | — | общий провод | ||||
| J3-1 | G | — | общий провод | ||||
| J3-2 | TX | 43 | — | — | — | U0TXD, CLK_OUT1 | в Arduino-ESP32 по умолчанию Serial TX |
| J3-3 | RX | 44 | — | — | — | U0RXD, CLK_OUT2 | в Arduino-ESP32 по умолчанию Serial RX |
| J3-4 | 1 | 1 | ADC1_CH0 | TOUCH1 | RTC_GPIO1 | — | |
| J3-5 | 2 | 2 | ADC1_CH1 | TOUCH2 | RTC_GPIO2 | — | |
| J3-6 | 42 | 42 | — | — | — | MTMS | |
| J3-7 | 41 | 41 | — | — | — | MTDI, CLK_OUT1 | |
| J3-8 | 40 | 40 | — | — | — | MTDO, CLK_OUT2 | |
| J3-9 | 39 | 39 | — | — | — | MTCK, CLK_OUT3, SUBSPICS1 | |
| J3-10 | 38 | 38 | — | — | — | FSPIWP, SUBSPIWP | |
| J3-11 | 37 | 37 | — | — | — | FSPIQ, SUBSPIQ, SPIDQS | у модулей с октальной PSRAM (R8, R16V) занят памятью |
| J3-12 | 36 | 36 | — | — | — | FSPICLK, SUBSPICLK, SPIIO7 | у модулей с октальной PSRAM (R8, R16V) занят памятью |
| J3-13 | 35 | 35 | — | — | — | FSPID, SUBSPID, SPIIO6 | у модулей с октальной PSRAM (R8, R16V) занят памятью |
| J3-14 | 0 | 0 | — | — | RTC_GPIO0 | — | вывод обвязки загрузки (подтяжка вверх): режим загрузки: 0 вместе с GPIO46 = 0 — загрузка через USB или UART |
| J3-15 | 45 | 45 | — | — | — | — | вывод обвязки загрузки (подтяжка вниз): напряжение VDD_SPI: 1 при сбросе — 1,8 В вместо 3,3 В |
| J3-16 | 48 | 48 | — | — | — | SPICLK_N_DIFF, SUBSPICLK_N_DIFF | у модулей с ESP32-S3R16V работает от 1,8 В |
| J3-17 | 47 | 47 | — | — | — | SPICLK_P_DIFF, SUBSPICLK_P_DIFF | у модулей с ESP32-S3R16V работает от 1,8 В |
| J3-18 | 21 | 21 | — | — | RTC_GPIO21 | — | |
| J3-19 | 20 | 20 | ADC2_CH9 | — | RTC_GPIO20 | USB_D+, U1CTS, CLK_OUT1 | по умолчанию подключён к контроллеру USB Serial/JTAG |
| J3-20 | 19 | 19 | ADC2_CH8 | — | RTC_GPIO19 | USB_D-, U1RTS, CLK_OUT2 | по умолчанию подключён к контроллеру USB Serial/JTAG |
| J3-21 | G | — | общий провод | ||||
| J3-22 | G | — | общий провод | ||||
Два порта USB
У платы два разъёма micro-USB, и это разные интерфейсы:
| Разъём | Куда подключён | Для чего |
|---|---|---|
| UART | мост USB-UART CP2102N → UART0 на GPIO43 (TX) и GPIO44 (RX) | прошивка и монитор порта, как на ESP32 |
| USB | выводы USB_D− и USB_D+ — GPIO19 и GPIO20 | встроенный USB OTG и контроллер USB Serial/JTAG: прошивка, монитор и отладка через JTAG без адаптера |
По даташиту выводы USB_D± по умолчанию подключены к контроллеру USB Serial/JTAG; чтобы использовать GPIO19 и GPIO20 как обычные выводы, их переключают в регистрах. Питать плату можно от любого разъёма или от обоих сразу.
Выводы, с которыми осторожно
Обвязка загрузки. Уровни четырёх выводов защёлкиваются при сбросе (даташит, табл. 3-1):
| Вывод | Подтяжка | Что выбирает уровень при сбросе |
|---|---|---|
| GPIO0 | вверх | 1 — загрузка из флеш-памяти; 0 вместе с GPIO46 = 0 — загрузка через USB или UART |
| GPIO3 | нет | источник сигналов JTAG, если это разрешено битами eFuse |
| GPIO45 | вниз | напряжение VDD_SPI: 0 — 3,3 В, 1 — 1,8 В |
| GPIO46 | вниз | режим загрузки вместе с GPIO0 и вывод сообщений загрузчика |
Кнопка Boot на плате замыкает GPIO0 на землю: удерживая её и нажимая Reset, плату переводят в режим загрузки прошивки.
Память модуля. GPIO26–GPIO32 соединены с флеш-памятью и PSRAM внутри модуля и на разъёмы не выведены. У модулей с октальной памятью — ESP32-S3-WROOM-1 с индексом R8 или R16V и ESP32-S3-WROOM-2 — заняты ещё GPIO35, GPIO36 и GPIO37: на плате они есть, но с такими модулями их использовать нельзя. У модулей с ESP32-S3R16V выводы GPIO47 и GPIO48 работают от 1,8 В.
JTAG и UART0. GPIO39–GPIO42 — выводы JTAG (MTCK, MTDO, MTDI, MTMS), GPIO43 и GPIO44 — UART0, к которому подключён мост USB-UART. Их можно занять, но тогда отладка и монитор порта через эти интерфейсы недоступны; JTAG можно взять через порт USB. Все 45 GPIO чипа с функциями и ограничениями — на странице «ESP32-S3: выводы чипа и GPIO».
RGB-светодиод: GPIO38 или GPIO48
На плате стоит адресный RGB-светодиод SK68XXMINI-HS. На ревизии v1.1 он подключён к GPIO38, а на первой ревизии v1.0 — к GPIO48; по руководству Espressif в продаже есть обе. В библиотеке Arduino-ESP32 3.3.0 вариант esp32s3 задаёт PIN_RGB_LED = 48, и пример со встроенным светодиодом на плате v1.1 ничего не зажжёт. Светодиод адресный: цвет он получает последовательным кодом, а не уровнем на выводе. В Arduino-ESP32 для таких светодиодов есть функция rgbLedWrite() — номер вывода в ней можно указать явно.
Питание
По руководству у платы три взаимоисключающих способа питания: через любой из разъёмов USB или оба сразу (основной), через контакты 5V и G, через контакты 3V3 и G. Напряжение 5 В от USB или контакта 5V стабилизатор SGM2212 понижает до 3,3 В. Выводы ESP32-S3 рассчитаны на 3,3 В — для 5-вольтовых устройств нужен преобразователь уровней.
Другие платы — в разделе «Платы», предыдущая плата на ESP32 — ESP32-DevKitC V4, ослабление и делитель для АЦП считает калькулятор АЦП ESP32 (у ESP32-S3 свои диапазоны — сверяйтесь с её даташитом), ШИМ — калькулятор LEDC.
Частые вопросы
Почему в Arduino не загорается встроенный светодиод ESP32-S3-DevKitC-1?
Скорее всего, у вас плата ревизии v1.1: на ней адресный RGB-светодиод подключён к GPIO38, а в варианте esp32s3 библиотеки Arduino-ESP32 3.3.0 вывод светодиода PIN_RGB_LED задан как GPIO48 — так было на первой ревизии платы. Укажите GPIO38 явно, например в функции rgbLedWrite(38, …): светодиод адресный и принимает цвет последовательным кодом.
Чем отличаются два порта USB на ESP32-S3-DevKitC-1?
Порт UART подключён к мосту USB-UART CP2102N, а через него — к UART0 на GPIO43 и GPIO44, как на обычной ESP32. Порт USB идёт прямо к выводам USB_D− и USB_D+ ESP32-S3 (GPIO19 и GPIO20): это встроенный USB OTG и контроллер USB Serial/JTAG, через который можно и прошивать, и отлаживать без внешнего адаптера. Питать плату можно от любого из них.
Можно ли использовать GPIO35, GPIO36 и GPIO37?
Зависит от модуля. По документации Espressif у модулей с октальной флеш-памятью или PSRAM — ESP32-S3-WROOM-1 с индексом R8 или R16V и ESP32-S3-WROOM-2 — эти выводы соединены с памятью внутри модуля и для других целей недоступны. У модулей с обычной памятью, например N8, их можно использовать.
Какие выводы ESP32-S3 нельзя трогать при загрузке?
Выводы обвязки загрузки: GPIO0 и GPIO46 выбирают режим загрузки, GPIO45 — напряжение питания флеш-памяти, GPIO46 ещё и вывод сообщений загрузчика, GPIO3 — источник сигналов JTAG, если это разрешено в eFuse. По даташиту GPIO0 подтянут вверх, GPIO45 и GPIO46 — вниз, GPIO3 не подтянут. Подключённая к ним схема не должна менять эти уровни в момент сброса.
Источники
- Espressif. ESP32-S3-DevKitC-1 v1.1 User Guide (esp-dev-kits, коммит 927ed7e) — состав платы: модули ESP32-S3-WROOM-1, -1U, -2, LDO 5 → 3,3 В, мост USB-UART до 3 Мбит/с, порт USB ESP32-S3 (USB OTG и JTAG), кнопки Boot и Reset, RGB-светодиод на GPIO38; таблицы разъёмов J1 и J3; GPIO35–37 заняты у модулей с октальной флеш-памятью или PSRAM; три способа питания; ревизия v1.0 — светодиод на GPIO48; лицензия CC BY-SA 4.0
- Espressif. ESP32-S3-DevKitC-1 v1.1: Schematic, PCB Layout, Dimensions — стабилизатор SGM2212-3.3, мост CP2102N-A02-GQFN28, светодиод SK68XXMINI-HS; чертёж DXF_ESP32-S3-DevKitC-1_V1.1_20220429.pdf — 25,40 × 62,74 мм, контакты в 1,27 мм от длинных краёв, шаг 2,54 мм, от последнего контакта до края с разъёмами USB 8,00 мм
- Espressif. ESP32-S3 Series Datasheet v2.2 — 2 × Xtensa LX7 до 240 МГц, 512 КБ SRAM, 384 КБ ПЗУ, Wi-Fi 802.11 b/g/n, Bluetooth 5 (LE); 45 GPIO, 3 UART, 2 I²C, 2 I²S, 2 SPI общего назначения, TWAI, USB OTG и USB Serial/JTAG, 8 каналов LED PWM, 2 MCPWM; 2 АЦП по 12 бит до 20 каналов, 14 сенсорных входов; табл. 2-4, 2-6, 2-8 — функции выводов; разд. 2.3.4–2.3.5 — ограничения: GPIO26–32 — флеш и PSRAM, GPIO33–37 — октальный режим, USB_D± по умолчанию у USB Serial/JTAG; табл. 3-1, 3-3, 3-4 — выводы обвязки GPIO0, GPIO3, GPIO45, GPIO46
- Espressif. ESP32-S3-WROOM-1 & ESP32-S3-WROOM-1U Datasheet v1.8 — табл. 3-1 — 41 вывод модуля, 36 GPIO; примечание b — у модулей с октальной PSRAM (ESP32-S3R8, R16V) IO35–IO37 заняты; примечание c — у R16V GPIO47 и GPIO48 работают от 1,8 В; варианты N4R8, N8R8, N16R8 с октальной PSRAM
- Espressif. arduino-esp32 3.3.0: variants/esp32s3/pins_arduino.h — TX — 43, RX — 44, SDA — 8, SCL — 9, SPI: SS 10, MOSI 11, MISO 13, SCK 12; PIN_RGB_LED 48; лицензия LGPL-2.1
- Espressif. esp-idf v5.4.1: soc/esp32s3 adc_channel.h, touch_sensor_channel.h — каналы ADC1 на GPIO1–10, ADC2 на GPIO11–20, сенсоры TOUCH1–14 на GPIO1–14 (сверка таблиц даташита); лицензия Apache-2.0
Нашли ошибку?
Смотрите также
- ПлатыArduino, ESP32-DevKitC, Raspberry Pi Pico: распиновка и питание
- ESP32-DevKitC V438 контактов, АЦП, сенсоры, обвязка загрузки, питание, прошивка
- ESP32-C3-DevKitM-130 контактов, 15 GPIO, АЦП, обвязка загрузки, USB, RGB-светодиод на GPIO8
- ESP32ESP32, S2, S3, C2, C3, C5, C6, H2, P4: ядра, радио, USB, GPIO — сравнение и выбор
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- ESP32-S3: выводы и GPIO45 GPIO: функции, свободные и занятые выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- АЦП ESP32: ослабление и делительОслабление по напряжению, делитель, погрешность на входе, код Arduino и ESP-IDF
- ШИМ ESP32: LEDCРазрешение по частоте, делитель A + B/256, фактическая частота, duty, код ESP-IDF
- USBСкорости, распиновка Type-A, Micro-B и Type-C, питание, CC, USB PD
- ESP32-S3-WROOM-1: выводы модуля41 вывод: GPIO и функции, IO35–37 и PSRAM, варианты памяти, питание