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

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-S3512 КБ 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-S33 UART, 2 I²C, 2 I²S, 2 SPI для внешних устройств, TWAI (CAN), 8 каналов LED PWM, 2 MCPWM, интерфейсы камеры и ЖК-дисплея
Аналоговые2 АЦП по 12 бит, 20 каналов; 14 сенсорных входов
USB2 × micro-USB: мост USB-UART CP2102N и встроенный USB OTG / USB Serial/JTAG
Питание5 В от любого USB или контакта 5V, либо 3,3 В на контакт 3V3
Размер25,40 × 62,74 мм, антенна модуля выступает за край

Распиновка

Плата нарисована сверху, антенной вверх. Разъём J1 — слева, J3 — справа, оба нумеруются от антенны к разъёмам USB.

антеннамодуль ESP32-S3SGM2212RGBCP2102NBootResetUARTUSBJ1-1: 3V3 — 3,3 В13V33,3 ВJ1-2: 3V3 — 3,3 В23V33,3 ВJ1-3: RST — EN: высокий уровень включает чип, низкий выключает3RSTEN: высокий уровень включает чип, низкий выключаетJ1-4: 4 — GPIO4 — ADC1_CH3, TOUCH444ADC1_CH3TOUCH4J1-5: 5 — GPIO5 — ADC1_CH4, TOUCH555ADC1_CH4TOUCH5J1-6: 6 — GPIO6 — ADC1_CH5, TOUCH666ADC1_CH5TOUCH6J1-7: 7 — GPIO7 — ADC1_CH6, TOUCH777ADC1_CH6TOUCH7J1-8: 15 — GPIO15 — ADC2_CH4815ADC2_CH4J1-9: 16 — GPIO16 — ADC2_CH5916ADC2_CH5J1-10: 17 — GPIO17 — ADC2_CH6, U1TXD1017ADC2_CH6U1TXDJ1-11: 18 — GPIO18 — ADC2_CH7, U1RXD1118ADC2_CH7U1RXDJ1-12: 8 — GPIO8 — ADC1_CH7, TOUCH8128ADC1_CH7TOUCH8J1-13: 3 — GPIO3 — ADC1_CH2, TOUCH3133ADC1_CH2TOUCH3J1-14: 46 — GPIO461446J1-15: 9 — GPIO9 — ADC1_CH8, TOUCH9159ADC1_CH8TOUCH9J1-16: 10 — GPIO10 — ADC1_CH9, TOUCH10, FSPICS01610ADC1_CH9TOUCH10FSPICS0J1-17: 11 — GPIO11 — ADC2_CH0, TOUCH11, FSPID1711ADC2_CH0TOUCH11FSPIDJ1-18: 12 — GPIO12 — ADC2_CH1, TOUCH12, FSPICLK1812ADC2_CH1TOUCH12FSPICLKJ1-19: 13 — GPIO13 — ADC2_CH2, TOUCH13, FSPIQ1913ADC2_CH2TOUCH13FSPIQJ1-20: 14 — GPIO14 — ADC2_CH3, TOUCH142014ADC2_CH3TOUCH14J1-21: 5V — 5 В215V5 ВJ1-22: G22GJ3-1: G1GJ3-2: TX — GPIO43 — U0TXD2TXU0TXDJ3-3: RX — GPIO44 — U0RXD3RXU0RXDJ3-4: 1 — GPIO1 — ADC1_CH0, TOUCH141ADC1_CH0TOUCH1J3-5: 2 — GPIO2 — ADC1_CH1, TOUCH252ADC1_CH1TOUCH2J3-6: 42 — GPIO42 — MTMS642MTMSJ3-7: 41 — GPIO41 — MTDI741MTDIJ3-8: 40 — GPIO40 — MTDO840MTDOJ3-9: 39 — GPIO39 — MTCK939MTCKJ3-10: 38 — GPIO38 — RGB-светодиод SK68XXMINI-HS на плате ревизии v1.11038RGB-светодиод SK68XXMINI-HS на плате ревизии v1.1J3-11: 37 — GPIO37 — FSPIQ1137FSPIQJ3-12: 36 — GPIO36 — FSPICLK1236FSPICLKJ3-13: 35 — GPIO35 — FSPID1335FSPIDJ3-14: 0 — GPIO0 — кнопка Boot140кнопка BootJ3-15: 45 — GPIO451545J3-16: 48 — GPIO48 — на плате ревизии v1.0 — RGB-светодиод1648на плате ревизии v1.0 — RGB-светодиодJ3-17: 47 — GPIO471747J3-18: 21 — GPIO211821J3-19: 20 — GPIO20 — ADC2_CH9, USB_D+1920ADC2_CH9USB_D+J3-20: 19 — GPIO19 — ADC2_CH8, USB_D-2019ADC2_CH8USB_D-J3-21: G21GJ3-22: G22G
ESP32-S3-DevKitC-1 v1.1, вид сверху: контакты, их номера и функции GPIO. Плата 25,4 × 62,74 мм, шаг контактов 2,54 мм.
  • ввод-вывод
  • питание и земля
  • управление: RST
  • выбранная функция

Контакты и функции

Функции выводов — из таблиц 2-4, 2-6 и 2-8 даташита ESP32-S3 и таблиц разъёмов руководства платы. Цифровые интерфейсы ESP32-S3, кроме показанных, через матрицу GPIO можно вывести почти на любой вывод.

КонтактПодписьGPIOАЦПСенсорRTCIO MUXЕщё
J1-13V3—3,3 В
J1-23V3—3,3 В
J1-3RST—EN: высокий уровень включает чип, низкий выключает
J1-444ADC1_CH3TOUCH4RTC_GPIO4—
J1-555ADC1_CH4TOUCH5RTC_GPIO5—
J1-666ADC1_CH5TOUCH6RTC_GPIO6—
J1-777ADC1_CH6TOUCH7RTC_GPIO7—
J1-81515ADC2_CH4—RTC_GPIO15XTAL_32K_P, U0RTSвход кварца 32 кГц (XTAL_32K_P)
J1-91616ADC2_CH5—RTC_GPIO16XTAL_32K_N, U0CTSвход кварца 32 кГц (XTAL_32K_N)
J1-101717ADC2_CH6—RTC_GPIO17U1TXD
J1-111818ADC2_CH7—RTC_GPIO18U1RXD, CLK_OUT3
J1-1288ADC1_CH7TOUCH8RTC_GPIO8SUBSPICS1в Arduino-ESP32 по умолчанию SDA (Wire)
J1-1333ADC1_CH2TOUCH3RTC_GPIO3—вывод обвязки загрузки (без подтяжки): источник сигналов JTAG, если это разрешено битами eFuse
J1-144646————вывод обвязки загрузки (подтяжка вниз): режим загрузки вместе с GPIO0 и вывод сообщений загрузчика
J1-1599ADC1_CH8TOUCH9RTC_GPIO9SUBSPIHD, FSPIHDв Arduino-ESP32 по умолчанию SCL (Wire)
J1-161010ADC1_CH9TOUCH10RTC_GPIO10FSPIIO4, SUBSPICS0, FSPICS0в Arduino-ESP32 по умолчанию SS (SPI)
J1-171111ADC2_CH0TOUCH11RTC_GPIO11FSPIIO5, SUBSPID, FSPIDв Arduino-ESP32 по умолчанию MOSI (SPI)
J1-181212ADC2_CH1TOUCH12RTC_GPIO12FSPIIO6, SUBSPICLK, FSPICLKв Arduino-ESP32 по умолчанию SCK (SPI)
J1-191313ADC2_CH2TOUCH13RTC_GPIO13FSPIIO7, SUBSPIQ, FSPIQв Arduino-ESP32 по умолчанию MISO (SPI)
J1-201414ADC2_CH3TOUCH14RTC_GPIO14FSPIDQS, SUBSPIWP, FSPIWP
J1-215V—5 В
J1-22G—общий провод
J3-1G—общий провод
J3-2TX43———U0TXD, CLK_OUT1в Arduino-ESP32 по умолчанию Serial TX
J3-3RX44———U0RXD, CLK_OUT2в Arduino-ESP32 по умолчанию Serial RX
J3-411ADC1_CH0TOUCH1RTC_GPIO1—
J3-522ADC1_CH1TOUCH2RTC_GPIO2—
J3-64242———MTMS
J3-74141———MTDI, CLK_OUT1
J3-84040———MTDO, CLK_OUT2
J3-93939———MTCK, CLK_OUT3, SUBSPICS1
J3-103838———FSPIWP, SUBSPIWP
J3-113737———FSPIQ, SUBSPIQ, SPIDQSу модулей с октальной PSRAM (R8, R16V) занят памятью
J3-123636———FSPICLK, SUBSPICLK, SPIIO7у модулей с октальной PSRAM (R8, R16V) занят памятью
J3-133535———FSPID, SUBSPID, SPIIO6у модулей с октальной PSRAM (R8, R16V) занят памятью
J3-1400——RTC_GPIO0—вывод обвязки загрузки (подтяжка вверх): режим загрузки: 0 вместе с GPIO46 = 0 — загрузка через USB или UART
J3-154545————вывод обвязки загрузки (подтяжка вниз): напряжение VDD_SPI: 1 при сбросе — 1,8 В вместо 3,3 В
J3-164848———SPICLK_N_DIFF, SUBSPICLK_N_DIFFу модулей с ESP32-S3R16V работает от 1,8 В
J3-174747———SPICLK_P_DIFF, SUBSPICLK_P_DIFFу модулей с ESP32-S3R16V работает от 1,8 В
J3-182121——RTC_GPIO21—
J3-192020ADC2_CH9—RTC_GPIO20USB_D+, U1CTS, CLK_OUT1по умолчанию подключён к контроллеру USB Serial/JTAG
J3-201919ADC2_CH8—RTC_GPIO19USB_D-, U1RTS, CLK_OUT2по умолчанию подключён к контроллеру USB Serial/JTAG
J3-21G—общий провод
J3-22G—общий провод

Два порта 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 не подтянут. Подключённая к ним схема не должна менять эти уровни в момент сброса.

Источники

  1. 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
  2. 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 мм
  3. 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
  4. 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
  5. 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
  6. 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

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