USB програматор PIC своїми руками

Збираємо програматор для мікроконтролерів PIC і мікросхем EEPROM

Які перші кроки повинен зробити радіоаматор, який вирішив зібрати схему на мікроконтролері? Природно, необхідна керуюча програма – "прошивка", а також програматор.І якщо з першим пунктом немає проблем – готову "прошивку" зазвичай викладають автори схем, то ось з програматором справи йдуть складніше.Ціна готових USB-программаторов досить висока і найкращим рішенням буде зібрати його самостійно. Ось схема пропонованого пристрою (картинки клікабельні).

Панель установки МК.

Початкова схема взята з сайту LabKit.ru з дозволу автора, за що йому велике спасибі. Це так званий клон фірмового програматора PICkit2. Так як варіант пристрою є "полегшеної" копією фірмового PICkit2, то автор назвав свою розробку PICkit-2 Lite, Що підкреслює простоту збірки такого пристрою для початківців радіоаматорів.Що може програматор? За допомогою програматора можна буде прошити більшість легкодоступних і популярних МК серії PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A і ін.), А також мікросхеми пам'яті EEPROM серії 24LC. Крім цього програматор може працювати в режимі USB-UART перетворювача, має частину функцій логічного аналізатора. Особливо важлива функція, яку має програматор – це розрахунок калібрувальної константи вбудованого RC-генератора деяких МК (наприклад, таких як PIC12F629 і PIC12F675).

Необхідні зміни.

У схемі є деякі зміни, які необхідні для того, щоб за допомогою програматора PICkit-2 Lite була можливість записувати / прати / зчитувати дані у мікросхем пам'яті EEPROM серії 24Cxx.Із змін, які були внесені в схему. Додано з'єднання від 6 виведення DD1 (RA4) до 21 виводу ZIF-панелі. Висновок AUX використовується виключно для роботи з мікросхемами EEPROM-пам'яті 24LС (24C04, 24WC08 і аналоги). По ньому передаються дані, тому на схемі панелі програмування він позначений словом "Data". При програмуванні мікроконтролерів висновок AUX зазвичай не використовується, хоча він і потрібен при програмуванні МК в режимі LVP.Також доданий "підтягуючий" резистор на 2 кОм, який включається між висновком SDA і Vcc мікросхем пам'яті.Всі ці доробки я вже робив на друкованій платі, після складання PICkit-2 Lite по вихідній схемі автора.Мікросхеми пам'яті 24Cxx (24C08 і ін.) Широко використовуються в побутовій радіоапаратурі, і їх іноді доводиться прошивати, наприклад, при ремонті телевізорів кінескопів. У них пам'ять 24Cxx застосовується для зберігання налаштувань.У ЖК-телевізорах застосовується вже інший тип пам'яті (Flash-пам'ять). Про те, як прошити пам'ять ЖК-телевізора я вже розповідав. Кому цікаво, загляньте.У зв'язку з необхідністю роботи з мікросхемами серії 24Cxx мені і довелося "допілівать" програматор. Труїти нову друковану плату я не став, просто додав необхідні елементи на друкованій платі. Ось що вийшло.

Ядром пристрою є мікроконтролер PIC18F2550-I / SP.

Це єдина мікросхема в пристрої. МК PIC18F2550 необхідно "прошити". Ця проста операція у багатьох викликає ступор, так як виникає так звана проблема "курки і яйця". Як її вирішив я, розповім трохи пізніше.Список деталей для зборки програматора. У мобільній версії потягніть таблицю вліво (свайп вліво-вправо), щоб побачити всі її стовпці.

НазвапозначенняНомінал / ПараметриМарка або тип елемента
Для основної частини програматора
мікроконтролерDD18-ми бітний мікроконтролерPIC18F2550-I / SP
біполярні транзисториVT1, VT2, VT3КТ3102
VT4КТ361
діодVD1КД522, 1N4148
діод ШотткіVD21N5817
світлодіодиHL1, HL2будь-який на 3 вольта, червоного і зеленого кольору світіння
резисториR1, R2300 ОмМЛТ, МОН (потужністю від 0,125 Вт і вище), імпортні аналоги
R322 кОм
R41 кОм
R5, R6, R1210 кОм
R7, R8, R14100 Ом
R9, R10, R15, R164,7 кОм
R112,7 кОм
R13100 кОм
конденсаториC20,1 мкК10-17 (керамічні), імпортні аналоги
C30,47 мк
електролітичні конденсаториC1100 МКФ * 6,3 вК50-6, імпортні аналоги
C447 мкф * 16 в
Котушка індуктивності (дросель)L1680 мкГнуніфікований типу EC24, CECL або саморобний
Кварцовий резонаторZQ120 МГц
USB-розеткаXS1типу USB-BF
перемичкаXT1будь-яка типу "джампер"
Для панелі установки мікроконтролерів (МК)
ZIF-панельXS1будь-яка 40-ка контактна ZIF-панель
резисториR12 кОмМЛТ, МОН (потужністю від 0,125 Вт і вище), імпортні аналоги
R2, R3, R4, R5, R610 кОм
Тепер трохи про деталі і їх призначення.зелений світлодіод HL1 світиться, коли на програматор подано харчування, а червоний світлодіод HL2 випромінює в момент передачі даних між комп'ютером і програматором.Для додання пристрою універсальності і надійності використовується USB-розетка XS1 типу "B" (квадратна). У комп'ютері ж використовується USB-розетка типу "А". Тому переплутати гнізда з'єднувального кабелю неможливо. Також таке рішення сприяє надійності пристрою. Якщо кабель прийде в непридатність, то його легко замінити новим не вдаючись до пайки і монтажних робіт.Як дросель L1 на 680 мкГн краще застосувати готовий (наприклад, типів EC24 або CECL). Але якщо готовий виріб знайти не вдасться, то дросель можна виготовити самостійно. Для цього потрібно намотати 250 – 300 витків дроту ПЕЛ-0,1 на сердечник з фериту від дроселя типу CW68. Варто врахувати, що завдяки наявності ШІМ зі зворотним зв'язком, піклуватися про точність номіналу індуктивності не варто.Напруга для високовольтного програмування (Vpp) від +8,5 до 14 вольт створюється ключовим стабілізатором. У нього входять елементи VT1, VD1, L1, C4, R4, R10, R11. З 12 виведення PIC18F2550 на базу VT1 надходять імпульси ШІМ. Зворотній зв'язок здійснюється дільником R10, R11.Щоб захистити елементи схеми від зворотного напруги з ліній програмування в разі використання USB-програматора в режимі внутрисхемного програмування ICSP (In-Circuit Serial Programming) застосований діод VD2. VD2 – це діод Шотткі. Його варто підібрати з падінням напруги на P-N переході не більше 0,45 вольт. Також діод VD2 захищає елементи від зворотного напруги, коли програматор застосовується в режимі USB-UART перетворення і логічного аналізатора.При використанні програматора виключно для програмування мікроконтролерів в панелі (без застосування ICSP), то можна виключити діод VD2 повністю (так зроблено у мене) і встановити замість нього перемичку.Компактність пристрою надає універсальна ZIF-панель (Zero Insertion Force – з нульовим зусиллям установки).

Завдяки їй можна "зашити" МК практично в будь-якому корпусі DIP.На схемі "Панель установки мікроконтролера (МК)" зазначено, що необхідно встановлювати мікроконтролери з різними корпусами в панель. При установці МК слід звертати увагу на те, щоб мікроконтролер в панелі позиціонується так, щоб ключ на мікросхемі був з боку фіксуючого важеля ZIF-панелі.Ось так потрібно встановлювати 18-ти вивідні мікроконтролери (PIC16F84A, PIC16F628A і ін.).

А ось так 8-ми вивідні мікроконтролери (PIC12F675, PIC12F629 і ін.).

Якщо є потреба прошити мікроконтролер в корпусі для поверхневого монтажу (SOIC), то можна скористатися перехідником або просто підпаяти до мікроконтролеру 5 висновків, які звичайно потрібні для програмування (Vpp, Clock, Data, Vcc, GND).

Готовий малюнок друкованої плати з усіма змінами ви знайдете за посиланням в кінці статті. Відкривши файл в програмі Sprint Layout 5.0 можна за допомогою режиму "Друк" не тільки роздрукувати шар з малюнком друкованих провідників, а й переглянути позиціонування елементів на друкованій платі. Зверніть увагу на ізольовану перемичку, яка пов'язує 6 висновок DD1 і 21 висновок ZIF-панелі. Друкувати малюнок плати необхідно в дзеркальному відображенні.Виготовити друковану плату можна методом Лут, а також маркером для друкованих плат, за допомогою цапонлаком (так робив я) або "олівцевим" методом.

Ось малюнок позиціонування елементів на друкованій платі (клікабельно).

При монтажі насамперед необхідно запаяти перемички з мідного луджених дроти, потім встановити низькопрофільні елементи (резистори, конденсатори, кварц, штирьовий роз'єм ISCP), потім транзистори і запрограмований МК. Останнім кроком буде установка ZIF-панелі, USB-розетки і запаювання дроти в ізоляції (перемички).

"Прошивка" мікроконтролера PIC18F2550.

Файл "прошивки" – PK2V023200.hex необхідно записати в пам'ять МК PIC18F2550I-SP за допомогою будь-якого вибору програм, який підтримує PIC мікроконтролери (наприклад, Extra-PIC). Я скористався JDM Programmator'ом JONIC PROG і програмою WinPic800.

Посилання на файл PK2V023200.hex, запакований в архів rar, Дана в кінці статті.Залити "прошивку" в МК PIC18F2550 можна і за допомогою все того ж фірмового програматора PICkit2 або його нової версії PICkit3. Природно, зробити це можна і саморобним PICkit-2 Lite, якщо хто-небудь з друзів встиг зібрати його раніше вас :).Також варто знати, що "прошивка" мікроконтролера PIC18F2550-I / SP (файл PK2V023200.hex) Записується при установці програми PICkit 2 Programmer в папку разом з файлами самої програми. Приблизний шлях розташування файлу PK2V023200.hex – «C: \ Program Files (x86) \ Microchip \ PICkit 2 v2 \ PK2V023200.hex». У тих, у кого на ПК встановлена ​​32-бітна версія Windows, шлях розташування буде іншим: «C: \ Program Files \ Microchip \ PICkit 2 v2 \ PK2V023200.hex».Ну, а якщо вирішити проблему "курки і яйця" не вдалося запропонованими способами, то можна купити вже готовий програматор PICkit3 на сайті AliExpress. Там він коштує набагато дешевше. Про те, як купувати деталі і електронні набори на AliExpress я писав тут.

Оновлення "прошивки" програматора.

Прогрес не стоїть на місці і час від часу компанія Microchip випускає оновлення для свого ПО, в тому числі і для програматора PICkit2, PICkit3. Природно, і ми можемо оновити керуючу програму свого саморобного PICkit-2 Lite. Для цього знадобиться програма PICkit2 Programmer. Що це таке і як користуватися – трохи пізніше. А поки пару слів про те, що потрібно зробити, щоб оновити "прошивку".Для оновлення ПЗ програматора необхідно замкнути перемичку XT1 на программаторе, коли він відключений від комп'ютера. Потім підключити програматор до ПК і запустити PICkit2 Programmer. При замкнутій XT1 активується режим bootloader для завантаження нової версії прошивки. Потім в PICkit2 Programmer через меню "Tools" – "Download PICkit 2 Operation System" відкриваємо заздалегідь підготовлений hex-файл оновленої прошивки. Далі відбудеться процес оновлення ПЗ програматора.Після поновлення потрібно відключити програматор від ПК і зняти перемичку XT1. У звичайному режимі перемичка розімкнути. Дізнатися версію ПО програматора можна через меню "Help" – "About" в програмі PICkit2 Programmer.Це все по технічних моментів. А тепер про софт.

Робота з програматором. Програма PICkit2 Programmer.

Для роботи з USB-програматором нам буде потрібно встановити на комп'ютер програму PICkit2 Programmer. Це спеціальна програма має простий інтерфейс, легко встановлюється і не вимагає особливої ​​настройки. Варто зазначити, що працювати з програматором можна і за допомогою середовища розробки MPLAB IDE, але для того, щоб прошити / стерти / вважати МК досить простий програми – PICkit2 Programmer. Рекомендую.Після установки програми PICkit2 Programmer підключаємо до комп'ютера зібраний USB-програматор. При цьому засвітиться зелений світлодіод ( "харчування"), а операційна система пізнає пристрій як "PICkit2 Microcontroller Programmer" і встановить драйвера.Запускаємо програму PICkit2 Programmer. У вікні програми повинна відобразитися напис.

Якщо програматор не підключений, то у вікні програми відобразиться страшна напис і короткі інструкції "Що робити?" англійською.

Якщо ж програматор підключити до комп'ютера з встановленим МК, то програма при запуску визначити його і повідомить нам про це у вікні PICkit2 Programmer.

Вітаю! Перший крок зроблено. А про те, як користуватися програмою PICkit2 Programmer, я розповів в окремій статті. Наступний крок.Необхідні файли:Керівництво користувача PICkit2 (рус.) Беремо тут або тут.