ESP32

ESP32-S3 не определяется по USB: что проверить

Дата публикации:

7 0

Если ESP32-S3 получает питание, но компьютер не видит плату или новый последовательный порт не появляется, причина не всегда связана с драйвером. Сначала нужно определить, через какой USB-интерфейс подключена конкретная плата, проверить кабель и разъём, а затем попытаться запустить встроенный ROM-загрузчик. Это позволяет быстро отделить проблему USB-соединения от ошибки прошивки или пользовательской программы.

Проверка USB-подключения платы ESP32-S3 к компьютеру.

Сначала определите, что именно не работает

Фраза «ESP32-S3 не определяется по USB» может описывать несколько разных ситуаций. Плата может вообще не появляться в системе, определяться как неизвестное USB-устройство, создавать последовательный порт только после нажатия BOOT или нормально прошиваться, но исчезать после запуска программы.

Эти случаи нужно разделять. Если компьютер не реагирует на подключение платы вообще, проверку следует начинать с кабеля, USB-разъёма и питания. Если порт появляется в режиме загрузчика, но исчезает после обычного запуска, сам USB и микроконтроллер, скорее всего, работают, а причина уже связана с конфигурацией прошивки.

Проверьте USB-кабель

Одна из самых простых причин – кабель без линий передачи данных. Плата при этом получает питание, светодиод может гореть, но компьютер не обнаруживает новое USB-устройство.

Для проверки лучше использовать заведомо исправный USB-кабель, через который уже передавались данные с телефоном, внешним накопителем или другой платой разработки. Если используется переходник или USB-хаб, на время диагностики подключите ESP32-S3 непосредственно к компьютеру.

Также стоит попробовать другой USB-порт компьютера. Это особенно полезно, если устройство периодически подключается и отключается или система сообщает об ошибке USB.

На плате может быть два разных USB-разъёма

У ESP32-S3 есть встроенные USB-возможности, но производитель платы не обязан использовать их единственным способом. На одной плате USB-разъём может быть подключён непосредственно к ESP32-S3, а на другой – к отдельному преобразователю USB-UART.

Некоторые платы имеют сразу два разъёма. Один может использовать встроенный USB ESP32-S3, а второй – отдельный USB-UART мост. Подписи зависят от производителя: USB, UART, COM, OTG, USB-to-UART и другие.

Поэтому если на плате два USB-C, сначала проверьте документацию именно этой модели. Подключение кабеля физически подходящего типа ещё не означает, что выбран правильный интерфейс для программирования.

Встроенный USB ESP32-S3

ESP32-S3 имеет встроенный USB Serial/JTAG Controller, поэтому для последовательного интерфейса и прошивки отдельный USB-UART преобразователь не обязателен. На уровне микроконтроллера USB-линии связаны с GPIO19 для D- и GPIO20 для D+. На готовой плате эти соединения уже выполнены производителем, если соответствующий USB-разъём предназначен для встроенного USB.

При таком подключении компьютер взаимодействует непосредственно с ESP32-S3. Это отличается от плат с CH340, CP210x, FTDI или другим USB-UART преобразователем.

Подробнее об интерфейсах и вариантах ESP32-S3 можно посмотреть в материале ESP32-S3: разновидности, память, интерфейсы и применение.

Проверьте, появляется ли порт в режиме загрузчика

Один из самых полезных тестов – вручную запустить ROM-загрузчик ESP32-S3.

На большинстве плат последовательность такая:

  1. Нажмите и удерживайте BOOT.
  2. Коротко нажмите RESET или EN.
  3. Отпустите RESET или EN.
  4. Отпустите BOOT.
  5. Проверьте список USB-устройств и последовательных портов ещё раз.

BOOT обычно удерживает GPIO0 в низком уровне во время сброса. При этом ESP32-S3 вместо пользовательской программы запускает встроенный ROM-загрузчик.

Если после этой процедуры появляется новый порт, USB-соединение с микроконтроллером работает. В таком случае проблема может быть связана с установленной прошивкой, конфигурацией USB или способом обычного запуска платы.

Если порт не появляется даже в режиме загрузчика, следует продолжить проверку кабеля, разъёма, питания и аппаратной части платы.

СимптомНа что обратить внимание
Плата получает питание, но компьютер никак не реагируетКабель с передачей данных, USB-порт компьютера, правильный разъём платы
Порт появляется только после BOOT и RESETПроверить текущую прошивку и конфигурацию USB
Появляется неизвестное USB-устройствоОпределить тип USB-интерфейса и проверить драйвер
Порт появляется и сразу исчезаетПитание, кабель, перезапуск микроконтроллера, работа пользовательской программы
На плате два USB-разъёмаПроверить назначение каждого разъёма в документации платы
Порт есть, но прошивка не начинаетсяЭто уже отдельная проблема режима загрузчика и программы прошивки

Почему USB может исчезнуть после прошивки

У встроенного USB ESP32-S3 есть важная особенность: пользовательская программа способна изменить его работу.

Приложение может перенастроить USB, использовать USB OTG в другом режиме или задействовать связанные ресурсы таким образом, что прежний последовательный интерфейс перестанет быть доступен. Espressif отдельно указывает, что автоматическая загрузка через USB может перестать работать, если приложение отключает USB PHY, переводит USB в Host или Device режим либо перенастраивает USB GPIO на другие функции.

Поэтому ситуация «до прошивки порт был, после прошивки исчез» не означает автоматически, что плата повреждена.

В такой ситуации снова переведите ESP32-S3 в ROM-загрузчик через BOOT и RESET. Если порт вернулся, можно записать другую прошивку.

USB Serial/JTAG и USB CDC – разные варианты

На ESP32-S3 можно встретить USB Serial/JTAG и USB CDC. Для пользователя оба варианта могут выглядеть как последовательный USB-порт, но внутри они работают по-разному.

USB Serial/JTAG является встроенным аппаратным контроллером ESP32-S3 и может использоваться для последовательной консоли, прошивки и JTAG.

USB CDC может создаваться программным USB-стеком через USB OTG. Поэтому наличие порта после запуска пользовательской программы зависит в том числе от настроек самой прошивки.

Если ESP32-S3 виден в ROM-загрузчике, но после запуска приложения последовательный порт исчезает, искать проблему только в кабеле или драйвере уже не стоит.

Нужен ли драйвер

Сначала необходимо понять, какой USB-интерфейс используется на плате.

Если установлен отдельный CH340, CP210x, FTDI или другой USB-UART мост, операционной системе нужен драйвер именно для этой микросхемы. Устанавливать драйвер CH340 на плату только потому, что на ней установлен ESP32-S3, бессмысленно, если CH340 физически отсутствует.

Для встроенного USB Serial/JTAG ситуация другая. В некоторых конфигурациях Windows драйвер устанавливается автоматически, но Espressif также описывает случаи, когда USB Serial/JTAG определяется некорректно и драйвер приходится устанавливать средствами Espressif.

Если USB постоянно подключается и отключается

Повторное появление и исчезновение устройства может быть связано не только с программой. Нужно исключить нестабильное питание, плохой контакт USB-C, повреждённый кабель и перегрузку питания внешней периферией.

Для диагностики отключите от платы дисплеи, камеры, реле, сервоприводы, датчики и другие внешние устройства. Оставьте только ESP32-S3 и USB.

Если в такой конфигурации подключение становится стабильным, проблема может находиться в питании внешней нагрузки, соединениях или самой периферии.

Если отключения продолжаются даже без внешних устройств, попробуйте другой кабель и другой USB-порт компьютера.

Особенности собственных плат на ESP32-S3

Если используется не готовая плата разработки, а собственная PCB с ESP32-S3 или модулем ESP32-S3-WROOM, диагностика становится сложнее.

Для встроенного USB нужно проверить линии D- и D+, питание микроконтроллера, EN и загрузочные выводы. GPIO19 используется как USB D-, GPIO20 – как USB D+. На эти линии не должна влиять другая периферия, если они используются для встроенного USB.

Для перехода в ROM-загрузчик GPIO0 должен иметь правильное состояние во время reset. У ESP32-S3 в выборе режима загрузки также участвуют strapping-пины, поэтому собственную схему нужно сверять с рекомендациями Espressif.

Не стоит начинать аппаратную диагностику готовой серийной платы с прозвонки GPIO19 и GPIO20. На готовой плате сначала намного быстрее проверить кабель, разъём, BOOT и другой компьютер.

Если плата определяется только через BOOT

Это важный диагностический признак.

Если после BOOT + RESET появляется USB-порт и плата успешно входит в Download Mode, встроенный ROM ESP32-S3 работает и компьютер способен установить USB-соединение с микроконтроллером.

В таком случае причина чаще находится уже после ROM-загрузчика: пользовательская программа, конфигурация USB, выбранный режим USB или настройки среды разработки.

После восстановления соединения плату можно перепрошить. Порядок входа в загрузчик и сам процесс записи разобраны отдельно в решении «Как прошить ESP32-S3 через USB: BOOT и режим загрузчика».

Когда искать аппаратную неисправность

Аппаратную проблему стоит рассматривать после исключения простых причин. Если плата не определяется с несколькими исправными кабелями, на разных USB-портах и не появляется даже после ручного входа в ROM-загрузчик, нужно проверить питание и саму плату.

На собственной PCB дополнительно проверяются USB-линии, EN, GPIO0 и монтаж микроконтроллера или модуля. На готовой плате причиной может быть повреждённый USB-разъём, защита USB-линий, стабилизатор питания, преобразователь USB-UART или сам микроконтроллер.

Если USB-разъём имеет механические повреждения или плата сильно нагревается сразу после подключения, дальнейшие попытки прошивки лучше прекратить до проверки питания и аппаратной части.

Обновлено:

Email не публикуется и используется только для уведомлений. Ссылки в комментариях запрещены. Комментарий появится после проверки модератором.

Комментарии (0)

Связанные решения

Материалы CLEX по теме

Справочник

ESP32-S3

ESP32-S3 в справочнике CLEX: платы разработки, модули с дисплеями, камерой, Ethernet, Wi-Fi/Bluetooth и материалы по применению ESP32-S3 в проектах.

Товары по теме

Категории товаров

Платы разработки ESP32-S3

Платы разработки ESP32-S3 с Wi-Fi, Bluetooth LE, поддержкой камер, дисплеев, USB и внешней памяти. Для машинного зрения, голосового управления, HMI-интерфейсов, IoT, робототехники и устройств с локальной обработкой данных.