Плата Arduino-клона с чипом CH341 (точнее, с микросхемой USB-UART преобразователя CH340/CH341) не появляется в диспетчере устройств как COM-порт — почти всегда причина в отсутствующем или неправильно вставшем драйвере CH341SER. Без него Windows видит устройство как «USB2.0-Serial» с желтым восклицательным знаком, а Arduino IDE не предлагает порт для загрузки скетча.
Проблема решается установкой фирменного драйвера от компании WCH (Jiangsu Qin Heng Electronics) — производителя микросхемы. Процедура занимает несколько минут, но есть нюансы по версиям Windows, конфликтам драйверов и поддельным чипам, о которых стоит знать заранее.
Что такое CH341 и зачем нужен драйвер
Микросхема CH340/CH341 — это недорогой преобразователь USB в последовательный порт (UART), который китайские производители ставят на клоны Arduino Uno, Nano и Mega вместо оригинального ATmega16U2. Через него компьютер общается с микроконтроллером: загружает скетчи и принимает данные в монитор порта.
Операционная система не имеет встроенного драйвера для этого чипа (в отличие, например, от устройств FTDI в новых версиях Windows). Поэтому при первом подключении платы требуется вручную установить пакет CH341SER, который создает в системе виртуальный COM-порт.
Сам чип при этом обычно исправен — «неопознанное устройство» в диспетчере задач говорит лишь о том, что Windows не знает, как с ним работать. После установки драйвера плата определяется как USB-SERIAL CH340 (COM3) или с другим номером порта.
Как определить, что на плате стоит CH340
Прежде чем качать драйвер, убедитесь, что на вашей плате действительно этот чип. Визуально микросхема CH340 — небольшой черный корпус рядом с USB-разъемом, на ней может быть маркировка CH340C, CH340G или CH341. На оригинальных платах Arduino вместо нее стоит другой преобразователь.
Программный способ проверки — открыть Диспетчер устройств Windows и посмотреть на устройство с ошибкой:
- 🔌 Нажмите
Win + Xи выберите «Диспетчер устройств». - 🔍 Найдите устройство «USB2.0-Serial» или «Неизвестное устройство» с желтым значком.
- 🆔 Откройте свойства → вкладка «Сведения» → свойство «ИД оборудования».
- ✅ Для CH340 типичен идентификатор вида
USB\VID_1A86&PID_7523— это чип WCH.
Если VID и PID совпадают с указанными, вам точно нужен драйвер CH341SER. Если идентификатор другой — вероятно, на плате чип FTDI или CP2102, и драйвер потребуется иной.
Где скачать драйвер CH341 безопасно
Единственный надежный источник — официальный сайт производителя WCH (wch.cn). Компания бесплатно распространяет драйвер CH341SER для Windows, а также версии для Linux и macOS. Сайт частично на китайском, но страница загрузки находится легко по запросу «CH341SER».
⚠️ Внимание: не скачивайте драйвер с каталогов «драйвер-паков» и сомнительных файлообменников — под видом CH341SER нередко распространяют вредоносное ПО. Драйвер от WCH распространяется бесплатно и не требует «активаторов» и «ключей».
Для большинства современных дистрибутивов Linux отдельная установка не нужна: модуль ch341 входит в ядро, и плата определяется автоматически как /dev/ttyUSB0. Проверить это можно командой dmesg сразу после подключения платы.
Пошаговая установка драйвера на Windows
Установка занимает несколько минут и не требует перезагрузки в большинстве случаев. Скачанный архив содержит установщик SETUP.EXE (или CH341SER.EXE).
☑️ Установка драйвера CH341SER
Порядок действий следующий. Распакуйте архив и запустите установщик — появится небольшое окно с кнопкой «Установить» (интерфейс может быть на китайском или английском в зависимости от версии). После нажатия появится сообщение об успешной предустановке драйвера.
Теперь подключите плату по USB. Windows должна автоматически подхватить установленный драйвер, и в диспетчере устройств в разделе «Порты (COM и LPT)» появится строка USB-SERIAL CH340 с номером порта. Запомните этот номер — он понадобится в Arduino IDE.
Решение типичных проблем
Иногда даже после установки драйвера плата не работает. Разберите частые сценарии по порядку — от простого к сложному.
Драйвер установлен, но порта нет. Проверьте кабель и USB-порт компьютера, попробуйте порт USB 2.0 вместо 3.0. Также посмотрите, нет ли в диспетчере устройств конфликта: удалите устройство с ошибкой вместе с драйвером и установите CH341SER заново.
Ошибка «Запуск этого устройства невозможен (код 10)». Возможная причина — конфликт версий драйвера или несовместимость с конкретной ревизией чипа. Помогает установка другой версии CH341SER (более старой или более новой) с сайта WCH.
Порт есть, но скетч не загружается с ошибкой вида avrdude: stk500_recv(). Это уже не проблема драйвера: проверьте, что в Arduino IDE выбраны правильная плата и процессор (для старых Nano — вариант загрузчика Old Bootloader), а монитор порта закрыт во время загрузки.
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Устройство с желтым значком | Драйвер не установлен | Установить CH341SER |
| Порт не появляется вообще | Кабель без линий данных | Сменить USB-кабель |
| Ошибка «код 10» | Конфликт версий драйвера | Другая версия CH341SER |
| Скетч не загружается | Неверные настройки IDE | Плата, порт, загрузчик |
| Порт исчезает при работе | Питание или контакт USB | Другой порт, другой ПК |
⚠️ Внимание: если плата не определяется ни на одном компьютере и ни с одним кабелем, а чип CH340 заметно греется, возможна аппаратная неисправность преобразователя. В этом случае скетч можно загрузить через внешний USB-TTL адаптер или программатор, но ремонт разъема и пайку стоит доверять только при наличии опыта.
Особенности для macOS и Linux
На macOS драйвер также доступен на сайте WCH. После установки система может потребовать разрешить загрузку системного расширения в настройках безопасности — без этого шага устройство не появится. Точные названия пунктов зависят от версии macOS, поэтому сверяйтесь с подсказками самой системы.
В Linux чип обычно работает «из коробки», но пользователю могут понадобиться права на доступ к порту. Типичное решение — добавить себя в группу dialout:
sudo usermod -a -G dialout $USER
После этого нужно перезайти в сессию. Если порт /dev/ttyUSB0 не появляется, проверьте вывод dmesg | tail сразу после подключения — там видно, распознало ли ядро устройство.
Почему клоны используют CH340 вместо оригинального чипа
Микросхема CH340 заметно дешевле ATmega16U2 и FTDI, поэтому производители недорогих клонов Arduino массово ставят её на платы. По функциональности для типовых задач (загрузка скетчей, обмен данными по UART) разницы для пользователя практически нет — отличается только необходимость установить драйвер вручную.
Как проверить, что все работает
Финальная проверка — загрузка тестового скетча. Откройте Arduino IDE, выберите плату (например, Arduino Uno), укажите появившийся COM-порт в меню Инструменты → Порт и загрузите стандартный пример Blink. Если светодиод на плате начал мигать — связка «драйвер + плата» полностью исправна.
Дополнительно можно открыть монитор порта и отправить данные из скетча через Serial.println(). Приходящие строки подтверждают, что двусторонняя связь через CH340 работает корректно.
Часто задаваемые вопросы
CH340 и CH341 — это одно и то же?
Это разные микросхемы одного производителя WCH, но драйвер CH341SER поддерживает обе серии. На платах Arduino-клонов чаще встречается именно CH340, однако подходящий драйвер один и тот же.
Безопасно ли устанавливать драйвер CH341SER?
Да, если он скачан с официального сайта WCH. Драйвер бесплатный и не требует никаких дополнительных «активаторов». Установщики с посторонних сайтов лучше не использовать.
Почему после обновления Windows плата перестала определяться?
Обновление системы иногда заменяет или сбрасывает сторонние драйверы. Обычно помогает повторная установка CH341SER. Если появилась ошибка «код 10», попробуйте другую версию драйвера с сайта WCH.
Порт появился, но Arduino IDE выдает ошибку при загрузке скетча — драйвер виноват?
Как правило, нет: раз порт виден, драйвер работает. Проверьте выбранную плату и процессор в настройках IDE, закройте монитор порта, а для старых Nano попробуйте вариант загрузчика Old Bootloader.
Нужен ли драйвер на Linux?
Обычно нет — модуль ch341 входит в состав ядра большинства дистрибутивов. Достаточно дать пользователю права на порт через группу dialout и проверить появление устройства /dev/ttyUSB0.