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

USB Serial/JTAG

У новых чипов Espressif есть встроенный контроллер USB, который сам изображает и последовательный порт, и отладочный адаптер JTAG. Достаточно подключить линии USB к выводам чипа — мост USB-UART и внешний отладчик не нужны.

Обновлено Редакция GAW

USB Serial/JTAG — встроенный в ESP32-S3, ESP32-C3 и другие новые чипы Espressif контроллер USB с фиксированными функциями. Для компьютера он выглядит сразу двумя устройствами: виртуальным последовательным портом CDC-ACM и адаптером JTAG. Физический уровень USB встроен в чип, поэтому внешние детали почти не нужны — достаточно соединить разъём USB с двумя выводами.

ЧипUSB_D−USB_D+
ESP32-S3GPIO19GPIO20
ESP32-C3GPIO18GPIO19

Что умеет контроллер по даташитам Espressif:

  • Последовательный порт — для монитора и обмена данными, без моста USB-UART;
  • Прошивка — режим загрузки USB-Serial-JTAG Download Boot; хост может сам сбросить чип и перевести его в режим загрузки;
  • Отладка — JTAG через USB: выводы JTAG чипа (у ESP32-S3 — GPIO39–GPIO42, у ESP32-C3 — GPIO4–GPIO7) остаются свободными;
  • Скорость — USB 2.0 full speed до 12 Мбит/с.

По умолчанию выводы USB_D± подключены к этому контроллеру. Использовать их как обычные GPIO можно, но тогда прошивать и отлаживать чип придётся через UART и внешний отладчик.

На платах. У ESP32-S3-DevKitC-1 два разъёма: «UART» — через мост CP2102N, «USB» — прямо к контроллеру USB чипа. У ESP32-C3-DevKitM-1 разъём подключён только к мосту, а GPIO18 и GPIO19 выведены на контакты.

Сам интерфейс USB разобран в разделе «USB».

Частые вопросы

Можно ли прошивать ESP32-C3 без моста USB-UART?

Да. По даташиту Espressif у ESP32-C3 есть контроллер USB Serial/JTAG: достаточно подключить разъём USB к выводам GPIO18 (D−) и GPIO19 (D+). Компьютер увидит виртуальный COM-порт, через который работают прошивка и монитор, и адаптер JTAG для отладки. Так же устроен ESP32-S3, у него USB_D± на GPIO19 и GPIO20.

Какая скорость у USB Serial/JTAG?

USB 2.0 full speed — до 12 Мбит/с. По даташиту ESP32-C3 скоростной режим high speed на 480 Мбит/с этот контроллер не поддерживает.

Можно ли использовать выводы USB как обычные GPIO?

Можно, но по умолчанию они подключены к контроллеру USB Serial/JTAG, и их нужно переключить в регистрах. Тогда прошивать и отлаживать чип через USB не получится — понадобится UART и внешний отладчик.

Источники

  1. Espressif. ESP32-S3 Series Datasheet v2.2 — разд. 4.2.1.8 — USB Full-speed device с фиксированными функциями: виртуальный последовательный порт CDC-ACM и адаптер JTAG; встроенный PHY, внешние детали почти не нужны; сброс чипа и вход в режим загрузки по команде хоста; разд. 2.3.4 — USB_D± по умолчанию подключены к контроллеру, JTAG через USB освобождает выводы MTCK, MTDO, MTDI, MTMS; загрузка прошивки USB-Serial-JTAG Download Boot
  2. Espressif. ESP32-C3 Series Datasheet v2.4 — разд. 4.2.1.5 — CDC-ACM и JTAG, USB 2.0 full speed до 12 Мбит/с (high speed 480 Мбит/с не поддерживается), прошивка флеш-памяти, отладка процессора, встроенный PHY; табл. 2-6 — USB_D− на GPIO18, USB_D+ на GPIO19; табл. 3-5 — вывод сообщений ROM в USB Serial/JTAG

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