Микроконтроллер PIC18F67K22 программируется исключительно через интерфейс ICSP (In-Circuit Serial Programming) — выделенного UART, USB или SPI для загрузки прошивки у этого чипа нет, поэтому без аппаратного программатора обойтись не получится. Для записи используются линии PGC, PGD, MCLR/VPP, а также питание VDD и VSS.

Хорошая новость в том, что семейство PIC18F-K22 поддерживается всей линейкой официальных инструментов Microchip — от бюджетного PICkit 3 до профессионального отладчика MPLAB ICD 3 и более новых PICkit 4 / MPLAB SNAP. Ниже разберём, чем прошить PIC18F67K22, как подключить программатор и какие ошибки встречаются чаще всего.

Какие программаторы подходят для PIC18F67K22

Основной критерий выбора — поддержка чипа в среде разработки MPLAB X IDE и наличие стандартного ICSP-интерфейса. PIC18F67K22 — относительно современный контроллер, поэтому он поддерживается всеми актуальными инструментами Microchip.

  • 🔧 PICkit 3 — классический бюджетный вариант, подходит для разовой прошивки и отладки; до сих пор массово доступен, включая совместимые клоны.
  • 🔧 PICkit 4 — более быстрый преемник, поддерживает расширенные функции и питание целевой платы.
  • 🔧 MPLAB SNAP — недорогой официальный отладчик на базе ARM, полноценно работает с PIC18 через MPLAB X IDE.
  • 🔧 MPLAB ICD 3 / ICD 4 — профессиональные отладчики для серийной разработки, устойчивы к проблемам с питанием.
  • 🔧 MPLAB REAL ICE — топовый эмулятор, оправдан в основном при коммерческой разработке.

Китайские клоны PICkit 3 работают с этим чипом, но качество сборки непредсказуемо. Если программатор нужен для регулярной работы, надёжнее взять оригинальный SNAP — по цене он часто сопоставим с клоном.

📊 Каким программатором вы прошиваете PIC18F67K22?
PICkit 3 или его клон
PICkit 4
MPLAB SNAP
ICD 3 / ICD 4

Сравнение программаторов

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

ПрограмматорОтладкаСкорость прошивкиУровень
PICkit 3ДаСредняяЛюбительский
MPLAB SNAPДаСредняяЛюбительский/полупро
PICkit 4ДаВысокаяПолупрофессиональный
MPLAB ICD 4ДаВысокаяПрофессиональный
MPLAB REAL ICEДа, расширеннаяВысокаяПромышленный

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

💡

Для разовой прошивки PIC18F67K22 достаточно любого программатора с ICSP — PICkit 3, SNAP или PICkit 4 справятся одинаково.

Схема подключения по ICSP

Распиновку конкретного корпуса (TQFP-64 или TQFP-80) обязательно сверяйте с официальным даташитом на PIC18F67K22 — расположение выводов зависит от исполнения. Общий принцип подключения одинаков:

  • 📌 PGC — тактовый сигнал программирования;
  • 📌 PGD — линия данных;
  • 📌 MCLR/VPP — сброс и напряжение программирования;
  • 📌 VDD и VSS — питание целевого чипа;
  • 📌 у PIC18F67K22 есть несколько пар выводов питания — все они должны быть запитаны и развязаны конденсаторами, иначе чип может не определиться.

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

⚠️ Внимание: не подавайте питание на целевую плату одновременно от программатора и от внешнего источника. Выберите один вариант: либо питание от программатора (если ток позволяет), либо внешнее питание платы при подключённых сигнальных линиях и общей земле.

Прошивка через MPLAB X IDE: пошагово

Среда MPLAB X IDE — официальный и бесплатный инструмент Microchip. Для компиляции собственного кода дополнительно ставится компилятор XC8; если у вас уже есть готовый HEX-файл, компилятор не обязателен.

☑️ Проверка перед прошивкой PIC18F67K22

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

Порядок действий для загрузки готового файла:

Сначала установите MPLAB X IDE и подключите программатор к компьютеру. Затем создайте проект через File → New Project, выберите тип Prebuilt (Hex) Project и укажите путь к HEX-файлу. В поле устройства выберите PIC18F67K22, в поле инструмента — ваш программатор. После создания проекта нажмите кнопку Make and Program Device — среда запишет прошивку и выполнит верификацию.

Если чип не определяется, MPLAB выдаст ошибку соединения с целевым устройством. В этом случае проверьте питание, целостность линий PGC/PGD и правильность выбора чипа в настройках проекта.

💡

Для серийной прошивки без IDE используйте MPLAB IPE — облегчённую утилиту из того же пакета, где оператору доступна только кнопка Program.

Низковольтное и высоковольтное программирование

PIC18F67K22 поддерживает два режима входа в программирование: классический с повышенным напряжением на MCLR/VPP и низковольтный (LVP), когда используется отдельный вывод и напряжение питания. Режим LVP включается конфигурационными битами прошивки.

На практике чаще применяют стандартный режим через VPP — все перечисленные программаторы его поддерживают аппаратно. Если чип ранее прошивался с отключённым LVP и занятым соответствующим выводом, вернуться к низковольтному режиму без высоковольтного программатора не получится.

⚠️ Внимание: при изменении конфигурационных битов (Configuration Words) в прошивке проверяйте настройки осциллятора и сторожевого таймера. Неверная конфигурация тактирования — частая причина ситуации «прошилось успешно, но устройство не работает».
Что делать, если чип не определяется программатором

Проверьте, что все выводы VDD/VSS запитаны, а рядом с ними стоят развязочные конденсаторы. Убедитесь, что MCLR не прижат к земле внешней цепью. Попробуйте снизить скорость ICSP в настройках программатора, если она доступна. Проверьте длину проводов — длинные шлейфы между программатором и платой ухудшают сигнал. Наконец, убедитесь, что в проекте выбран именно PIC18F67K22, а не похожий чип семейства.

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

Чаще всего проблемы связаны не с самим чипом, а с обвязкой. Незапитанные дублирующие выводы питания, нагруженные линии RB6/RB7 и конфликт источников питания составляют основу обращений на форумах.

Вторая группа ошибок — программная: несовпадение устройства в проекте и на плате, устаревший файл прошивки, неверные конфигурационные биты. HEX-файл содержит в себе конфигурационные биты, поэтому прошивка от другой модификации семейства может записаться, но работать не будет.

Третья причина — неисправный или несовместимый клон программатора. Если верификация стабильно падает на одном и том же адресе, попробуйте другой программатор или другой USB-порт и кабель.

💡

Девять из десяти проблем с прошивкой PIC18F67K22 решаются проверкой питания всех пар VDD/VSS и освобождением линий PGC/PGD от внешней нагрузки.

Частые вопросы

Можно ли прошить PIC18F67K22 через USB-UART переходник?

Нет, если в чип не записан загрузчик (bootloader). Заводской чип пустой и понимает только ICSP. Загрузчик можно записать один раз программатором, после чего обновлять прошивку через UART.

Подойдёт ли PICkit 2 для этого контроллера?

PICkit 2 официально не поддерживает семейство PIC18F-K22. Используйте PICkit 3, PICkit 4, SNAP или ICD.

Нужно ли выпаивать чип из платы для прошивки?

Нет, ICSP как раз рассчитан на внутрисхемное программирование. Главное — чтобы линии PGC/PGD и MCLR не были конфликтно нагружены схемой устройства.

Где взять даташит и распиновку PIC18F67K22?

На официальном сайте Microchip в разделе документации по модели. Там же доступны руководство по программированию семейства и примеры кода.

Чип прошился, но устройство не запускается. Что проверить?

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