Створення програматора stk500 своїми руками
Зміст
Щоб мікроконтролери типу AVR працювали без помилок, доводиться регулярно оновлювати прошивку. Робиться це програматорами, які мають роз`єм та виведення на ПК. У роз`єм підключають мікросхему і чіп, що виступають як перетворювач сигналу, що подається з комп`ютера. Такі пристрої можна купити на барахолках або спеціалізованих магазинах. Але якщо є необхідні деталі та навички, простий програматор STK500 можна зібрати своїми руками.
Основні параметри AVR
Маючи широкий модельний ряд, продукція компанії ATMEL здатна послужити багатьом цілям, особливо якщо правильно підібрати технічні властивості майбутнього контролера. Для прошивки будь-якого чіпа важливо, щоб програматор міг коректно вважати його вміст перед заливкою нового firmware, отже, вони мають бути повністю сумісні. Типові мікросхеми сімейства мають такі параметри:
- обсяг флеш-пам`яті - від 4 до 32 кілобайт;
- оперативна пам`ять - від 512 байт до 2 кілобайт;
- розмір прошивки в модулі EEPROM – від 256 до 1024 байт;
- напруга живлення - від 1,8 до 5,5 вольт.
Крім того, на ринку представлені різні варіанти корпусів мікросхем, які відрізняються способом посадки, кількістю ніжок та геометричною формою.
Будь-яка мікросхема може бути впаяна на плату двома різними способами:
- наскрізним, коли ніжки запаюються зі зворотного боку;
- планарним - з ніжками-висновками, що знаходяться на тому ж майданчику, що і корпус.
Для роботи з такими деталями використовуються різні пристрої. У першому випадку достатньо паяльника, а у другому доведеться додати термоповітряний фен.
Кількість та призначення ніжок у мікросхеми обумовлено її призначенням. Вкрай важливо на підготовленій до її монтажу платі розташувати всі доріжки правильно і відповідно до схеми, так як неправильне заземлення або вихід на живлення можуть вивести з ладу всю конструкцію після першого включення. Геометрична форма - останній фактор у виборі деталі, він підбирається вже тоді, коли доріжки розведені, витравлені і готові до монтажу.
Умови, в яких може працювати така мікросхема, досить різноманітні, що користується її багатозадачністю. Температури, за яких вона гарантовано функціонуватиме, лежать у проміжку від 55 градусів морозу до 125 тепла. Зберігати її можна при ширшому діапазоні. Кристал мікросхеми термостійкий, тому у правильно зібраній платі не перегріватиметься вище паспортних даних.
Складання програматора для мікросхем
Для STK500 схема досить проста і не включає складно монтуються деталей. Операція складання проводиться у кілька етапів. Для проведення кожного з них потрібні робочі інструменти та різні деталі.
Збирати можна за готовою схемою, але за наявності спеціальних знань допускається абсолютно вільна модифікація будь-якої конфігурації. Наприклад, якщо любителя не влаштовує запропонований роз`єм для з`єднання з ПК, його можна замінити на аналогічний з подібними висновками. Варіантів може бути кілька:
- MicroUSB – найкомпактніший висновок, але для нього потрібен перехідник на повноцінний USB. Може використовуватись на невеликих програматорах.
- USB Type-A - звичайний роз`єм, здатний відразу підключатися до відповідного порту в ПК. Підходить тим людям, які намагаються якнайсильніше виключити вплив довжини проводу при роботі з програматором.
- USB Type-B теж вимагає дроту, але при цьому не має такої схильності до поломок в результаті згинання. Потрібний кабель можна знайти у будь-якого сучасного принтера. Дуже чутливий до довжини, при великому її значенні може просто не виконувати свою роботу.
У міру поширення USB Type-C з`явилися такі роз`єми, але використовувати їх потрібно на свій страх і ризик.
Головна перевага таких пристроїв полягає у відсутності необхідності вгадувати правильне положення штекера, що підключається - він вставляється незалежно від цього завдяки симетричності.
Щоб зібрати програматор STK500 своїми руками, знадобляться:
- Плата з витравленими доріжками, покрита лаком та залужена.
- Чіп ATMEL mega8 - серце пристрою.
- Мікросхема CP2102 - перетворювач сигналу. Використовується для забезпечення зв`язку USB-портом.
- Обв`язка згідно з датою.
Усі елементи припаюються безсвинцевим припоєм, щоб витримувати різні умови роботи. Він не тріскається і не утворює канавок, які після декількох років експлуатації можуть призводити до раптових "глюків" або неполадок, незрозумілих з технічного боку. Крім того, безсвинець має підвищену стійкість до окислення, а значить, здатний забезпечувати провідність набагато довше.
Мікросхеми встановлюються згідно з ключом, але якщо у плати немає позначення того, якій ніжці він повинен відповідати, краще продзвонити їх і виявити ті, що відповідають за заземлення. У ATMEL mega8 таких ніжок на одній із сторін цілих 5, що допоможе в орієнтації.
CP2102 в деяких корпусах є планарною мікросхемою, поставити яку зможе далеко не кожен. Спочатку потрібно відреболлити її, так як контакти використовуються прості свинцеві точки, і тільки потім встановлювати, прогріваючи феном всю площу.
Вибір кварцу та рознімання налагодження
Важливим у будь-якому програматорі є той інтерфейс, яким він буде спілкуватися з пристроєм, що прошивається. Як показує досвід, оптимальним у цьому випадку буде роз`єм ISP на 10 або 6 пін. Він недорогий, універсальний та добре документований.
Користувачеві не доведеться довго шукати розпинування, що спрощує його обслуговування.
Існує кілька типів шлейфів, які є перехідниками між пристроями. Крім того, є цілі плати, які підключаються до різних ISP, що забезпечують хорошу модульність. На них розпаюються різні порти, які використовуються для підключення Ethernet-кабелів, щоб згодом прошити по мережі JTAG-роз`єми або інші функціональні пристрої. Є і MOLEX-перехідники, здатні подавати додаткове харчування для самообслуговування (12 вольт).
Кварц потрібно підбирати за частотою головного мікроконтролера. Цей показник подивитися можна в датікаті. Якщо він там відсутній, його можна виміряти осцилографом. Для цього доведеться подати на мікросхему робоче харчування та зафіксувати щупи – один біля висновків, інший – на будь-якій ніжці, що відповідає за «землю». Стандартна вихідна частота має бути близько 1 МГц. Це найпоширеніший варіант, до якого найпростіше буде підібрати кварц.
Встановлення програмного забезпечення
Після закінчення процесу запаювання деталей пора приступати до первинної ініціалізації пристрою. Для цього варто вставити його в комп`ютер і зачекати на визначення операційною системою. Через деякий час з`явиться повідомлення про те, що виявлено новий пристрій. Залежно від того, чи визначилося воно одразу, є два варіанти дій:
- початок роботи, якщо так;
- пошук з установкою драйвера, якщо ні.
Щоб знайти програмне забезпечення для цього програматора, достатньо ввести в пошуковій системі його назву та скористатися наявними варіантами від користувачів. Порядок встановлення такий:
- Завантажити архів із драйвером. Розпакувати його.
- Запустити зі створеної папки виконуваний файл.
- Дочекатися закінчення установки.
Після цього, можливо, знадобиться перезавантаження. Якщо під час повторного запуску ОС у диспетчері пристроїв все ще знаходиться невідомий пристрій, а не повністю визначений програматор, слід виконати кілька додаткових кроків. Спочатку потрібно вимкнути цифрову перевірку драйверів:
- Перезавантажити ПК, при повторному увімкненні натиснути кнопку F8.
- Із запропонованих варіантів вибрати «Вимкнути перевірку підпису драйверів у системі».
- Завантажитися в ОС і встановити програмне забезпечення через диспетчер пристроїв.
Щоб це зробити, потрібно на програматорі, що не визначився, клацнути правою кнопкою миші і вибрати «Оновити драйвер». Потім слід натиснути "Виконати пошук на цьому комп`ютері", вказати через "Провідник" папку з драйвером та натиснути "Далі". Після цього необхідно дочекатися закінчення установки.
Утиліти для прошивальника
Без спеціалізованого ПЗ прошити мікросхеми цим пристроєм не вдасться, а тому рекомендується використовувати одну з кількох утиліт, популярних серед ентузіастів. Одна з них – AVR Studio (її сучасним аналогом є Atmel Studio).
Для неї в автоматичному режимі підтягується плагін для взаємодії з STK500, тому жодних додаткових дій щодо ініціалізації не потрібно.
Можливості програми:
- Є симулятор поведінки прошивки, здатний на етапі попереднього планування усунути всі можливі неполадки.
- Є кілька компіляторів для покращення сумісності між ПЗ, написаним різними мовами.
- Режим командного рядка для налагодження та введення команд вручну.
- Нативна підтримка великої кількості плагінів, які спрощують деякі дії.
У ранніх версіях програми був асемблер, який пропонував можливість побайтового аналізу вихідного коду, але розробники вважали, що він зайвий, оскільки обтяжував і так постійно зростаючий в обсязі пакет. При необхідності його можна дістати з старіших версій.
Інша корисна утиліта - ChipBlasterAVR Chip Programmer. Вона дуже різностороння, підтримує безліч типів контролерів та гнучке налаштування параметрів процесу прошивки. Може призначати пакетну заливку програмного забезпечення на кілька чіпів по черзі без необхідності щоразу налаштовувати весь процес спочатку. Вибирається і частота кварцу, яку можна виставити як точно, і в межах двох значень.