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

Пропонований програматор працює під управлінням програми PonyProg [1], поширюваної безкоштовно. Якщо обмежитися програмуванням МК PIC і мікросхем пам’яті, можна скористатися також програмами IC-Progl05 [2] і WinPic800 [3]. поширюваними на тих же умовах.
Програмування 18-вивідних МК PIC і 20-вивідних AVR проводиться без небудь комутацій. Досить встановити МК в призначену для нього панель та вибрати його тип в меню використовуваної програми. Від установки панелей для всіх МК цих сімейств автор свідомо відмовився, так як в аматорській практиці вони використовуються дуже рідко. При необхідності потрібні панелі можна встановити додатково або підключати вимагаються для програмування висновки МК до передбаченого в програматорі роз’єму. Цей же роз’єм використовується при внутрісхемний програмуванні.
Крім МК. пристрій дозволяє програмувати мікросхеми пам’яті з послідовним інтерфейсом, наявні в меню використовуваних програм. Для подібних мікросхем з інтерфейсом I2С в програматорі передбачена панель.
До початку процесу програмування і по його завершенні напруга живлення програмованої мікросхеми відключено, що дає можливість безпечно встановити мікросхему в панель, а потім витягти її.
Перш ніж розглядати роботу програматора докладно, згадаємо деякі особливості програмування МК сімейств PIC і AVR. Номери згадуваних далі висновків МК різних типів можна знайти в технічній документації.
Щоб перевести в режим програмування МК сімейства PIC, потрібно подати на його висновок MCLR напругу +12 … 14 В. Обмін інформацією з пристроєм, керуючим програмуванням, відбувається через двонаправлений висновок DATA. Синхронізуючі обмін імпульси надходять на висновок CLOCK.
МК сімейства AVR підвищеної напруги не вимагають. Вони переходять в режим програмування при низькому логічному рівні на виведенні RESET. При цьому необхідно, щоб до відповідних висновків МК був підключений кварцовий резонатор. Інформація приймається через вивід MOSI, а передається через висновок MISO Вхід синхронізуючих імпульсів – висновок SCK

Схема програматора зображена на рис. 1 Її найбільш істотна відмінність від прототипу полягає у використанні для зв’язку з СОМ-портом комп’ютера мікросхеми МАХ232СРЕ (DA2) – спеціалізованого перетворювача рівнів RS232-ТТЛ. Це дозволило виконати всі вимоги по рівнях переданих сигналів і навантажувальної здатності ліній порту і значно поліпшило надійність роботи пристрою
Щоб надмірно не навантажувати СОМ-порт, передбачено живлення програматора і програмованої мікросхеми тільки від зовнішнього джерела. Його постійне (15 В) або змінне (10 … 12 В) напруга надходить в програматор через діодний міст VD1, службовець випрямлячем змінної напруги чи що призводить постійне до правильної полярності.
Інтегральний стабілізатор DA1 живить напругою 5 В перетворювач рівня DA2. Світлодіод HL1 сигналізує про включення живлення. Стабілізатор DA3 на 12 В – керований. Він включений при високому логічному рівні напруги на керуючому вході 4 і вимкнений при низькому рівні. Це властивість використано для управління напругою, що переводять МК сімейства PIC в режим програмування, і напругою живлення програмованої мікросхеми, яке отримують з 12 В за допомогою інтегрального стабілізатора DA4. Про включеному живленні програмованої мікросхеми сигналізує світлодіод HL2.
Дуже важливий правильний вибір ємності конденсатора С7 на виході стабілізатора DA3. При занадто великому її значенні напруга, що переводить МК сімейства PIC в режим програмування, після включення стабілізатора буде наростати недостатньо швидко, що призведе до збою. Встановлювати конденсатор С7 занадто маленькій ємності або зовсім відмовлятися від нього не можна – це призведе до самовозбуждению стабілізатора і зробить програмування неможливим
Діод VD2 обмежує до безпечного значення негативне напруга, яка може надійти на керуючий вхід стабілізатора DA3 з контакту 3 роз’єми XS1 (Лінії TXD СОМ-порту). Вузол на транзисторі VT2 формує сигнал RESET для МК сімейства AVR.
Вузол на транзисторах VT1 і VT3 розділяє наявну в МК сімейства PIC двонаправлену лінію DATA на дві односпрямованих для комп’ютера. Під назвами MOSI і MISO ці ж односпрямовані лінії використовуються при програмуванні МК сімейства AVR.
Для аналогічного перетворення в [1] був застосований логічний інвертор на одному транзисторі. Однак його практичне використання виявило досить велике число збоїв, причина яких, на думку автора, – недостатня затримка інформаційного сигналу на лінії DATA щодо синхронізуючого на лінії CLOCK. Додавання другогоінвертора збільшило затримку і усунуло збої, проте “зайву” інверсію доводиться компенсувати відповідною настроюванням керуючої програми, про що буде сказано далі.

Програматор зібраний на макетної платі (Рис.2). Монтаж – навісний. На платі встановлені всього три панелі для програмувальних мікросхем (XS2-XS4), але її розміри (97×55 мм) обрані з запасом, достатнім, щоб при необхідності встановити навіть 40-контактні панелі. Світлодіоди HL1 і HL2 повинні бути різного кольору світіння, так легше візуально контролювати режим роботи програматора.

Використовуючи для управління програмуванням програму PonyProg, слід вибрати у відповідному її вікні програматор “SI Prog I / O” і задати інверсію сигналів відповідно до табл. 1. Програма WinPic при роботі в ОС Windows ХР дозволяє програмувати тільки МК сімейства PIC і мікросхеми пам’яті. Однак в ОС Windows 98 МК цією програмою не програмуються. З програмою IC-Prog ситуація зворотна. При налаштуванні обох програм повинен бути вибраний програматор “JDM Programmer”. Інверсію сигналів задають відповідно до табл. 2 (Для WinPic) і табл. 3 (для IC-Prog).

Наявність декількох багато в чому рівноцінних керуючих програм дає можливість користуватися програматором навіть при виникненні проблем у роботі з однією з них. Наприклад, МК, відсутній у списку доступних одній програмі, може бути знайдений в списку іншої.
Таке трапилося при спробі запрограмувати МК PIC16F628A. У списку програми PonyProg є лише PIC16F628, але при його виборі та встановленні в панель програматора мікросхеми PIC16F628A на екрані монітора з’являється повідомлення “Невідомий тип мікроконтролера”. Навіть якщо проігнорувати це повідомлення, спроби не лише запрограмувати, але і просто прочитати вміст пам’яті МК позитивного результату не дають. Однак у списках програм WinPic800 і IC-Prog потрібний МК є, його програмування за допомогою цих програм виконується без зауважень.
Крім МК, згаданого вище, програматор перевірений з PIC16F84A-20I / P
HATTiny2313-20PU.

ЛІТЕРАТУРА
1. Lanconelly С. PonyProg – serial device programmer – www.lancos.com / prog.html

2. Gijzen B. IC-Prog Prolotype Programmer — www.ic-prog.com/icprog105E.zip

3. Font S. Software for PIC programming Windows 95/98/NT/2000/ME/XP compatible. — www.winpic800.com/descargas/WlnPlc800.zlp

Автор: С. Макарець. Журнал Радіо № 10 2007р.

Зв’язок з автором: Немає даних

Веб сайт автора: Немає даних

Прислав: Немає даних

Джерело: http://eldigi.ru