Адаптер на микросхеме CH341, купленный для прошивки роутера или программатора, часто определяется системой не так, как ожидалось: вместо виртуального COM-порта появляется неизвестное устройство, а терминал не видит никаких данных. Причина почти всегда в том, что чип CH341 — многофункциональный: он умеет работать в режимах UART, I2C/SPI и параллельного порта, и активный режим зависит от конфигурации конкретной платы и установленного драйвера.
В этой статье разберём, как переключить CH341 в UART-режим, какие драйверы нужны для Windows и Linux, как правильно подключить линии TX/RX и что проверить, если порт не появляется или данные идут с ошибками. Материал подходит для популярных «чёрных» программаторов CH341A и простых USB-UART переходников на этом чипе.
Режимы работы микросхемы CH341
Микросхема CH341 от компании WCH — универсальный преобразователь USB-шины. В зависимости от обвязки и драйвера она может выступать в трёх основных ролях: USB-UART (виртуальный последовательный порт), USB-I2C/SPI (интерфейс для программаторов и работы с микросхемами памяти) и параллельный интерфейс для принтеров. Именно поэтому одна и та же микросхема встречается и в дешёвых переходниках USB-TTL, и в программаторах для прошивки BIOS и flash-памяти.
Важный нюанс: режим определяется не только самим чипом, но и схемой конкретной платы. На программаторах CH341A контакты чипа разведены под SPI/I2C, и UART там либо отсутствует физически, либо выведен на отдельные пады. На платах-переходниках, наоборот, выведены только TX, RX, GND и линии питания.
- 🔌 UART — виртуальный COM-порт для консоли роутеров, микроконтроллеров, модулей GPS и GSM.
- 💾 SPI/I2C — режим программатора для чипов памяти 24-й и 25-й серий (на платах CH341A).
- 🖨️ Параллельный режим — эмуляция принтерного порта, встречается редко.
CH341 — многофункциональный чип: перед поиском «неисправности» убедитесь, что ваша плата вообще разведена под UART, а не только под режим программатора.
Как определить, в каком режиме работает плата
Проще всего ориентироваться по внешнему виду платы. Если на ней установлена ZIF-панелька (прижимное гнездо под микросхемы) или колодка под чипы в корпусе SOP — перед вами программатор, и его основное назначение — SPI/I2C. Если на плате лишь ряд штыревых контактов с подписями TXD, RXD, GND, 5V, 3V3 — это UART-переходник.
Второй способ — посмотреть, как устройство определяется в системе. В Windows откройте «Диспетчер устройств»: при установленном драйвере CH341SER адаптер появится в разделе «Порты (COM и LPT)» как USB-SERIAL CH340 (COM…) или USB-SERIAL CH341. Если устройство висит в разделе «Другие устройства» с восклицательным знаком — драйвер не установлен, и режим не активирован.
В Linux достаточно выполнить одну команду и посмотреть вывод:
dmesg | tail -20
Если модуль ядра ch341 загрузился корректно, в логе появится строка вида usb 1-2: ch341-uart converter now attached to ttyUSB0. Имя устройства /dev/ttyUSB0 — это и есть ваш последовательный порт.
Установка драйверов для UART-режима
Для Windows потребуется официальный драйвер CH341SER с сайта производителя WCH. Установка стандартная: распакуйте архив, запустите установщик от имени администратора, затем подключите адаптер. После установки в системе появится виртуальный COM-порт, номер которого можно увидеть в Диспетчере устройств.
В Linux отдельная установка обычно не нужна: модуль ch341 входит в состав ядра большинства современных дистрибутивов и подхватывает устройство автоматически. Если порт не появился, проверьте, загружен ли модуль командой lsmod | grep ch341, и убедитесь, что ваш пользователь входит в группу dialout — иначе терминал не сможет открыть порт из-за прав доступа.
- 🪟 Windows — скачайте CH341SER с официального сайта WCH, установите, переподключите адаптер.
- 🐧 Linux — драйвер встроен в ядро; добавьте пользователя в группу доступа к портам.
- 🍎 macOS — для части версий системы требуется сторонний драйвер; проверяйте совместимость с вашей версией ОС.
- 🔢 Номер порта — если COM-порт получил слишком большой номер, его можно переназначить в свойствах устройства.
⚠️ Внимание: скачивайте драйвер CH341SER только с официального сайта WCH или из проверенных источников. Драйверы с посторонних файлообменников нередко содержат вредоносные вложения, а устаревшие версии могут конфликтовать с современными сборками Windows.
Распиновка и правильное подключение
Главное правило подключения UART — перекрёстное соединение: вывод TXD адаптера соединяется с выводом RXD целевого устройства, а RXD адаптера — с TXD устройства. Линия GND соединяется обязательно: без общей земли обмен будет нестабильным или вообще невозможным. Линию питания (5V или 3V3) подключайте только если устройство не имеет собственного питания.
Критически важный параметр — логические уровни. Многие платы на CH341 имеют джампер выбора напряжения 5V/3.3V, но на отдельных экземплярах программаторов CH341A линии данных работают на уровне 5 В даже при выбранном 3,3 В питании — это известная особенность схемотехники ряда плат. Перед подключением к устройству с 3,3-вольтовой логикой измерьте напряжение на выводе TXD адаптера мультиметром — эта проверка занимает минуту и может сохранить чип целевого устройства.
| Контакт адаптера | Куда подключать | Примечание |
|---|---|---|
| TXD | RXD устройства | Передача данных от адаптера |
| RXD | TXD устройства | Приём данных от устройства |
| GND | GND устройства | Обязательное соединение |
| 3V3 / 5V | Питание устройства | Только если устройство без своего питания |
☑️ Проверка перед первым подключением
Настройка терминала и параметры порта
Для работы с UART используется терминальная программа: PuTTY, HTerm, minicom или встроенный монитор порта Arduino IDE. В настройках указывается номер COM-порта и параметры соединения. Наиболее распространённая конфигурация для консолей роутеров и микроконтроллеров — 115200 8N1: скорость 115200 бод, 8 бит данных, без контроля чётности, 1 стоп-бит.
Если вместо читаемого текста терминал выводит «мусор» из случайных символов — почти наверняка неверно выбрана скорость. Попробуйте последовательно перебрать стандартные значения: 9600, 38400, 57600, 115200. Точную скорость консоли конкретного устройства нужно смотреть в его документации — универсального значения не существует.
screen /dev/ttyUSB0 115200
Пример выше — подключение из Linux через утилиту screen. Выход из сессии — комбинация Ctrl+A, затем K. В Windows-терминалах достаточно выбрать порт и скорость в графическом интерфейсе.
Если консоль устройства молчит, попробуйте после подключения кратковременно перезагрузить целевое устройство по питанию — загрузочный лог обычно выводится в первые секунды после старта.
Типовые проблемы и их решение
Порт не появляется в системе. Проверьте USB-кабель: часть дешёвых кабелей содержит только линии питания без линий данных. Замените кабель и порт USB, посмотрите реакцию системы. Если устройство видно, но с ошибкой — переустановите драйвер CH341SER.
Порт есть, но данных нет. Проверьте перекрёстность соединения TX/RX — это самая частая ошибка. Затем убедитесь, что соединён GND и что скорость в терминале совпадает со скоростью устройства. Для самодиагностики адаптера есть простой тест: замкните между собой контакты TXD и RXD перемычкой и отправьте любые символы из терминала. Если введённые символы возвращаются обратно (эхо) — адаптер и драйвер работают исправно, и проблему нужно искать на стороне подключаемого устройства.
Данные приходят с искажениями. Возможные причины: несовпадение уровней логики, слишком длинные провода, плохой контакт на земле или помехи по питанию. Сократите длину соединительных проводов и проверьте качество контактов — для временных соединений лучше использовать обжатые dupont-кабели, а не скрутки.
⚠️ Внимание: не подключайте UART-адаптер напрямую к линиям, где присутствует сетевое напряжение или потенциалы выше 5 В — например, к RS-232 порту старого оборудования. RS-232 использует уровни до ±12 В, которые выведут CH341 из строя; для таких устройств нужен преобразователь уровней на базе MAX232.
Чем CH341 отличается от CH340
Микросхема CH340 — упрощённый вариант, работающий только как USB-UART преобразователь. CH341 дополнительно поддерживает режимы SPI, I2C и параллельного порта, поэтому применяется в программаторах. Драйвер CH341SER подходит для обеих микросхем, поэтому в Диспетчере устройств адаптер на CH341 может отображаться с пометкой CH340 — это нормально.
Выводы
UART-режим CH341 не требует специального «включения» на платах-переходниках — достаточно корректно установленного драйвера и правильного подключения. Основные причины проблем: отсутствие драйвера, неверная скорость порта, прямое вместо перекрёстного соединения TX/RX и несовпадение логических уровней.
Для программаторов CH341A учитывайте особенность их схемотехники и обязательно проверяйте напряжение на линиях данных перед подключением к чувствительным устройствам. Тест с замкнутыми TX-RX позволяет за минуту отделить неисправность адаптера от проблем на стороне целевого устройства.
Минимальный диагностический набор: проверить драйвер → замкнуть TX-RX для теста эха → проверить перекрёстность соединения → подобрать скорость порта.
Часто задаваемые вопросы
Можно ли использовать программатор CH341A как USB-UART адаптер?
Микросхема CH341 такую возможность поддерживает, но на большинстве плат CH341A линии UART не выведены на удобные контакты, а уровни сигналов могут быть 5-вольтовыми. Для регулярной работы с UART практичнее приобрести отдельный переходник — он стоит недорого и избавляет от риска повредить целевое устройство.
Почему в Диспетчере устройств адаптер называется CH340, хотя чип — CH341?
Драйвер CH341SER универсален и обслуживает обе микросхемы, поэтому имя устройства в системе может содержать обозначение любой из них. На работу в UART-режиме это не влияет.
Какая скорость порта используется по умолчанию?
Универсального значения нет — скорость задаёт прошивка целевого устройства. Наиболее распространены 9600 и 115200 бод. Точное значение уточняйте в документации на подключаемое устройство или подбирайте перебором стандартных значений.
Терминал показывает иероглифы и случайные символы — что делать?
Почти всегда это признак несовпадения скорости порта. Переберите стандартные значения (9600, 38400, 57600, 115200). Если символы искажены даже при совпадении скорости — проверьте соединение GND и длину проводов.
Нужно ли подключать контакт питания 5V/3.3V к устройству?
Только если устройство не имеет собственного питания. Если устройство уже запитано (например, роутер включён в розетку), линию питания от адаптера подключать не нужно — достаточно TX, RX и GND. Одновременное питание от двух источников может вызвать конфликт по питанию.