Мост USB–UART
У Arduino Nano, плат ESP32 и переходников «USB–TTL» между разъёмом USB и выводами RX и TX стоит одна и та же по смыслу микросхема — мост USB–UART. Она берёт на себя весь протокол USB, а микроконтроллеру остаётся обычный последовательный порт.
Обновлено Редакция GAW
Мост USB–UART (USB to UART bridge) — микросхема, которая с одной стороны работает устройством USB, а с другой выдаёт обычный последовательный порт UART на логических уровнях. Компьютер видит её как виртуальный COM-порт, и любая программа терминала работает с ней так же, как с аппаратным портом. По даташиту FTDI весь протокол USB обрабатывается внутри моста, и программировать USB не нужно.
Что внутри
- контроллер USB Full Speed с дескрипторами — у FT232R они во встроенной EEPROM на 1024 бита;
- буферы приёма и передачи — у FT232R 128 и 256 байт;
- генератор такта — у CP2102, FT232R и CH340C/N/K/E/X/B встроенный, кварц не нужен;
- UART с модемными линиями: у CH340 — RTS, DTR, DCD, RI, DSR, CTS.
Три распространённых моста по даташитам
| FT232R | CH340 | CP2102 | |
|---|---|---|---|
| Скорость | 300 бод – 3 Мбод | 50 бит/с – 2 Мбит/с | 300 – 921 600 бит/с |
| Кварц | не нужен | не нужен у C, N, K, E, X, B | не нужен |
| Уровни UART | 1,8–5 В | 5 или 3,3 В по питанию | — |
| Драйвер | VCP и D2XX | VCP, совместим с CH341 | VCP и USBXpress |
DTR, RTS и автосброс
Модемные линии моста программа может переключать сама. На платах Arduino и ESP32 через них сбрасывают микроконтроллер и входят в загрузчик — это автосброс через DTR и RTS. Поэтому переходник без выведенного DTR прошивает Arduino Pro Mini только с ручным нажатием кнопки сброса.
Скорость UART выбирают такой, чтобы её поддерживали и мост, и микроконтроллер, — проверить делитель и ошибку можно в калькуляторе скорости UART. Какие мосты стоят на Arduino Uno, Nano и Pro Mini — в сравнении плат.
Частые вопросы
Зачем мост USB–UART, если у микроконтроллера есть UART?
Компьютеры давно не имеют последовательного порта, а UART микроконтроллера не умеет USB. Мост работает устройством USB и показывает системе виртуальный COM-порт, а с другой стороны выдаёт обычные линии TX и RX на логических уровнях. По FTDI весь протокол USB обрабатывается внутри микросхемы — программировать USB не нужно.
Чем отличаются CH340, CP2102 и FT232R?
Набором возможностей и драйверами. По даташитам: FT232R — до 3 Мбод, встроенная EEPROM и уровни логики 1,8–5 В; CH340 — до 2 Мбит/с, модемные линии RTS, DTR, DCD, RI, DSR, CTS, у исполнений C, N, K, E, X и B кварц не нужен; CP2102 — до 921 600 бит/с по таблице характеристик, тоже без кварца. Все три — USB Full Speed и виртуальный COM-порт.
Зачем мосту выводы DTR и RTS?
Это модемные линии последовательного порта, которыми программа на компьютере может управлять. На платах Arduino и ESP32 через них сбрасывают микроконтроллер и переводят его в загрузчик перед прошивкой — схема автосброса. Если на дешёвом переходнике DTR не выведен, сброс перед загрузкой придётся делать кнопкой.
Источники
- FTDI. FT232R USB UART IC Datasheet, Version 2.10 (Document No. FT_000053) — FT232R — однокристальный интерфейс USB — асинхронный последовательный порт; весь протокол USB обрабатывается внутри, программировать USB не нужно; встроенная EEPROM 1024 бит для дескрипторов и настройки CBUS; встроенные резисторы терминации USB; встроенный генератор, внешний кварц не нужен; скорость от 300 бод до 3 Мбод на уровнях TTL; буфер приёма 128 байт, передачи 256 байт; драйверы VCP и D2XX; 7 или 8 бит данных, 1 или 2 стоп-бита, чётность; встроенный преобразователь уровней UART и CBUS для логики от 1,8 до 5 В; USB 2.0 Full Speed; питание от 3,3 В (с внешним генератором) до 5,25 В
- WCH. CH340 Datasheet, Version 3C — разд. 1–2: CH340 — микросхема-адаптер шины USB, реализует последовательный порт; Full Speed USB, совместимость с USB 2.0; эмуляция стандартного последовательного порта, программы Windows работают без изменений; аппаратный полнодуплексный порт со скоростью 50 бит/с – 2 Мбит/с; модемные сигналы RTS, DTR, DCD, RI, DSR, CTS; RS-232, RS-485, RS-422 через преобразователи уровней; питание 5 и 3,3 В; CH340C/N/K/E/X/B со встроенным тактом, без кварца; совместим с драйвером VCP CH341
- Silicon Labs. CP2102/9 Single-Chip USB-to-UART Bridge, Rev. 1.8 (1/17) — встроенный генератор, внешний кварц не нужен; на первой странице скорость 300 бит/с – 1 Мбит/с, но в табл. 4 максимум — 921 600 бит/с, а в табл. 12 список стандартных скоростей заканчивается на 921 600 (921 600 — только для 7 или 8 бит данных); бесплатные драйверы виртуального COM-порта (VCP) и прямой доступ USBXpress
Нашли ошибку?
Смотрите также
- Виртуальный COM-порт (VCP)Драйвер, показывающий USB-устройство как последовательный порт
- CH340Мост USB–UART: исполнения, выводы, V3 при 5 и 3,3 В, скорости, уровни
- CP2102 и CP2102NМосты USB–UART: выводы QFN-28, стабилизатор 3,3 В, скорость, уровни
- Автосброс через DTR и RTSСброс и вход в загрузчик линиями DTR и RTS моста USB–UART
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- Arduino Uno, Nano или Pro MiniРазмер, USB, питание, 3,3 и 5 В, объём скетча, сон: три платы на ATmega328P