Світ електроніки - програмування для початківців

Програмування AVR за допомогою PONY PROG

Отже, що таке мікроконтролер ми в загальних рисах розібралися (дивимося Програмування для початківців. Частина1), тепер нам потрібен програматор.
Найпростіший програматор для AVR мікроконтролерів можна виготовити по ось такою схемою:

Світ електроніки - програмування для початківців

Називається він STK-200. В общем-то цілком і підійшов-б програматор PONY PROG. але у нього є один дуже суттєвий мінус він не дає запрограмувати деякі фьюз, які іноді ще називають небезпечними (наприклад RSTDSBL, DWEN, SPIEN). Якщо випадково запрограмувати такий небезпечний фьюз, то ви вимкніть можливість користуватися ISP программатором, МК заблокується, для відновлення МК потрібен буде паралельний програматор (високовольтний).
А ось для управління програматором STK-200 можна використовувати програму від PONY PROG- про це трохи нижче.

Є ще варіант программаторов так званий "5 дротів" - безпосередньо від LPT порту комп'ютера, але користуватися программаторами типу "5 дротів" не рекомендується.
Є полегшений варіант програматора STK-200, який так-же побудований на кількох проводках, збирати його я так само не рекомендую, з тієї причини, що таким программатором дуже легко спалити LPT порт, для порівняння - COM порт спалити в рази важче. Та й потім, програмуючи "5ти проводками" можна випадково замкнути ці дроти між собою, спалити МК або знову ж порт. Використання буферного повторювача в мікросхемі покращує крутизну фронтів сигналу, а так само береже LPT порт, від випадкових КЗ і перенапруг

Повернемося до схеми програматора STK-200. в ньому застосована всього-ли одна мікросхема 74HC244 (аналог у неї КР1533АП5).

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

Трохи нижче додаються фотографії готового програматора STK-200.

На фото, на платі програматора присутній кварц і конденсатори. Кварц потрібно ставити на 4 мГц, конденсатори на 5-15 пФ, два штирі поруч зі світлодіодами на платі, використовуються для подачі живлення, 5 вольт.
Якщо ви будете збирати перехідник, то харчування подається з плати перехідника, тому що там стоїть "Кренке" на 5 Вольт, вона захистить мікроконтролер і схему від переполюсовки або перевищення напруги.

Світ електроніки - програмування для початківців

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

Світ електроніки - програмування для початківців

Нижче в архіві прикріплені файли для виготовлення программатора- схема, друкована плата програматора і перехідника для ATmega8 / 48/168, ATtiny2313.

Для того щоб перевірити чи працює наш програматор, підключаємо його в порт LPT, натискаємо правою кнопкою миші на значку "Мій комп'ютер", в списку, що з'явився вибираємо "диспетчері пристроїв", відкриється віконце, натискаємо оновити конфігурацію устаткування і на программаторе змигнуть світлодіоди читання / запису . До речі, харчування береться від зовнішнього джерела, а не з LPT порту, будьте уважні.

Головною перевагою паралельного програматора є здатність відновлювати деякі неправильно встановлені біти. Після цього інтерфейс ISP відключається, і при програмуванні послідовним программатором в таких випадках видається повідомлення про помилку.

Вибір програми для прошивки мікроконтролера

Популярними програмами для прошивки AVR мікроконтролерів є PonyProg і CodeVisionAVR. Я користуюся Code Vision AVR (далі CVAVR), але розглянемо ми обидві програми. В принципі, можете користуватися будь-якими іншими програмами, тільки запам'ятайте одне дуже важливе зауваження: в різних програмах фьюз можуть виставлятися по різному, тобто дзеркально.

В першу чергу підключаємо програматор в потрібний нам порт, тільки спочатку ставимо мікроконтролер в панельку. Харчування подавайте після того, як програматор буде підключений до порту.
Для того, щоб запрограмувати мікроконтролер нам потрібні файли прошивки, файл з розширенням .hex. в деяких проектах використовується ще файл EEPROM .eep. (Електрично змінна пам'ять даних, в ньому зберігаються різного роду константи).

Прошивка мікроконтролера за допомогою PonyProg

Звичайно спочатку треба скачати і встановити саму програму. Вона є тут.
Завантажили, встановили, запускаємо. З'явилося ось таке віконце (ще й звук при запуску буде у вигляді кінського ржач.)

Світ електроніки - програмування для початківців

Потім- в списку пристроїв потрібно вибрати наш МК: натискаємо меню "Пристрій", потім вибираємо AVRmicro -> ATmega8.

Світ електроніки - програмування для початківців

Потім, звичайно-ж нам потрібен сам файл прошивки, для цього натискаємо Файл -> Відкрити файл програми (FLASH) ... Відкриється віконце, де нам потрібно вибрати наш файл прошивки з розширенням .hex.

Світ електроніки - програмування для початківців

не забуваємо в списку вибрати потрібний нам розширення файлу, інакше файл прошивки не виявиться

Світ електроніки - програмування для початківців

Після того як ми цей файл відкрили, в віконці з'являться купа всяких незрозумілих цифр і букв. Це так виглядає прошива в 16-тиричном коді.

Світ електроніки - програмування для початківців

Жах, звичайно, на перший погляд, але нехай це вас не лякає: все це написано не нами, міняти там нічого не треба і якщо сама прошивка робоча, то можна навіть не вдаватися в подробиці що там та як.

Тепер-нам точно так-же потрібно вибрати файл прошивки EEPROM з розширенням .eep. якщо звичайно він потрібен і додається.

Світ електроніки - програмування для початківців

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

Кількома Установки -> Налаштування обладнання. Всі настройки виставляємо як на малюнку нижче, потім натискаємо кнопку "Перевірка" - має вийти віконце "Тест ОК"

Світ електроніки - програмування для початківців

Якщо раптом тест налаштувань PONY на пройшов і вискочило віконце з написом "Тест ПОМИЛКА"

Тоді нам треба перевірити конфігурацію порту LTP.
Натискаємо правою кнопкою миші на значку "Мій комп'ютер" і вибираємо "Диспетчер пристроїв" або можна зайти в Панель управління -> Система -> Устаткування -> Диспетчер пристроїв.

Світ електроніки - програмування для початківців

в списку знаходимо Порти (COM і LPT), натискаємо правою кнопкою миші на ньому і натискаємо "Оновити конфігурацію устаткування"

Світ електроніки - програмування для початківців

Потім закриваємо вікно, і повертаємося до PonyProg, заново запускаємо тест, натискаємо "Перевірка", має вийти віконце з написом "Тест ОК".

Якщо все в порядку, то натискаємо "ОК", далі переходимо в меню Установки -> Калібрування, натискаємо Yes.

Світ електроніки - програмування для початківців

Вийде повідомлення про успішно проведену калібрування, натискаємо ОК

Зараз нам потрібно буде виставити фьюз. якщо у вашій конструкції фьюз не виставляти, переходите до наступного пункту. Кількома Команди -> Security and Configuration Bits ... відкриється віконце для установки фьюз

Світ електроніки - програмування для початківців

Тепер все готово, і можна прошити мікроконтролер, натискаємо Команди -> Записати все. Якщо ви ще не передумали, то у віконці яке вийшло, натискаємо "Yes", і почнеться процес запису і перевірки.

Якщо все пройшло успішно, але в кінці-кінців повинно з'явитися повідомлення

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

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

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

У наступній статті Програмування для початківців. частина3 ми будемо розглядати прошивку мікроконтролерів з допомогою програми CodeVision AVR. ну а як додаток до повідомлення, як і було сказано вище, креслення для вибору програм до форматі lay. Це спеціальний файл для програми LAYOUT. яку можна завантажити тут