Программатор Сергея Вертьянова: назначение, схема и работа с SPI Flash

Программатор Сергея Вертьянова — это простое самодельное устройство для чтения и записи микросхем SPI Flash (серий 25xxx), которое подключается к LPT-порту компьютера и широко применяется при восстановлении BIOS материнских плат, прошивке видеокарт, спутниковых тюнеров и DVD-проигрывателей. Схема получила распространение на профильных форумах по ремонту электроники благодаря минимальному количеству деталей: фактически это несколько резисторов, разъём и провода, соединяющие параллельный порт с микросхемой памяти напрямую.

Устройство относится к классу так называемых «прямых» программаторов без собственного контроллера: всю работу по формированию сигналов выполняет программное обеспечение на ПК, дергая линии LPT-порта. Из этого следуют и главные ограничения — нужен компьютер с «железным» параллельным портом (PCI-карты и переходники USB-LPT обычно не подходят), а также короткие провода и стабильное питание микросхемы. Ниже разберём, для каких задач подходит этот программатор, как его собрать и как избежать типовых ошибок при прошивке.

Назначение и область применения

Основная задача программатора — работа с микросхемами последовательной флеш-памяти с интерфейсом SPI. Это корпуса SOIC-8, SOIC-16 и аналогичные, в которых хранится прошивка устройства. Типичные сценарии использования:

  • 🔧 восстановление материнской платы после неудачного обновления BIOS;
  • 📺 прошивка памяти мониторов, телевизоров и DVD-техники;
  • 🛰️ перепрошивка спутниковых ресиверов и тюнеров;
  • 🎮 восстановление видеокарт после экспериментов с видеоBIOS;
  • 💾 чтение и сохранение дампа прошивки перед ремонтом или модификацией.

Важно понимать границу применимости: программатор рассчитан именно на SPI Flash с напряжением питания 3,3 В (и отдельными оговорками — на чипы, толерантные к уровням LPT). Для параллельных флешей, микросхем 24xx (I²C) или 93xx (Microwire) существуют другие схемы, и подключать их к этой конструкции напрямую нельзя.

Принцип работы и устройство схемы

Схема предельно проста: сигнальные линии параллельного порта (MOSI, MISO, SCK, CS) через токоограничительные резисторы соединяются с соответствующими выводами микросхемы памяти. Резисторы согласуют уровни и защищают порт от перегрузки. Питание микросхемы обычно берётся отдельно — от стабилизированного источника 3,3 В, поскольку сам LPT-порт питание нагрузки не обеспечивает.

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

Почему не работают переходники USB-LPT

Такие переходники эмулируют порт только на уровне принтерного протокола и не дают прямого доступа к регистрам по аппаратным адресам. Программное «дергание» отдельных линий через них невозможно, поэтому программатор требует либо встроенный LPT на материнской плате, либо (в ряде случаев) PCI-карту с реальными адресами порта — совместимость нужно проверять на конкретной связке железа и софта.

Что понадобится для сборки

Перед сборкой подготовьте компоненты и проверьте наличие подходящего компьютера. Точные номиналы резисторов и распиновку берите из исходного описания схемы автора или проверенных источников — разные версии конструкции могут незначительно отличаться.

  • 🔌 разъём DB-25 (папа) для подключения к LPT-порту;
  • 🧵 резисторы для согласования линий — номиналы по схеме автора;
  • 🔋 стабилизированный источник питания 3,3 В для микросхемы;
  • 📎 панелька SOIC-8 или прищепка-клипса для подключения без выпаивания;
  • 💻 компьютер со встроенным LPT-портом и совместимой ОС.
⚠️ Внимание: питание 5 В вместо 3,3 В способно необратимо повредить микросхему SPI Flash. Перед первым подключением обязательно измерьте напряжение на панельке мультиметром, а не полагайтесь на маркировку блока питания.

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

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

Общий порядок действий выглядит так:

☑️ Подготовка к прошивке SPI Flash

Выполнено: 0 / 6

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

📊 Для какой задачи вам нужен программатор Вертьянова
Восстановление BIOS материнской платы
Прошивка монитора или телевизора
Ремонт тюнера или ресивера
Снятие дампа для изучения

Работа с программным обеспечением

Для этого семейства схем используется софт, работающий с LPT-портом напрямую, — классическим примером считается SPIPGM и аналогичные утилиты, запускаемые из командной строки. Типовая логика команд: сначала идентификация чипа, затем чтение, стирание и только потом запись с верификацией. Пример последовательности (синтаксис зависит от конкретной утилиты — сверяйтесь с её справкой):

spipgm /i        rem определение микросхемы

spipgm /r dump.bin rem чтение в файл

spipgm /v dump.bin rem сверка содержимого с файлом

На 64-битных версиях Windows прямой доступ к порту заблокирован — программы могут не видеть LPT без специального драйвера порта или вообще потребовать 32-битную систему либо DOS-загрузку. Это не неисправность программатора, а ограничение операционной системы. Практичные варианты: старый ПК с 32-битной ОС или загрузочная DOS-флешка.

⚠️ Внимание: запись новой прошивки без предварительно сохранённого и проверенного дампа — необратимый риск. Если запись прервётся или файл окажется «чужим», устройство перестанет включаться, а восстановить родную прошивку будет нечем.

Типичные проблемы и их диагностика

Большинство неполадок связано не со схемой, а с окружением: портом, ОС, проводами и питанием. Сводная таблица поможет быстро сориентироваться:

СимптомВероятная причинаЧто проверить
Чип не определяется, читаются нулиНет контакта или неверная распиновкаМонтаж, питание 3,3 В, соответствие выводов
Читаются только единицы (FF)Линия MISO не подключена или чип обесточенЦелостность провода данных, питание микросхемы
Дампы при повторном чтении различаютсяДлинные провода, наводки, просадка питанияУкоротить провода, добавить конденсатор по питанию
Программа не видит LPT-портОграничение 64-битной ОС или отключенный портBIOS/настройки порта, 32-битная ОС или DOS
Запись проходит, верификация — нетНестабильный контакт или неисправный чипПовторить стирание, проверить панельку, заменить чип

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

Альтернативы и когда стоит выбрать другое решение

LPT-программатор оправдан, если под рукой есть старый компьютер с параллельным портом и нужно разово прошить SPI Flash практически бесплатно. Однако у подхода есть объективные минусы: зависимость от устаревающего «железа», невысокая скорость, чувствительность к длине проводов и отсутствие защиты от ошибок подключения.

Если прошивать микросхемы приходится регулярно, разумнее рассмотреть недорогие USB-программаторы на базе готовых контроллеров (например, популярные решения семейства CH341 и аналоги). Они работают с современными ОС, не требуют LPT и поддерживаются актуальным софтом с графическим интерфейсом. Схема Вертьянова при этом остаётся полезной как аварийный вариант «из подручных деталей» и как наглядный пример устройства интерфейса SPI.

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

Подойдёт ли программатор Вертьянова для микросхем 24-й серии (I²C)?

Нет. Схема рассчитана на протокол SPI и микросхемы серии 25xxx. Для чипов 24xx нужны другие схемы и другой софт, работающие по шине I²C.

Можно ли использовать переходник USB-LPT?

Практически всегда — нет. Такие переходники не предоставляют прямого доступа к регистрам порта по аппаратным адресам, а программатору нужно управлять отдельными линиями. Требуется встроенный LPT-порт материнской платы.

Работает ли программатор на Windows 10/11 64-бит?

Напрямую — как правило, нет: система блокирует прямой доступ к портам. Используйте 32-битную ОС, загрузку в DOS либо специализированные драйверы доступа к портам, проверяя совместимость на своей конфигурации.

Что делать, если ID микросхемы не читается?

Проверьте питание 3,3 В на панельке, правильность распиновки, целостность проводов и их длину. Убедитесь, что микросхема исправна и правильно вставлена. Записывать прошивку до устранения проблемы нельзя.

Можно ли прошить чип, не выпаивая его из платы?

Иногда да — через клипсу SOIC-8, но успех зависит от схемы конкретного устройства: соседние элементы и штатное питание платы могут мешать. Если чтение нестабильно, микросхему следует выпаять.