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

USB-TTL

USB-TTL адаптер, или USB-UART адаптер, позволяет компьютеру общаться с микроконтроллером по UART через USB.

Он нужен для:

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

В продаже часто встречаются адаптеры на CH340, CP2102, FT232 и похожих чипах.

USB-TTL или USB-UART

В бытовых описаниях часто пишут USB-TTL.

Технически речь обычно о USB-UART адаптере с TTL-уровнями логики.

Главное понять:

  • USB сторона подключается к компьютеру;
  • UART сторона подключается к микроконтроллеру;
  • адаптер не является программатором для всех плат;
  • адаптер не заменяет ST-Link, если нужна прошивка STM32 через SWD.

Основные пины

Обычно есть:

  • GND;
  • TX;
  • RX;
  • VCC или 3V3/5V;
  • иногда DTR;
  • иногда CTS, RTS.

Минимум для связи:

  • GND;
  • TX;
  • RX.

Питание подключают только если ты точно понимаешь, что адаптер должен питать плату.

TX и RX подключаются перекрёстно

UART соединяют так:

адаптер TX -> плата RX
адаптер RX -> плата TX
адаптер GND -> плата GND

TX - это transmit, передача.

RX - receive, приём.

Передатчик одного устройства должен идти на приёмник другого.

Если подключить TX к TX, связи обычно не будет.

Перекрёстное подключение TX/RX при UART-соединении

Источник: SparkFun Electronics, CC BY-SA 4.0

Общая земля

GND адаптера и GND платы должны быть соединены.

Без общей земли UART может не работать или работать нестабильно.

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

3.3V и 5V уровни

Это один из самых важных пунктов.

Адаптер может работать с логикой:

  • 3.3V;
  • 5V;
  • переключаемой 3.3V/5V.

Многие современные платы и модули используют 3.3V логику: ESP32, RP2040, многие STM32.

Если подать 5V UART-сигнал на 3.3V вход, можно повредить пин или всю плату.

Перед подключением проверь:

  • какой уровень логики у платы;
  • какой уровень логики у адаптера;
  • что делает перемычка 3.3V/5V;
  • меняет ли перемычка только питание VCC или ещё и уровни TX/RX.

Некоторые адаптеры дают 5V питание, но 3.3V логические сигналы. Другие меняют и питание, и уровни. Это нужно смотреть в документации конкретного адаптера.

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

Не всегда нужно подключать VCC.

Часто безопаснее подключить только:

  • GND;
  • TX;
  • RX.

Плату питать от её штатного источника.

Подключать VCC от адаптера можно, если:

  • плата рассчитана на это напряжение;
  • ток платы меньше возможностей адаптера;
  • нет другого питания одновременно;
  • документация платы разрешает питание через этот пин.

Опасная ошибка - одновременно подать питание от USB-UART адаптера и от отдельного блока питания так, что источники начинают конфликтовать.

DTR и авто-reset

Некоторые платы используют DTR для автоматического сброса при прошивке.

Например, Arduino Pro Mini и похожие платы могут использовать DTR через конденсатор для auto-reset.

Если прошивка не стартует автоматически, возможно:

  • DTR не подключён;
  • нужен ручной reset;
  • выбран не тот адаптер;
  • выбран не тот bootloader;
  • скорость или плата в IDE выбраны неправильно.

Для простого чтения логов DTR обычно не нужен.

Как проверить, что адаптер виден в системе

На macOS и Linux адаптер обычно появляется как устройство в /dev.

Примеры:

ls /dev/tty.*
ls /dev/cu.*
ls /dev/ttyUSB*
ls /dev/ttyACM*

На Windows он появляется как COM-порт.

Если порта нет:

  • проверь USB-кабель;
  • попробуй другой USB-порт;
  • проверь драйвер;
  • проверь, не только ли это зарядный кабель;
  • посмотри, какой чип на адаптере: CH340, CP2102, FT232.

Дешёвые адаптеры иногда требуют отдельного драйвера, особенно на Windows.

Loopback-тест

Простой способ проверить адаптер:

  1. Соедини TX и RX адаптера между собой.
  2. Открой serial terminal.
  3. Выбери порт и скорость.
  4. Напечатай текст.

Если введённые символы возвращаются обратно, адаптер и порт, скорее всего, работают.

После теста убери перемычку между TX и RX.

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

  • TX подключили к TX, а RX к RX;
  • забыли общий GND;
  • выбрали 5V уровень для 3.3V платы;
  • подключили VCC, хотя плата уже питается отдельно;
  • USB-кабель оказался только зарядным;
  • не установлен драйвер CH340/CP210x/FTDI;
  • выбран не тот COM-порт;
  • скорость UART не совпадает;
  • ждут, что USB-UART прошьёт STM32 через SWD;
  • перепутали boot mode или reset при прошивке.

Главное

  • USB-UART адаптер нужен для UART-связи компьютера с платой.
  • Минимум для связи: GND, TX, RX.
  • TX адаптера идёт на RX платы, RX адаптера - на TX платы.
  • Уровни 3.3V/5V нужно проверить до подключения.
  • VCC подключают только если точно нужно питание от адаптера.
  • Если адаптер не виден, проверь кабель, драйвер и USB-порт.

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