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

USB-UART адаптеры

USB-UART адаптер нужен, чтобы компьютер или Linux-хост мог общаться с UART-устройством через USB. Он переводит USB в обычные serial-линии TX, RX и GND.

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

Где он нужен

USB-UART адаптер полезен для:

  • прошивки некоторых микроконтроллерных плат;
  • чтения serial-логов;
  • доступа к консоли устройства;
  • диагностики bootloader-режима;
  • подключения Arduino Pro Mini и некоторых Nano-клонов;
  • работы с платами без встроенного USB;
  • восстановления после неудачной прошивки;
  • временного подключения MCU к хосту по serial.

Если на плате уже есть нормальный USB и она видна как serial-устройство, отдельный USB-UART адаптер может быть не нужен.

Что на нём есть

Типовые контакты:

  • TX или TXO - передача от адаптера к устройству;
  • RX или RXI - приём адаптера от устройства;
  • GND - общий минус;
  • VCC, 3V3 или 5V - питание, если оно нужно;
  • DTR - часто используется для автосброса/прошивки;
  • RTS, CTS - линии управления потоком или boot/reset-сценариев.

Схема подключения:

USB-UART адаптер на чипе CH340T

Источник: Wikimedia Commons, SparkFun Electronics, CC BY 2.0

Для простого чтения логов часто достаточно TX, RX и GND. Питание подключают только если понятно, что плата должна питаться именно от адаптера.

Как подключать TX и RX

Подключение перекрёстное:

TX адаптера -> RX устройства
RX адаптера <- TX устройства
GND адаптера -> GND устройства

Если связи нет, первая проверка - не перепутаны ли TX и RX, есть ли общий GND, совпадает ли скорость и правильно ли выбран COM/tty-порт.

3.3V и 5V

USB-UART адаптеры бывают:

  • только 3.3V;
  • только 5V;
  • с переключателем 3.3V/5V;
  • с перемычкой или паяной перемычкой;
  • с VCC одного напряжения, но сигналами другого уровня.

Это важно: уровень VCC и уровень TX/RX не всегда очевидны по надписям.

ESP32, RP2040 и STM32 обычно используют 3.3V логику. Arduino Uno/Nano часто используют 5V логику. Если подать 5V сигнал на 3.3V вход, можно повредить плату.

Перед подключением проверь документацию адаптера и платы. Не полагайся только на цвет перемычки или подпись на корпусе.

TTL UART и RS-232

USB-UART адаптер для микроконтроллеров обычно выдаёт TTL/CMOS UART: 3.3V или 5V.

Это не то же самое, что настоящий RS-232.

У RS-232 другие уровни напряжения, и его нельзя напрямую подключать к GPIO микроконтроллера. Если нужно работать с настоящим RS-232 портом, нужен адаптер USB-RS232 или преобразователь уровня, а не обычный USB-UART TTL.

Питание от адаптера

Пин VCC на адаптере может быть полезен, но с ним часто ошибаются.

Безопасный подход:

  • для логов и диагностики сначала подключать только TX, RX, GND;
  • не подключать VCC, если плата уже питается от USB, блока питания или другой схемы;
  • не питать моторы, сервоприводы, реле, нагреватели и LED-ленты через USB-UART;
  • проверять, сколько тока реально может дать адаптер;
  • понимать, что VCC может быть 3.3V или 5V.

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

DTR и RTS

Некоторые платы используют DTR и RTS для автосброса или входа в bootloader.

Примеры:

  • Arduino Pro Mini часто использует DTR через конденсатор для reset при прошивке;
  • ESP32-платы могут использовать DTR/RTS для автоматического управления EN и BOOT;
  • некоторые bootloader-сценарии требуют нажимать кнопку вручную, если эти линии не подключены.

Если прошивка не стартует автоматически, это не всегда проблема TX/RX. Возможно, не подключены DTR/RTS, выбран не тот bootloader или нужно вручную нажать BOOT/RESET.

CH340, CP2102, FTDI

Популярные чипы USB-UART:

  • CH340/CH341 - дешёвые и массовые адаптеры;
  • CP2102/CP210x - распространённые Silicon Labs USB-UART;
  • FT232/FTDI - классический вариант, часто дороже;
  • PL2303 - встречается в старых адаптерах и кабелях.

На современных системах драйвер часто ставится автоматически, но не всегда. Если порт не появляется, проверь:

  • кабель USB не только для зарядки;
  • определяется ли устройство в системе;
  • нужен ли драйвер;
  • не конфликтует ли старый драйвер;
  • не занят ли порт другой программой.

Как проверить адаптер

Простой loopback-тест:

  1. Подключить адаптер к компьютеру.
  2. Соединить TX адаптера с RX адаптера.
  3. Открыть serial terminal.
  4. Выбрать порт и скорость, например 115200.
  5. Напечатать символы.
  6. Если всё работает, символы возвращаются обратно.

Так можно проверить сам адаптер, драйвер, кабель и терминальную программу без внешней платы.

Что проверить перед покупкой

Перед покупкой USB-UART адаптера проверь:

  • какие уровни TX/RX: 3.3V, 5V или переключаемые;
  • как выбирается уровень;
  • какой чип стоит: CH340, CP2102, FTDI или другой;
  • есть ли драйверы под твою систему;
  • есть ли DTR и RTS, если нужна автопрошивка;
  • какой разъём USB;
  • есть ли пины GND, TX, RX, VCC в удобном порядке;
  • есть ли схема или нормальная документация;
  • сколько тока можно брать с VCC, если это нужно.

Для ESP32/RP2040/STM32-диагностики удобнее адаптер с 3.3V сигналами и понятной маркировкой.

Типовые ошибки

  • соединяют TX с TX, RX с RX;
  • забывают общий GND;
  • выбирают 5V уровень для 3.3V платы;
  • подключают VCC к уже запитанной плате;
  • питают нагрузку через USB-UART адаптер;
  • путают USB-UART TTL и USB-RS232;
  • используют зарядный USB-кабель без данных;
  • не ставят драйвер CH340/CP2102/FTDI;
  • выбирают не тот COM/tty-порт;
  • не подключают DTR/RTS, когда они нужны для автопрошивки;
  • держат открытым serial terminal и потом удивляются, что прошивальщик не может открыть порт.

Главное

USB-UART адаптер - это мост между USB компьютера и UART-пинами устройства. Для минимальной связи нужны перекрёстные TX/RX и общий GND.

Главные риски: неправильный уровень 3.3V/5V, лишнее подключение питания, путаница TTL UART с RS-232 и отсутствие нужных линий DTR/RTS для прошивки.

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