CH341A: программа и драйвер для программатора

Если Windows определяет подключённый программатор CH341A как «USB2.0-Print» или «Неизвестное устройство», проблема почти всегда в отсутствующем драйвере — без него ни одна программа для прошивки не увидит устройство. Драйвер устанавливается вручную из пакета CH341SER, и только после этого в системе появляется виртуальный COM-порт и корректный интерфейс для работы с флеш-памятью.

Программатор на чипе CH341A — один из самых доступных инструментов для чтения и записи микросхем SPI Flash (серии 25xxx) и EEPROM (серии 24xxx). Его используют при восстановлении BIOS материнских плат, прошивке роутеров, мониторов и телевизоров. В этой статье разберём, какой драйвер нужен, какие программы подходят для работы и как избежать типичных ошибок при первом запуске.

Что такое CH341A и для чего он нужен

CH341A — это USB-конвертер китайского производства, который умеет работать в нескольких режимах: UART (последовательный порт), параллельный интерфейс и синхронные шины SPI и I2C. Именно поддержка SPI и I2C делает его программатором для микросхем памяти, которые встречаются практически в любой современной электронике.

Нужно понимать, что сам по себе чип — только «мост». Чтобы он заработал, требуются два компонента: драйвер на стороне операционной системы и прикладная программа, которая отправляет команды чтения и записи. Без первого компьютера устройство просто не распознается, без второй — нечем управлять процессом прошивки.

Типичные задачи, которые решают с помощью этого программатора:

  • 🔧 восстановление BIOS материнской платы после неудачного обновления;
  • 📺 прошивка флеш-памяти телевизоров, мониторов, спутниковых ресиверов;
  • 🌐 восстановление роутеров после «окирпичивания»;
  • 💾 чтение и запись EEPROM в автомагнитолах и блоках управления;
  • 🧪 сохранение дампа прошивки перед экспериментами с устройством.

Установка драйвера CH341A на Windows

Для работы программатора необходим пакет CH341SER — официальный драйвер от производителя чипа (компании WCH). Его можно найти на сайте производителя или в комплекте с большинством программ для прошивки. Пакет подходит для Windows 7, 8, 10 и 11, включая 64-битные версии.

Порядок установки простой: скачайте архив, распакуйте его и запустите файл SETUP.EXE (или CH341SER.EXE) от имени администратора. В появившемся окне нажмите кнопку «Установить» — инсталлятор сам зарегистрирует драйвер в системе. После этого подключите программатор к USB-порту.

Проверить результат можно в Диспетчере устройств. Откройте его через Win + X → Диспетчер устройств и найдите раздел «Порты (COM и LPT)». Корректно установленное устройство отображается как USB-SERIAL CH341A (COMx). Если вместо этого вы видите жёлтый восклицательный знак или строку «USB2.0-Print» в разделе «Другие устройства» — драйвер не встал, и установку нужно повторить.

☑️ Проверка перед первым запуском

Выполнено: 0 / 5
⚠️ Внимание: некоторые платы программатора имеют перемычку выбора режима (UART/SPI-I2C). Если она стоит в положении UART, программы для прошивки флеш-памяти не увидят устройство даже с установленным драйвером. Проверьте положение перемычки по маркировке на плате вашего экземпляра.

Программы для работы с CH341A

Для чипа CH341A существует несколько популярных программ, и выбор зависит от типа микросхемы и удобства интерфейса. Универсального «лучшего» варианта нет — многие держат под рукой два-три инструмента.

  • 🖥️ CH341A Programmer (AsProgrammer) — наиболее развитый вариант с большой базой поддерживаемых чипов, автоопределением и поддержкой SPI/I2C/MicroWire;
  • 📦 Классический CH341A Programmer (версии 1.x) — простой интерфейс, подходит для типовых задач с сериями 24 и 25;
  • NeoProgrammer — альтернатива с обновляемой базой чипов, часто справляется там, где старые версии не определяют микросхему;
  • 🐧 flashrom — консольная утилита, основной вариант для Linux, поддерживает CH341A в режиме SPI.

Общий принцип работы в графических программах одинаков: подключаете программатор, нажимаете кнопку определения чипа (Detect), выбираете микросхему из списка, если автоопределение не сработало, затем выполняете чтение, проверку или запись. Перед записью новой прошивки всегда сохраняйте исходный дамп — это ваша страховка на случай ошибки.

📊 Какую программу вы используете с CH341A?
AsProgrammer
Классический CH341A Programmer 1.x
NeoProgrammer
flashrom под Linux

Сравнение популярных программ

Чтобы было проще выбрать инструмент под свою задачу, сведём основные отличия в таблицу. Данные приведены в общем виде — конкретный список поддерживаемых чипов зависит от версии программы, поэтому перед работой с редкой микросхемой проверяйте её наличие в базе выбранного софта.

ПрограммаИнтерфейсПоддержка чиповОС
AsProgrammerГрафическийSPI, I2C, MicroWire, широкая базаWindows
CH341A Programmer 1.xГрафическийСерии 24 и 25Windows
NeoProgrammerГрафическийSPI и I2C, обновляемая базаWindows
flashromКонсольныйSPI FlashLinux, Windows

Подключение микросхемы и запуск прошивки

Перед подключением обратите внимание на напряжение питания. Классические платы на CH341A питают микросхему напряжением 5 В, тогда как многие современные SPI-флеши рассчитаны на 3,3 В, а часть — даже на 1,8 В. Для микросхем 1,8 В обязательно нужен адаптер-понижающий модуль, иначе чип можно вывести из строя. Существуют и модификации платы для переключения на 3,3 В, но любая переделка выполняется на ваш страх и риск.

Микросхему устанавливают в ZIF-панельку или подключают через прищепку SOIC8 прямо на плате устройства. Ключ микросхемы (точка или выемка у первого вывода) должен совпадать с маркировкой на панельке — как правило, первый вывод располагается со стороны фиксирующего рычага. Ошибка ориентации — одна из самых частых причин «невидимого» чипа.

Типовой порядок записи прошивки выглядит так:

  1. Подключите программатор с установленной микросхемой к ПК.
  2. Запустите программу и нажмите Detect для определения чипа.
  3. Выполните чтение и сохраните дамп в файл — проверьте, что он не состоит из одних нулей или FF.
  4. Откройте файл новой прошивки и запустите последовательность: стирание → запись → верификация.
  5. Убедитесь, что программа сообщила об успешной проверке записанных данных.
⚠️ Внимание: при прошивке микросхемы прищепкой без выпаивания питание от программатора может уходить на всю плату устройства, из-за чего чип определяется нестабильно или не определяется вовсе. Если чтение даёт мусор — возможная причина именно в этом, и надёжнее выпаивать микросхему.

Типичные ошибки и их решение

Самая частая жалоба — программа не видит программатор. В этом случае первым делом откройте Диспетчер устройств: если устройства с именем CH341 там нет, проблема в драйвере или USB-подключении. Попробуйте другой порт (желательно USB 2.0 напрямую, без хабов), переустановите драйвер и проверьте перемычку режима на плате.

Вторая по частоте ситуация — программатор виден, но чип не определяется либо читается с ошибками. Здесь возможных причин несколько: неверная ориентация микросхемы, плохой контакт в панельке или прищепке, несоответствие напряжения питания, слишком длинные провода при подключении клипсой. Сократите длину проводников, зачистите выводы микросхемы и повторите попытку.

Если запись проходит, но верификация падает, попробуйте снизить скорость работы, если программа это позволяет, и проверьте, что перед записью выполнялось полное стирание. Повторяющиеся ошибки верификации на одном и том же чипе могут указывать на неисправность самой микросхемы.

Почему чтение возвращает только FF или 00

Такой результат обычно означает, что обмена с микросхемой нет вообще: нет контакта, неверно выбран тип чипа, микросхема запитана неправильно или перемычка программатора стоит не в том режиме. Реальная «чистая» флеш после стирания читается как FF, но если программа показывает FF даже на чипе, где точно записаны данные — ищите проблему в подключении, а не в прошивке.

Работа в Linux через flashrom

В Linux драйвер для CH341A обычно не требуется — поддержка есть в ядре, а для прошивки SPI-флеш используется утилита flashrom. Она доступна в репозиториях большинства дистрибутивов и устанавливается стандартным пакетным менеджером.

Чтение дампа выполняется командой вида:

flashrom -p ch341a_spi -r backup.bin

Запись прошивки — аналогично, с ключом -w:

flashrom -p ch341a_spi -w firmware.bin

Утилита автоматически определяет чип и выполняет верификацию после записи. Учтите, что flashrom работает только с SPI-памятью — для EEPROM серии 24 под Linux придётся искать другие инструменты или использовать Windows-программы.

Часто задаваемые вопросы

Почему Windows определяет CH341A как «USB2.0-Print»?

Это означает, что драйвер не установлен, и система подставила стандартное описание устройства. Установите пакет CH341SER от имени администратора и переподключите программатор — после этого в разделе «Порты (COM и LPT)» должно появиться устройство USB-SERIAL CH341A.

Можно ли прошивать микросхемы 1.8V напрямую?

Напрямую — нет. Классическая плата CH341A выдаёт питание 5 В (либо 3,3 В на логических линиях в зависимости от ревизии), что для чипов 1,8 В критично. Используйте специальный адаптер-преобразователь уровней 1.8V, который вставляется между программатором и микросхемой.

Программа не определяет микросхему — что проверить в первую очередь?

Проверьте ориентацию чипа в панельке (ключ к рычагу), качество контакта, положение перемычки режима на плате и соответствие напряжения питания. Если всё в порядке — попробуйте другую программу, например NeoProgrammer вместо классической версии: базы поддерживаемых чипов у них различаются.

Можно ли прошить BIOS, не выпаивая микросхему с платы?

Технически это возможно через прищепку SOIC8, но результат не гарантирован: питание от программатора может уходить на всю плату, и чип будет читаться с ошибками. Помогает сокращение проводов и иногда — подача питания на само устройство, но наиболее надёжный способ — выпаивание микросхемы.

Где брать прошивку для конкретного устройства?

Ищите дамп для точной модели и ревизии платы вашего устройства — на профильных форумах по ремонту или на сайте производителя (если прошивка распространяется официально). Прошивка от «похожей» модели может окончательно вывести устройство из строя, поэтому сверяйте маркировку платы, а не только название на корпусе.