Найпростіший програматор JDM для PIC на пасивних компонентах. Саморобний програматор для PIC-контролерів Jdm програматор із зовнішнім живленням

Найпростіший програматор JDM для PIC на пасивних компонентах. Саморобний програматор для PIC-контролерів Jdm програматор із зовнішнім живленням

Є найпростішою конструкцією для прошивки контролерів сімейства PIC. Безперечні переваги - простота, компактність, живлення без зовнішнього джерела даної класичної схеми програматора зробили її дуже популярною серед радіоаматорів, тим більше, що схемою вже років 5, і за цей час вона зарекомендувала себе як простий і надійний інструмент роботи з мікроконтролерами.

Принципова схема програматора для pic контролерів:

Живлення на саму схему не потрібно, адже для цього служить COM порт комп'ютера, через який здійснюється управління прошивкою мікроконтролера. Для режиму низьковольтного програмування цілком достатньо 5в, але можуть бути не доступні всі опції для зміни (фьюзи). Роз'єм підключення COM-9 порту змонтував прямо на друковану плату програматора для PIC – вийшло дуже зручно.

Можна встромити плату без зайвих шнурів прямо в порт. випробуваний на різних комп'ютерах та при програмуванні МК серій 12F,16F та 18F, показав високу якість прошивки. Запропонована схема дозволяє програмувати мікроконтролери PIC12F509, PIC16F84A, PIC16F628. Наприклад нещодавно за допомогою запропонованого програматора успішно був прошитий мікроконтролер для .

Для програмування використовується WinPic800 – одна з найкращих програм для програмування PIC контролерів. Програма дозволяє виконувати операції для мікроконтролерів сімейства PIC: читання, запису, стирання, перевірки FLASH та EEPROM пам'яті та встановлення бітів конфігурацій.

Розвиток електроніки йде стрімкими темпами і все частіше головним елементом того чи іншого пристрою є мікроконтролер. Він виконує основну роботу та звільняє проектувальника від необхідності створення витончених схемних рішень, тим самим зменшуючи розмір друкованої плати до мінімального. Як відомо, мікроконтролером управляє програма, записана у його внутрішню пам'ять. І якщо досвідчений програміст-електронник не має проблем з використанням мікроконтролерів у своїх пристроях, то для радіоаматора-початківця спроба записати програму в контролер (особливо PIC) може обернутися великим розчаруванням, а іноді і невеликим піротехнічним шоу у вигляді димної мікросхеми.

Як не дивно, але при всій величі мережі Інтернет у ньому дуже мало інформації про прошивку PIC-контролерів, А той матеріал, що вдається знайти - дуже сумнівної якості. Звичайно, можна купити заводський програматор за неадекватну ціну і шити скільки завгодно, але що робити, якщо людина не займається серійним виробництвом. Для цих цілей можна зібрати нескладну і не дорогу в реалізації саморобку, що називається JDM-програматоромза наведеною нижче схемою (рисунок №1):



Малюнок №1 - схема програматора


Відразу наводжу перелік елементів для тих, кому ліньки вдивлятися в схему:

  • R1 - 10 ком
  • R2 - 10 кОм (підстрочений). Регулюванням опору цього резистора необхідно досягти близько 13В на виведенні №4 (VPP) під час програмування. У моєму випадку опір становить 1,2 кОм
  • R3 - 200 Ом
  • R4, R5 - 1,5 ком
  • VD1, VD2, VD3, VD4, VD6 - 1N4148
  • VD5 - 1N4733A (Напруга стабілізації 5,1В)
  • VD7 - 1N4743A (Напруга стабілізації 13В)
  • C1 - 100 нФ (0,1 мкФ)
  • C2 - 470 мкФ х 16 В (електролітичний)
  • SUB-D9F - роз'єм СОМ-порту (МАМА або РОЗЕТКА)
  • Панелька DIP8 - залежить від використовуваного вами контролера

У схемі використано приклад підключення таких поширених контролерів, як PIC12F675і PIC12F629, але це зовсім не означає, що прошивка інших серій PICбуде неможливим. Щоб записати програму в контролер іншого типу, достатньо перекинути дроти програматора відповідно до рисунка №2, який наведено нижче.



Малюнок №2 – варіанти корпусів PIC-контролерів з необхідними висновками


Як можна здогадатися, у схемі мого програматора використано корпус DIP8. За великого бажання можна виготовити універсальний перехідник під кожен тип мікросхеми, отримавши цим універсальний программатор. Але оскільки з PIC-контролерамипрацюю рідко, для мене вистачить цього.

Хоча сама схема досить проста і не викличе труднощів у складанні, але вона також потребує поваги. Тому непогано було зробити під неї друковану плату. Після деяких маніпуляцій із програмою SprintLayout, текстолітом, дрилем та праскою, на світ народилася ось така заготівля (фото №3).



Фото №3 - друкована плата програматора


Завантажити вихідний друкована плата для програми SprintLayoutможна за цим посиланням:
(завантажень: 680)
За бажання його можна змінити під свій тип PIC-контролера. Для тих, хто вирішив залишити плату без змін, викладаю вигляд із боку деталей для полегшення монтажу (рисунок №4).



Малюнок №4 - плата з монтажного боку


Ще трохи чаклунства з паяльником і ми маємо готовий пристрій, здатний прошити PIC-контролерчерез COM-порткомп'ютера. Ще тепленький і не відмитий від флюсу результат моїх старань показано на фото №5.



Фото №5 - програматор у зборі


З цього моменту, перший етап на шляху до прошивки PIC-контролера, добіг кінця. Другий етап буде включати підключення програматора до комп'ютера і роботу з програмою IC-Prog.
На жаль, не всі сучасні комп'ютери та ноутбуки здатні працювати з цим програматором через банальну відсутність на них COM-портів, а ті, що встановлені на ноутбуках, не видають необхідні для програмування. 12В. Так що я вирішив звернутися до свого першого ПК, який давним-давно припадав пилом і чекав свого зоряного години (і таки дочекався).
Отже включаємо комп'ютер і насамперед встановлюємо програму IC-Prog. Завантажити її можна з сайту автора або за цим посиланням:
(скачувань: 778)
Підключаємо програматор до COM-портуі запускаємо щойно встановлений додаток. Для коректної роботи потрібно виконати ряд маніпуляцій. Спочатку необхідно вибрати той тип контролера, який збираємось шити. У мене це PIC12F675. На скріншоті №6 поле для вибору контролера виділено червоним кольором.



Скриншот №6 - вибір типу мікроконтролера




Скріншот №7 - налаштування методу запису контролера


У цьому вікні переходимо у вкладку " Програмування" і вибираємо пункт " Перевірка під час програмування". Перевірка після програмування може викликати помилку, тому що в деяких випадках самою прошивкою встановлюються ф'юзи блокування зчитування." СР. Щоб не морочити собі голову, цю перевірку краще відключити. Коротше слідуємо скріншоту №8.



Скріншот №8 - налаштування верифікації


Продовжуємо роботу з цим вікном та переходимо на вкладку " ЗагальніТут необхідно задати пріоритет роботи програми і обов'язково задіяти NT/2000/XPдрайвер (скриншот №9). У деяких випадках програма може запропонувати інсталяцію драйвера і буде потрібно перезапустити IC-Prog.



Скріншот №9 - загальні налаштування


Отже, із цим вікном робота закінчена. Тепер перейдемо до налаштувань самого програматора. Вибираємо у меню " Налаштування"->"Налаштування програматораабо просто натискаємо клавішу F3. З'являється наступне вікно, показане на скріншоті №10.



Скріншот №10 - вікно налаштувань програматора


Насамперед вибираємо тип програматора - JDM Programmer. Далі виставляємо радіокнопку використання драйвера Windows. Наступний крок передбачає вибір COM-порту, до якого підключено ваш програматор. Якщо він один, питань взагалі немає, а якщо більше одного - подивіться в диспетчері пристроїв, який зараз використовується. Повзунок затримки введення/виводу призначений для регулювання швидкості запису та читання. Це може знадобитися на швидких комп'ютерах і у разі виникнення проблем із прошивкою - цей параметр необхідно збільшити. У моєму випадку він залишився за умовчанням рівним 10 і все нормально відпрацювало.

На цьому налаштування програми IC-Progзакінчена і можна переходити до процесу самої прошивки, але для початку рахуємо дані з мікроконтролера і подивимося, що в нього записано. Для цього на панелі інструментів натискаємо на піктограму мікросхеми із зеленою стрілкою, як показано на скріншоті №11.



Скріншот №11 - процес читання інформації з мікроконтролера


Якщо мікроконтролер новий і до цього не прошивався, всі осередки його пам'яті будуть заповнені значеннями 3FFF, Крім останньої. У ній буде міститися значення калібрувальної константи. Це дуже важливе та унікальне для кожного контролера значення. Від нього залежить точність тактування, яка шляхом підбору та встановлення цієї константи закладається заводом виробником. На скріншоті №12 показано та комірка пам'яті, в якій зберігатиметься константа під час читання контролера.



Скріншот №12 - значення калібрувальної константи


Повторюся, що значення унікальне кожної мікросхеми і обов'язково має збігатися з тим, що у малюнку. Багато хто з недосвідченості затирає цю константу і надалі PIC-контролерпочинає некоректно працювати, якщо проект використовується тактування від внутрішнього генератора. Раджу записати цю константу і наклеїти напис із її значенням прямо на контролер. Таким чином ви уникнете безліч неприємностей у майбутньому. Отже, значення записано – рухаємось далі. Відкриваємо файл прошивки, що має як правило розширення .hex. Тепер замість написів 3FFF, буфер програмування містить код нашої програми (скриншот №13)



Скріншот №13 - прошивка, завантажена в буфер програмування


Вище я писав, що багато хто затирає калібрувальну константу з необережності. Коли це відбувається? Це відбувається в момент відкриття файлу прошивки. Значення константи автоматично змінюється на 3FFFі якщо розпочати процес програмування, то назад дороги вже немає. На скріншоті №14 виділено той осередок пам'яті де раніше була константа 3450 (до відкриття hex-файлу).

Якось я вирішив зібрати нескладний LC-метр на pic16f628a і природно його треба було чимось прошити. Раніше у мене був комп'ютер із фізичним com-портом, але зараз у моєму розпорядженні тільки usb та плата pci-lpt-2com. Для початку я зібрав простий JDM програматор, але виявилося ні з платою pci-lpt-com, ні з usb-com перехідником він працювати не захотів (низька напруга сигналів RS-232). Тоді я кинувся шукати usb програматори pic, але там, як виявилося все обмежено використанням дорогих pic18f2550/4550, яких у мене природно не було, та й шкода такі дорогі МК використовувати, якщо на піках я дуже рідко щось роблю (вважаю за краще авр- ти, їх прошити проблем не складає, вони набагато дешевше, та й програми писати мені здається, на них простіше). Довго копавшись на просторах інтернету в одній із безлічі статей про програматор EXTRA-PIC та його всілякі варіанти один з авторів написав, що extrapic працює з будь-якими com-портами і навіть перехідником usb-com.

У схемі цього програматора використовується перетворювач логічних рівнів max232.

Я подумав, якщо використовувати usb адаптер, то буде дуже безглуздо робити два рази перетворення рівнів usb в TTL, TTL в RS232, RS232 назад в TTL, якщо можна просто взяти TTL сигнали порту RS232 з мікросхеми usb-usart перетворювача.

Так і вчинив. Взяв мікросхему CH340G (у якій є всі 8 сигналів com-порту) і підключив її замість max232. І ось що вийшло.

У моїй схемі є перемичка jp1, якої немає в екстрапику, її я поставив тому, що не знав, як поведеться висновок TX на ТТЛ рівні, тому зробив можливість його інвертувати на вільному елементі, що залишився, І-НЕ і не помилився, як виявилося, безпосередньо на виведенні TX логічна одиниця, і тому на виведенні VPP при включенні є 12 вольт, а при програмуванні нічого не буде (хоча можна інвертувати TX програмно).

Після складання плати настав час випробувань. І тут настало головне розчарування. Програматор визначився одразу (програмою ic-prog) і заробив, але дуже повільно! У принципі – очікувано. Тоді в налаштуваннях com порту я виставив максимальну швидкість (128 кілобід) почав випробування всіх знайдених програм для JDM. У результаті найшвидшою виявилася PicPgm. Мій pic16f628a прошивався повністю (hex, eeprom і config) плюс верифікація десь 4-6 хвилин (причому читання йде повільніше за запис). IcProg також працює, але повільніше. Помилок про програмування не виникло. Також я спробував прошити eeprom 24с08, результат той самий - все шиє, але дуже повільно.

Висновки: програматор досить простий, в ньому немає дорогих деталей (CH340 - 0.3-0.5$, к1533ла3 можна взагалі знайти серед радіохламу), працює на будь-якому комп'ютері, ноутбуці (і навіть можна використовувати планшети на windows 8/10). Мінуси: він дуже повільний. Також він потребує зовнішнього живлення для сигналу VPP. У результаті, як мені здалося, для нечастої прошивки піків - це нескладний для повторення і недорогий варіант для тих, хто не має під рукою старого комп'ютера з потрібними портами.

Ось фото готового девайсу:

Як співається у пісні "я його зліпила з того, що було". Набір деталей найрізноманітніший: і smd, і DIP.

Для тих, хто ризикне повторити схему, як usb-uart конвертер підійде майже будь-який (ft232, pl2303, cp2101 та ін), замість к1533ла3 підійде до555, думаю навіть до155 серія або зарубіжний аналог 74als00, можливо навіть буде працювати з лог к1533лн1. Додаю свою друковану плату, але розведення там під ті елементи, що були, кожен може перемалювати під себе.

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
IC1 МікросхемаCH340G1 До блокноту
IC2 МікросхемаК1533ЛА31 До блокноту
VR1 Лінійний регулятор

LM7812

1 До блокноту
VR2 Лінійний регулятор

LM7805

1 До блокноту
VT1 Біполярний транзистор

КТ502Е

1 До блокноту
VT2 Біполярний транзистор

КТ3102Е

1 До блокноту
VD1-VD3 Випрямний діод

1N4148

2 До блокноту
C1, C2, C5-C7 Конденсатор100 нФ5 До блокноту
C3, C4 Конденсатор22 пФ2 До блокноту
HL1-HL4 СвітлодіодБудь-який4 До блокноту
R1, R3, R4 Резистор

1 ком

3

Швидко зібрати схему, що сподобалася, на мікроконтролері для багатьох радіоаматорів - не проблема. Але багато початківців працювати з мікроконтролерами стикаються з питанням - як його запрограмувати. Одним із найпростіших варіантів програматорів є JDM програматор.

Програма – програматор ProgCode v 1.0

Ця програма працює у Windows XP. Дозволяє програмувати PIC контролери середнього сімейства (PIC16Fxxx) через COM порт комп'ютера. Індикатор підключення програматора (у верхньому правому куті вікна) за відсутності програматора на вибраному в налаштуваннях порту забарвлюється в червоний колір. Якщо програматор підключений - програма виявляє його та індикатор у правому верхньому кутку набуває вигляду, який показаний на малюнку 1.

У лівій частині вікна програми розташована панель керування. Цю панель можна згорнути, натиснувши кнопку в панелі інструментів або, клацнувши по лівому краю вікна (це зручно, коли вікно програми розгорнуто на весь екран).

Малюнок (скриншот програми ProgCode v1.0)


Якщо в програму завантажується HEX файл, то бажано перед цим вибрати в списку контролерів той МК, для якого розрахована прошивка, що завантажується. Якщо цього не зробити, то файл, розрахований на мікроконтролер з пам'яттю більшого розміру, ніж обраний у списку, буде обрізаний і частини програми втрачено - при такому варіанті завантаження файлу виводиться попередження.

Якщо цього не сталося, вибрати потрібний контролер можна і після завантаження файлу в програму.

Формат файлів SFR

У програматорі ProgCode підтримана робота із власним форматом файлів. Ці файли мають розширення SFR і дозволяють зберігати додаткову інформацію про програму, призначену для мікроконтролера. У такому файлі зберігається інформація про тип мікроконтролера. Це дозволяє при завантаженні файлу формату SFR не переймається попереднім вибором типу МК в налаштуваннях.

Налаштування порту та протоколу при підключенні програматора

Після інсталяції програми - за замовчуванням виставлено всі налаштування, які необхідні для роботи програматора зі схемою JDM, наведеною на цій сторінці.
Інверсія сигналу в наведеній схемі потрібна тільки для виходу OutData, тому що в цьому ланцюзі сигнал інвертований транзистором, що узгоджує. На решті висновків інверсію відключено.



Затримка імпульсу може дорівнювати 0. Її регулювання передбачено для "особливо важких" екземплярів контролерів, які не вдається прошити. Те саме стосується і надбавки до паузи при записі - за замовчуванням вона нульова. Якщо збільшити значення цих параметрів, час програмування контролера значно збільшиться.

Галочка "перевірка при записі" повинна бути виставлена, якщо вам потрібно "на льоту" перевірити все, що записується в мікроконтролер на правильність і відповідність вихідному файлу. Якщо цю галочку зняти перевірка взагалі не проводиться і повідомлень про помилки не буде, навіть якщо такі помилки в реальності будуть присутні.
Вибір швидкості порту – швидкість може бути будь-якою. Цей параметр не має значення для JDM програматора.

У WindowsXP застосовується буферизація інформації, що передається через порти COM. Це так звані буфери FIFO. Щоб уникнути помилок при програмуванні через JDM, цей механізм необхідно відключити. Зробити це можна у диспетчері пристроїв Windows.

Заходимо в панель управління, потім:
Адміністрування - керування комп'ютером - диспетчер пристроїв

Потім вибираємо порт, який підключений JDM програматор(наприклад COM1) - дивимося властивості - вкладка параметри порту - додатково. І знімаємо галочку на пункті "Використовувати буфери FIFO"

Малюнок - Налаштування COM порту для роботи з JDM програматором



Після цього перезавантажуємо комп'ютер.


Оглядач локальних проектів

Окрім безпосередньо програмування контролерів у програмі реалізований зручний оглядач проектів на МК, що знаходяться як на локальних папках комп'ютера, так і в Інтернеті. Зроблено це для зручності роботи. Нерідко потрібні проекти лежать у різних папках, і доводиться витрачати час на те, щоб дістатися потрібної директорії, щоб переглянути проект. Тут потрібні папки легко додати до списку папок та переглядати будь-який проект двома-трьома кліками мишки.

Будь-який файл при подвійному кліку по ньому в панелі браузера відкриється в самій програмі - це відноситься до малюнків, html файлів, doc, rtf, djvu (при встановлених плагінах), pdf, txt, asm. Файл можна також відкрити подвійним кліком в браузері за допомогою зовнішньої програми, встановленої на комп'ютері. Для цього розширення потрібного типу файлів потрібно прописати у переліку "Асоціації файлів". Якщо шлях до програми, що відкриває, не вказувати - Windows відкриє файл у програмі за замовчуванням (це зручно для відкриття архівів, які не завжди однозначно відкриваються). Якщо шлях до відкритої програми вказаний у списку - файл відкриється у вказаній програмі. Зручно переглядати файли типу SPL, LAY, DSN.

Малюнок (скриншот браузера програми ProgCode v1.0)



Ось так виглядає вікно з налаштуваннями асоціацій файлів:




Оглядач проектів в інтернеті

Оглядач проектів в інтернеті так само, як і локальний оглядач проектів, дозволяє швидко перейти на потрібний сайт в інтернеті парою кліків, переглянути проект і при необхідності відразу прошити програму в МК.



При огляді проектів в інтернеті якщо на сторінці проекту є посилання на файл з розширенням SFR (це формат файлів програми ProgCode), то такий файл при натисканні на нього відкриється в новій вкладці програми і відразу готовий до прошивки в мікроконтролер.
Список посилань можна редагувати, скориставшись кнопкою "Змінити". При цьому відкриється вікно редагування списку посилань:





Опис процесу програмування мікросхем

Більшість сучасних мікросхем містить флеш-пам'ять, яка програмується за допомогою протоколу I2C чи подібних протоколів.
Пам'ять, що перезаписується, є в PIC, AVR та інших контролерах, мікросхемах пам'яті типу 24Cxx, і подібних їм, різних картах пам'яті типу MMC і SD, звичайних флеш USB картах, які підключаються до комп'ютера через USB роз'єм.

Розглянемо запис інформації у флеш пам'ять мікроконтролера PIC 16 F 628 A

Є 2 лінії DATA та CLOCK , за якими передаєтьсяінформація. Лінія CLOCK служить для подачі тактових імпульсів, а лінія DATA передачі інформації.

Щоб передати в мікроконтролер 1 біт інформації, необхідно виставити 0 або 1 (залежно від значення біта) лінії даних (DATA ) і створити спад напруги (перехід від 1 до 0) на лінії тактування (CLOCK ).
Один біт для контролера – обмаль. Він чекає навздогін ще п'ять, щоб сприйняти цю посилку з шести біт як команду. Контролеру дуже подобаються команди, а складатися вони повинні саме з 6 біт – така вже природа у PIC 16.
Ось список та значення команд, які PIC здатний зрозуміти. Команд не так вже й багато - словниковий запас у цього контролера невеликий, але не треба думати, що він зовсім дурний - бувають пристрої і з меншою кількістю команд

"LoadConfiguration" 000000 - Завантаження конфігурації

"LoadDataForDataMemory" - 000011 - Завантаження даних у пам'ять даних (EEPROM)
"IncrementAddress" 000110 - Збільшення адреси PC МК
"ReadDataFromProgramMemory" 000100 - Читання даних із пам'яті програм
"ReadDataFromDataMemory" 000101 - Читання даних із пам'яті даних (EEPROM)
"BeginProgrammingOnlyCycle" 011000 - Почати цикл програмування
"BulkEraseProgramMemory" 001001 - Повне стирання пам'яті програм
"BulkEraseDataMemory" 001011 - Повне стирання пам'яті даних (EEPROM)

Реагує контролер ці команди по-різному. По-різному після видачі команди потрібно і продовжувати розмову з ним.
Для того щоб почати повноцінний процес програмування необхідно подати напругу 12 вольт на висновок MCLR контролера, після цього подати на нього напруга живлення. Саме в такій послідовності подачі напруги є певний зміст. Після подачі живлення, якщо PIC сконфігурований працювати від внутрішнього RC генератора, може розпочати виконання своєї програми, що з програмуванні річ неприпустима, оскільки неминучий збій.
Попередня подача 12 вольт на MCLR дозволяє уникнути такого розвитку подій.
При записі інформації у флеш пам'ять програм МК після команди

"LoadDataForProgramMemory " 000010 - Завантаження даних у пам'ять програм

необхідно відправити в контролер самі дані – 16 біт,
які виглядають так:

"0xxxxxxxxxxxxxx 0".

Хрестики в цьому слові – це самі дані, а нулі по краях відправляються як обрамлення – це стандарт для PIC 16. Значних бітів у слові всього 14. Ця серія контролерів має 14-бітний формат представлення команд.
Після закінчення передачі слова з даними PIC чекає на наступну команду.
Оскільки нашою метою є запис слова на згадку про програми МК, наступною командою має бути команда

"BeginEraseProgrammingCycle" 001000 - Почати цикл програмування

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

Сигнали на висновках мікроконтролера формуються комп'ютером з допомогою спеціальних програм - программаторов. Для передачі сигналу можуть бути порти COM, LPT або USB. З JDM програматором працюють такі програми як PonyProg, IsProg, WinPic800.


Схема JDM програматора

Дуже проста схема програматора наведена малюнку. У цій схемі хоч і не реалізується контроль послідовності подачі напруг, але вона дуже проста і зібрати таку схему можливо дуже швидко, використовуючи мінімум деталей.
Малюнок (схема JDM програматора)


Одним із питань при підключенні програматора до комп'ютера є питання – як забезпечити селективну розв'язку. Щоб у разі несправності у схемі уникнути пошкодження COM порту. У деяких схемах застосовується мікросхема MAX232, яка забезпечує селективну розв'язку та узгоджує рівні сигналів. У цій схемі питання вирішене простіше – за допомогою застосування батарейного живлення. Рівень сигналу, що надходить від комп'ютера обмежується стабілітронами VD1, VD2 та VD3. Незважаючи на простоту схеми JDM програматора, за його допомогою можна запрограмувати більшість типів PIC мікроконтролерів.

Перемичка між висновками COM6(DSR) та COM7(RTS) призначена для того, щоб програма могла визначити, що програматор підключений до комп'ютера.

Вихід програматора до конкретного МК залежить від типу МК. Часто на плату програматора монтують кілька панелек, розрахованих на певний тип контролерів.

У таблиці наведено призначення ніжок деяких типів МК під час програмування.

Таке розташування висновків, призначених для програмування, мають МК PIC16F84, PIC16F84A.



Призначення висновків для мікроконтролерів серії PIC16Fxxx в залежності від типу корпусу в більшості випадків є стандартним, але якщо виникає сумніви на цей рахунок, то найнадійніше звіритися з даташитом на конкретний екземпляр МК. Частина документації присутня на російському сайті http://microchip.ru Повні збори даташитів та іншої документації знаходяться на сайті виробника PIC мікроконтролерів: http://microchip.com

Індекс проектів

Програма дозволяє безпосередньо виходити на сторінку індексу, парою кліків переглядати опис необхідного проекту і відразу ж прошивати програму в контролер.



При необхідності прошити контролер обраною прошивкою - клацаємо мишкою на файл формату SFR, наприклад Timer_a.sfr
Програма завантажує файл із сервера в нову вкладку.



Після цього залишається тільки вставити МК в панель програматора, якщо це ще не зроблено, і натиснути на кнопку "Записати все".
Програма записується до МК. Після цього контролер вставляється в плату пристрою та пристрій готовий до роботи.

Які перші кроки має зробити радіоаматор, котрий вирішив зібрати схему на мікроконтролері? Природно, необхідна програма, що управляє, - "прошивка", а також програматор.

І якщо з першим пунктом немає проблем - готову "прошивку" зазвичай викладають автори схем, то ось із програматором справи складніші.

Ціна готових 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 необхідно "прошити". Ця проста операція у багатьох викликає ступор, оскільки виникає так звана проблема "курки та яйця". Як її вирішив я, розповім трохи згодом.

Список деталей для збирання програматора. У мобільній версії потягніть таблицю вліво (свайп вліво-вправо), щоб побачити її стовпці.

Назва Позначення Номінал/Параметри Марка або тип елемента
Для основної частини програматора
Мікроконтролер DD1 8-ми бітний мікроконтролер PIC18F2550-I/SP
Біполярні транзистори VT1, VT2, VT3 КТ3102
VT4 КТ361
Діод VD1 КД522, 1N4148
Діод Шоттки VD2 1N5817
Світлодіоди HL1, HL2 будь-який на 3 вольти, червоногоі зеленогокольори світіння
Резистори R1, R2 300 Ом
R3 22 ком
R4 1 ком
R5, R6, R12 10 ком
R7, R8, R14 100 Ом
R9, R10, R15, R16 4,7 ком
R11 2,7 ком
R13 100 ком
Конденсатори C2 0,1 мк К10-17 (керамічні), імпортні аналоги
C3 0,47 мк
Електролітичні конденсатори C1 100 мкф * 6,3 в К50-6, імпортні аналоги
C4 47 мкф * 16 в
Котушка індуктивності (дросель) L1 680 мкГн уніфікований типу EC24, CECL або саморобний
Кварцовий резонатор ZQ1 20 МГц
USB-розетка XS1 типу USB-BF
Перемичка XT1 будь-якого типу "джампер"
Для панелі установки мікроконтролерів (МК)
ZIF-панель XS1 будь-яка 40 контактна ZIF-панель
Резистори R1 2 ком МЛТ, МОН (потужністю від 0,125 Вт та вище), імпортні аналоги
R2, R3, R4, R5, R6 10 ком

Тепер трохи про деталі та їх призначення.

Зеленийсвітлодіод 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.

Залити "прошивку" в МК 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 (рус.) беремо або .



© 2023 globusks.ru - Ремонт та обслуговування автомобілів для новачків