Программатор K150 — один из самых доступных USB-программаторов для микроконтроллеров PIC, но именно с ним чаще всего возникает проблема «плата определяется, а чип не прошивается»: причина почти всегда кроется в неправильном подключении линий ICSP или в несоответствии выбранного в программе контроллера реальному. Этот программатор построен на базе PIC16F628(A) и работает через виртуальный COM-порт, поэтому корректная установка драйвера — первое, что нужно проверить до любых попыток прошивки.

В этой инструкции разберём подключение K150 по ICSP, распиновку разъёма, настройку ПО и типовые ошибки. Материал ориентирован на популярные клоны платы, которые продаются под названием K150 USB PIC Programmer; расположение элементов на вашей конкретной плате может немного отличаться, поэтому сверяйтесь с шелкографией на самой плате.

Что представляет собой программатор K150

Плата K150 выполнена на микроконтроллере PIC16F628A (в некоторых ревизиях — PIC16F628) с микросхемой преобразователя USB-UART, чаще всего на базе PL2303 или аналога. На борту есть ZIF-панель (сокет с нулевым усилием) для прошивки микросхем напрямую и штыревой разъём ICSP для внутрисхемного программирования.

Питание программатор получает от USB-порта компьютера, а напряжение программирования Vpp (около 12–13 В) формируется на самой плате повышающим преобразователем. Именно поэтому для работы не нужен внешний блок питания — но слабый USB-порт или длинный кабель могут приводить к сбоям верификации.

  • 🔌 ZIF-сокет — установка PIC-контроллеров в DIP-корпусе напрямую на плату;
  • 📡 Разъём ICSP — прошивка чипа, уже впаянного в целевое устройство;
  • 💡 Светодиоды — индикация питания и процесса программирования;
  • 🔧 Перемычки — на части плат есть джампер выбора режима, его положение зависит от ревизии.

Установка драйвера и подключение к ПК

После первого подключения K150 к компьютеру Windows определяет его как устройство последовательного порта. Если чип USB-UART — PL2303, на современных системах могут понадобиться драйверы конкретной версии: известны случаи, когда новые драйверы Prolific отказываются работать с неоригинальными чипами, и устройство в диспетчере устройств помечается восклицательным знаком. В такой ситуации обычно помогает установка более ранней версии драйвера PL2303 — конкретную версию стоит искать в описании вашей платы или на профильных форумах.

Проверить результат просто: откройте Диспетчер устройств → Порты (COM и LPT) и убедитесь, что появился новый COM-порт без ошибок. Запомните его номер — он понадобится при настройке программы-прошивальщика.

⚠️ Внимание: подключайте и отключайте целевую плату и микросхемы только при снятом питании. «Горячая» установка чипа в ZIF-сокет или переподключение ICSP-проводов под напряжением может вывести из строя и программатор, и прошиваемый контроллер.

Распиновка разъёма ICSP на K150

Разъём ICSP на плате K150 обычно представляет собой ряд штырей, промаркированных на шелкографии. Стандартный набор сигналов для внутрисхемного программирования PIC одинаков независимо от программатора:

СигналНазначениеВывод на PIC (пример: 16F628A)
VPP / MCLRНапряжение программирования / сбросВывод 4
VDDПитание +5 В целевого чипаВывод 14
GND (VSS)Общий проводВывод 5
PGDДанные программированияВывод 13 (RB7)
PGCТактирование программированияВывод 12 (RB6)

Обратите внимание: расположение сигналов на штыревом разъёме зависит от ревизии платы K150, поэтому перед подключением найдите маркировку рядом с контактами. Распиновку конкретного прошиваемого PIC берите из официального даташита Microchip — у разных семейств (например, 16F84, 16F877, 12F675) номера выводов PGD и PGC отличаются, хотя сами сигналы всегда называются одинаково.

Как найти распиновку вашей платы K150

Включите программатор в USB и мультиметром в режиме прозвонки или измерения напряжения определите контакты: GND звонится с минусом USB-разъёма, на VDD при работе будет около 5 В. Контакт VPP можно найти, запустив тест программирования — на нём кратковременно появится напряжение заметно выше 5 В. PGD и PGC определяются по дорожкам от штырей к выводам RB6/RB7 управляющего PIC16F628A на плате.

Программное обеспечение: настройка и прошивка

Классическая связка для K150 — утилита DIY K150 (также встречается под именем MicroBrn / microbrn.exe). Программа определяет подключённый программатор по COM-порту и поддерживает широкий список PIC-контроллеров. Альтернативные варианты тоже существуют, но MicroBrn остаётся самым проверенным для этой платы.

Порядок прошивки через ICSP выглядит так:

  • ⚙️ Запустите MicroBrn и выберите в списке точную модель вашего PIC — например, 16F628A, а не просто «16F628», если ревизия отличается;
  • 📂 Откройте HEX-файл прошивки через меню File → Load;
  • 🔌 Подключите целевую плату к разъёму ICSP пятью проводами (VPP, VDD, GND, PGD, PGC);
  • ▶️ Нажмите кнопку программирования (Program) и дождитесь окончания записи и верификации;
  • ✅ Убедитесь, что программа сообщила об успешной проверке — только после этого отключайте плату.

☑️ Перед нажатием кнопки Program

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

Отдельного внимания заслуживают configuration bits (биты конфигурации): они задают тип тактирования, сторожевой таймер и защиту кода. Обычно они уже содержатся в HEX-файле, но если автор проекта указал их отдельно, выставьте значения вручную в программе до начала записи.

📊 С какой проблемой вы столкнулись при работе с K150?
Программатор не определяется системой
Ошибка верификации после записи
PIC не определяется программой
Всё работает, ищу инструкцию по ICSP

Особенности внутрисхемного программирования

Главное отличие ICSP от прошивки в ZIF-сокете — влияние обвязки целевой платы. Если выводы RB6/PGC и RB7/PGD в вашем устройстве нагружены на другие компоненты (светодиоды, кнопки, линии связи), это может мешать программированию. В таком случае сигналы не доходят до чипа в чистом виде, и запись обрывается ошибкой.

Практические рекомендации здесь следующие. Во-первых, по возможности проектируйте или дорабатывайте плату так, чтобы линии PGD/PGC были свободны или отделены джамперами. Во-вторых, вывод MCLR не должен быть жёстко притянут к питанию низкоомным резистором — программатору нужно подавать на него Vpp. В-третьих, решите вопрос питания: либо целевая плата запитывается от K150 по линии VDD, либо от собственного источника, но оба источника одновременно подключать к линии VDD нельзя — это типичная причина выхода из строя портов и самого программатора.

💡

Если прошивка внутрисхемно не идёт, а чип в DIP-корпусе — извлеките его и прошейте в ZIF-сокете K150. Это быстрый способ отделить проблемы обвязки платы от проблем самого программатора.

Типовые ошибки и их устранение

Самая частая жалоба — программа не видит программатор или выдаёт ошибку связи. Проверьте по порядку: определился ли COM-порт в системе, выбран ли правильный номер порта в настройках MicroBrn, не занят ли порт другой программой (терминалом, Arduino IDE). Иногда помогает простое переподключение USB-кабеля в другой порт компьютера.

Вторая группа проблем — ошибки верификации: запись проходит, но проверка показывает несовпадение данных. Возможные причины: длинные или некачественные провода ICSP (держите их короткими, желательно до 15–20 см), недостаточное питание от USB, неверно выбранная модель чипа в программе. Также старые экземпляры PIC с изношенной флеш-памятью могут не проходить верификацию — проверьте чип заменой на заведомо исправный.

⚠️ Внимание: если программа сообщает, что не может определить чип или читает его как «все нули» / «все единицы», сначала перепроверьте распиновку. Перепутанные PGD и PGC — самая безобидная ошибка, а вот подача Vpp на неправильный вывод способна необратимо повредить контроллер.

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

💡

K150 — рабочий бюджетный инструмент для PIC, но 90% проблем с ним решаются тремя проверками: правильный COM-порт и драйвер, корректная распиновка ICSP и точно выбранная модель контроллера в программе.

FAQ: частые вопросы о программаторе K150

Какие микроконтроллеры поддерживает K150?

Программатор рассчитан на широкий ряд 8-битных PIC среднего семейства: серии 10F, 12F, 16F и часть 18F. Точный список зависит от версии прошивки платы и программы — актуальный перечень виден в выпадающем списке MicroBrn. Если вашего чипа там нет, прошить его этим программатором не получится.

Можно ли питать целевую плату от K150 по ICSP?

Да, линия VDD разъёма ICSP выдаёт питание от USB. Но это допустимо только для малопотребляющих плат без нагрузки. Если устройство имеет собственный источник питания, линию VDD от программатора подключать не нужно — достаточно GND, VPP, PGD и PGC.

Почему MicroBrn не видит программатор?

Наиболее вероятные причины: не установлен или конфликтует драйвер USB-UART (проверьте диспетчер устройств), неверно указан номер COM-порта в настройках программы, либо порт занят другим приложением. Также попробуйте другой USB-порт и кабель.

Подойдёт ли K150 для прошивки AVR или STM32?

Нет. K150 — специализированный программатор только для PIC-контроллеров Microchip. Для AVR нужны программаторы типа USBasp или AVRISP, для STM32 — ST-Link или аналоги.

Что делать, если верификация прошивки не проходит?

Сократите длину ICSP-проводов, убедитесь, что выбрана точная модель чипа, проверьте стабильность питания и попробуйте другой экземпляр микроконтроллера. Если чип прошивается в ZIF-сокете, но не прошивается внутрисхемно — проблема в обвязке целевой платы на линиях PGD/PGC/MCLR.