Програматори та програмування мікроконтролерів
Радіоаматорські конструкції, що стали сьогодні звичайними, на мікроконтролерах підкуповують простотою схеми і широкими можливостями. Однак перш, ніж зібраний пристрій запрацює, мікроконтролер, на відміну від традиційних інтегральних мікросхем, що випускаються із заводу "готовими до вживання", необхідно "навчити". Для цього в його пам'ять потрібно занести програму — послідовність команд, виконуючи які мікроконтролер робитиме все, що потрібно.
Програму зазвичай складають паралельно з розробкою схеми та конструкції приладу та остаточно налагоджують, випробовуючи готовий виріб. Ми не будемо вникати в численні проблеми, що виникають при цьому. Наше завдання - навчитися заносити в мікроконтролер готову програму. Що записуватимемо Зазвичай в описі приладу програма, по якій повинен працювати мікроконтролер, представлена таблицею кодів - їх слід занести в пам'ять мікроконтролера. Ось фрагмент такої таблиці у так званому НЕХ-форматі (табл. 1):
Таблиця 1 :1000C000A60C2618652805126728051600003F2093 :1000D000A60C26186D2805126F2805160000 18752805127728051600003F2053 :1000F000A60C26187D2805127F28051600003F2033 :10010000A60C2610822 :100110000000000000000000000005163F203F2006 :100120000000000000000000000000800FF3FFF3F4B
Нагадаємо, мікроконтролери працюють у двійковій системі числення, розрізняючи лише по два стани (0 і 1) кожного зі своїх висновків, численних осередків пам'яті та інших внутрішніх вузлів. Більшість двійкових осередків-розрядів для прискорення та зручності виконання різних операцій над їх вмістом об'єднані у групи – восьмирозрядні байти та довші слова. У публікованихтаблицях виключно для зручності сприйняття людиною поміщають не двійкові, а шістнадцяткові зображення програмних кодів. Кожні чотири двійкові цифри замінюють однією шістнадцятковою: 0000 - 0 0100 - 4 1000 - 8 1100 - С 0001 - 1 0101 - 5 1001 - 9 1101 - D 0010 - 2 1110 - Е 0011 - 3 0111 - 7 1011 - У 1111 - F
Програматор = адаптер + керуюча програма Перш ніж продовжити розповідь, розберемося трохи в термінології. Слово "програматор" вживають сьогодні як мінімум у двох значеннях. По-перше, це пристрій, за допомогою якого з'єднують комп'ютер (джерело даних) з мікросхемою, в яку мають бути внесені ці дані. Цей прилад правильніше називати адаптером програмування. По-друге, програматор - програма, під керуванням якої комп'ютер формує всі необхідні для запису даних в мікроконтролер сигнали на висновках одного зі своїх портів (того, до якого підключають адаптер). те, який програматор краще. Один стверджує, що програматор А його можна зібрати за день. Другий — що програматор Б, він зручніший у користуванні. Справді, адаптер А дуже простий, але програма А, що його супроводжує, незручна. Складний у виготовленні адаптер Б працює під керуванням програми Б, яка оснащена багатьма сервісними функціями. Так що обидва мають рацію. Але нерідко сперечається невтямки, що адаптер А цілком може працювати з програмою Б і навпаки. Саме така ситуація буде розглянута нижче.
Як підключити адаптер Для зв'язку комп'ютера з програмованим мікроконтролером через адаптер придатні два види стандартних портів, відомих під абревіатурами LPT та СОМ. Те, що порт LPT паралельний, а СОМ послідовний, у разізначення не має. Важлива можливість формувати потрібні імпульси, програмно змінюючи рівні напруги на окремих лініях цих портів, і "читати" сигнали у відповідь мікроконтролера. Число практично рівноправних вихідних та вхідних ліній цілком достатньо в портах обох типів. Тому з точки зору правильності і швидкості програмування підключення адаптера, до порту того чи іншого типу, не дає ніякого виграшу. достатньої для живлення самого адаптера і програмованої мікросхеми, але і + 12 для перемикання в режим програмування мікроконтролерів, наприклад, серії PICmicro (більш відомих під назвою PIC-контролери). Тут вдається обійтися без додаткового зовнішнього джерела живлення, яке зазвичай необхідне LPT-адаптерам. Хоча відомі конструкції з живленням і від такого порту [31]. До того ж до розетки порту LPT1 в комп'ютері зазвичай підключений принтер, який на час роботи з програматором доводиться відключати. Дуже рідко комп'ютери мають другий паралельний порт LPT2, до якого можна підключити адаптер, не відключаючи принтер від LPT1. Заради справедливості треба сказати, що сучасні принтери все частіше постачають інтерфейсом USB і порт LPT залишається вільним. Дуже привабливо було б використовувати USB для зв'язку комп'ютера з адаптером програмування. Насамперед тому, що в цьому інтерфейсі спеціально передбачена подача на пристрій, що підключається від комп'ютера напруги живлення 5 В. На жаль, організація апаратної і програмної взаємодії по цьому інтерфейсу досить складна. Отже, розробка USB-програматора — справа майбутнього.

портів у комп'ютері зазвичай два (СОМ1 та COM2),адаптер можна підключити до кожного. Але виделки цих портів часто різнотипні. Одна з них зазвичай СОМ1, дев'яти-, а COM2 — 25-контактна, що потрібно враховувати при виготовленні адаптерів. При розбіжності типу роз'ємів можна придбати перехідник або виготовити його за схемою, показаною на рис. 1 . Для підключення адаптера з 25-контактною розеткою до дев'ятиконтактної вилки порту роз'єм Х1 має бути розеткою (з літерним індексом F), a X2 – вилкою (з індексом М). У протилежному випадку - навпаки. Довжина сполучних кабелів, шлейфів або проводів комп'ютер - адаптер і адаптер - програмована мікросхема у всіх випадках повинна бути мінімальною - 0,2. 0,5 м. Зрозуміло, це завдасть деяких незручностей, оскільки роз'єми портів розміщені на важкодоступній тильній стороні корпусу системного блоку. Але доведеться змиритися із незручностями. Саме довгі дроти – одна з головних причин збоїв у процесі програмування.
Адаптери для PICmicro Фірма Microchip (розробник мікроконтролерів серії PICmicro) рекомендує їх програмування адаптер за схемою, показаної нарис. 2.