Микроконтроллер PIC16F628A прошивается по интерфейсу ICSP через выводы RB6 (PGC), RB7 (PGD), MCLR/VPP, питание VDD и землю VSS — и если программатор не видит чип, первым делом нужно проверить именно эти пять линий, а не менять софт. Ошибка «Device not detected» при работе с этим контроллером чаще всего связана с неправильным подключением MCLR или недостаточным напряжением программирования VPP, которое для этого семейства должно быть заметно выше питающих 5 В.
Несмотря на возраст архитектуры, PIC16F628A остаётся популярным в радиолюбительских конструкциях: частотомеры, таймеры, регуляторы, кодовые замки. Под него написаны тысячи готовых прошивок, поэтому вопрос выбора и настройки программатора актуален до сих пор. В этом материале разберём, какие программаторы подходят для данного чипа, как собрать простой вариант своими руками, как подключить контроллер и что проверять, если прошивка завершается ошибкой верификации.
Особенности программирования PIC16F628A
Чип относится к семейству Mid-Range микроконтроллеров Microchip и поддерживает внутрисхемное программирование ICSP (In-Circuit Serial Programming). Это значит, что прошить его можно как в панельке программатора, так и прямо в готовом устройстве, если плата спроектирована с учётом такой возможности.
Для входа в режим программирования на вывод MCLR/VPP подаётся повышенное напряжение — по документации Microchip оно находится в диапазоне примерно 12–14 В при питании чипа 5 В. Именно этот параметр — главное ограничение для самодельных программаторов: без стабильного источника VPP прошивка либо не начнётся, либо завершится сбоем. Точные допустимые значения стоит сверять с даташитом на конкретную ревизию чипа.
Объём Flash-памяти программ у контроллера невелик по современным меркам, но для типовых задач автоматики его хватает. Также чип содержит область EEPROM-данных и конфигурационное слово (Configuration Word), которым задаются тип тактового генератора, сторожевой таймер и защита кода — ошибки в этих битах способны «заблокировать» чип для повторной прошивки только внешне, на деле проблема решается полным стиранием.
Какие программаторы подходят для PIC16F628A
Самый надёжный путь — фирменные программаторы Microchip: PICkit 2, PICkit 3 или их качественные совместимые клоны. Они формируют корректное напряжение VPP автоматически, поддерживаются фирменной средой MPLAB и умеют питать целевую схему. PICkit 2 хоть и снят с производства, до сих пор массово встречается в виде клонов и полностью поддерживает PIC16F628A.
Второй вариант — классический программатор JDM для COM-порта. Его схема предельно проста, но есть серьёзное ограничение: он корректно работает только с «железным» последовательным портом настольного ПК. Переходники USB-to-COM и ноутбуки без COM-порта с JDM, как правило, несовместимы из-за других уровней сигналов и таймингов.
- 🔌 PICkit 2 / PICkit 3 (клоны) — оптимальный выбор по соотношению цены и стабильности, подключение по USB.
- 🖥️ JDM-программатор — бюджетно, но требует настоящего COM-порта и программы вроде IC-Prog или WinPic.
- 🧰 PICkit 4 / Snap — современные фирменные инструменты, избыточны для одного чипа, но универсальны.
- ⚙️ Готовые USB-программаторы из магазинов радиодеталей — проверяйте наличие PIC16F628A в списке поддерживаемых устройств до покупки.
Сравнение популярных вариантов
Чтобы выбор был наглядным, сведём ключевые характеристики решений в таблицу. Данные по ценам намеренно не приводятся — они сильно зависят от региона и продавца.
| Программатор | Интерфейс | Формирование VPP | Сложность для новичка |
|---|---|---|---|
| PICkit 2 (клон) | USB | Автоматически | Низкая |
| PICkit 3 | USB | Автоматически | Низкая |
| JDM (самодельный) | COM-порт | От порта, нестабильно | Высокая |
| PICkit 4 / Snap | USB | Автоматически | Средняя |
Если планируется разовая прошивка одной готовой конструкции, разумнее всего взять недорогой клон PICkit 2: он избавит от пайки самодельной схемы и борьбы с уровнями COM-порта. Для постоянной работы с микроконтроллерами Microchip вложение в PICkit 3 или Snap оправдано расширенным списком поддерживаемых чипов.
Для PIC16F628A критично стабильное напряжение программирования VPP — поэтому фирменные программаторы с автоматической его генерацией надёжнее самодельных схем на COM-порте.
Распиновка и подключение по ICSP
Подключение контроллера к программатору выполняется по пяти линиям. Для корпуса DIP-18 расположение выводов следующее: VPP/MCLR — вывод 4, VDD — вывод 14, VSS (GND) — вывод 5, RB7/PGD — вывод 13, RB6/PGC — вывод 12. Перед подключением обязательно сверьтесь с даташитом, так как ошибка даже в одном проводе может вывести чип из строя при подаче VPP.
При внутрисхемном программировании есть нюансы. Выводы RB6 и RB7 в целевом устройстве не должны быть нагружены элементами, мешающими передаче данных, — например, подтяжками или конденсаторами на землю. Линия MCLR в схеме обычно подтянута к питанию через резистор; при прошивке программатор должен иметь возможность поднять на ней высокое напряжение, поэтому ёмкость и жёсткая привязка MCLR к VDD недопустимы.
⚠️ Внимание: никогда не подавайте напряжение программирования VPP на вывод MCLR, если он напрямую соединён с шиной питания VDD схемы — это может повредить и микроконтроллер, и другие компоненты платы. В схемах с ICSP MCLR отделяют от VDD диодом или резистором.
☑️ Подготовка к прошивке PIC16F628A
Пошаговая прошивка через PICkit 2
Рассмотрим типовой порядок действий на примере клона PICkit 2 с фирменной утилитой — это наиболее доступный сценарий. Сначала установите программу PICkit 2 Programmer с сайта Microchip, подключите программатор к USB и дождитесь его определения системой.
Далее вставьте чип в панельку адаптера либо подключите ICSP-кабель к целевой плате. В программе выберите в меню Device Family → Midrange и убедитесь, что чип определился как PIC16F628A — при корректном подключении утилита распознаёт его автоматически. После этого загрузите прошивку через File → Import Hex.
Перед записью проверьте конфигурационные биты: если HEX-файл содержит их внутри, программа подставит значения автоматически, и менять их без понимания не нужно. Затем нажмите кнопку Write и дождитесь сообщения об успешной верификации. Если чип должен питаться от программатора, включите опцию VDD On в интерфейсе — но только когда целевая схема не запитана отдельно.
Если утилита PICkit 2 не определяет чип автоматически, попробуйте вручную выбрать PIC16F628A в списке устройств и выполнить чтение — успешное чтение «чистого» чипа (все единицы) подтверждает, что связь по ICSP работает.
Самодельный JDM-программатор: что учесть
Схема JDM привлекает минимумом деталей: несколько резисторов, стабилитроны, транзистор и разъём COM-порта. Напряжение программирования здесь формируется из сигналов самого порта, поэтому стабильность VPP зависит от конкретного железа компьютера. На старых материнских платах с полноценным RS-232 такие программаторы работали исправно, с современными переходниками — почти никогда.
Для прошивки через JDM исторически применялись программы IC-Prog и WinPic800. В настройках нужно явно указать тип программатора (JDM) и номер COM-порта. Учтите, что на современных версиях Windows работа этих утилит не гарантирована — они разрабатывались под старые ОС и прямой доступ к порту.
Почему JDM не работает с переходником USB-COM
Переходники USB-to-RS232 формируют другие уровни напряжений и не позволяют программе управлять линиями порта с нужными таймингами. JDM получает питание и VPP непосредственно от сигнальных линий порта, поэтому любое отклонение приводит к сбою записи или ошибке верификации.
⚠️ Внимание: при сборке самодельного программатора тщательно проверяйте полярность стабилитронов и электролитических конденсаторов до первого включения. Ошибка в цепи формирования VPP может вывести микроконтроллер из строя без возможности восстановления.
Типичные ошибки и их устранение
Самая частая жалоба — программатор не определяет чип. Начните с механики: окисленные контакты панельки, перепутанная ориентация корпуса (ключ на первом выводе), обрыв в самодельном кабеле. Затем проверьте мультиметром наличие питания VDD на выводе 14 относительно вывода 5 в момент попытки чтения.
Ошибка верификации по конкретному адресу обычно указывает на проблемы с VPP или слишком длинные провода ICSP — линии данных чувствительны к наводкам, поэтому кабель делают как можно короче. Также подобный сбой возникает, если в схеме на RB6/RB7 установлены конденсаторы или чип питается от нестабильного источника.
- 🔍 Чип не определяется — проверить контакт в панельке, ориентацию, питание VDD.
- 📉 Ошибка верификации — укоротить провода ICSP, проверить стабильность VPP и VDD.
- 🔒 После прошивки устройство не работает — проверить конфигурационные биты: тип генератора и WDT.
- 🔁 Чип «не стирается» — выполнить полное стирание (Erase) перед повторной записью.
Отдельный случай — прошивки, рассчитанные на внутренний генератор. Если в конфигурационном слове выбран внешний кварц, а в схеме его нет, устройство после прошивки будет «мёртвым», хотя запись прошла успешно. Всегда сверяйте требования автора прошивки с реальной схемой устройства.
Большинство проблем с прошивкой PIC16F628A сводится к трём причинам: плохой контакт, нестабильное VPP и неверные конфигурационные биты — проверяйте их в первую очередь.
Часто задаваемые вопросы
Можно ли прошить PIC16F628A через Arduino?
Теоретически существуют любительские проекты скетчей для прошивки PIC через Arduino, но они не формируют корректное напряжение VPP без дополнительной обвязки и поддерживают ограниченный набор чипов. Для надёжного результата лучше использовать специализированный программатор.
Чем отличается PIC16F628 от PIC16F628A?
Версия с индексом «A» — обновлённая ревизия с улучшенными характеристиками. Для программатора они обычно взаимозаменяемы, но в ПО нужно выбирать именно ту версию, которая установлена, — конфигурация и алгоритмы записи могут различаться.
Защищённый битами чип можно перепрошить?
Да. Установленный бит защиты кода (CP) запрещает чтение прошивки, но не мешает полному стиранию. После выполнения команды Erase чип снова доступен для записи новой программы.
Какой длины можно делать провода ICSP?
Чем короче, тем лучше: длинные провода вносят ёмкость и наводки, из-за которых появляются ошибки верификации. На практике стараются укладываться в 10–15 см; если нужно больше, снижают скорость программирования, если программатор это позволяет.
Можно ли питать схему от программатора во время прошивки?
Да, PICkit умеет подавать питание на целевую плату, но ток ограничен. Если устройство потребляет заметный ток или содержит элементы, чувствительные к последовательности подачи питания, запитывайте схему отдельно, а опцию питания от программатора отключите.