Atmel Studio + USBasp

Мікроконтроллери AVR фірми Atmel  є дуже поширеними завдяки своїй простоті, дешевизні, та безплатними засобами розробки. На їхній базі зроблено багато  успішних проектів. Щоб розробляти firmware для цих мікроконтроллерів не потрібні дорогі програматори та платне програмне забезпечення (наприклад IAR Embedded Workbench for Atmel AVR).

Безплатною IDE для AVR є Atmel Studio ( на момент написання статті, остання версія 6.2), Це середовище дозволяє писати програму як на С так і на С++, відлагоджувати через JTAG або програмний симулятор,  має багато різних плагінів, що розширюють функціонал середовища. Для програмування і відлагоджування використовують AVRISP mkIIAVR JTAGICE mkIIJTAGICE3. Ці інструменти підходять людям які професійно займаються розробкою пристроїв. А якщо тільки для хоббі, не зовсім хочеться платити 40$ (приблизна ціна AVRISP mkII на digikey) і користуватись ним кілька разів на місяць(а може і ще рідше).

Для таких випадків  можна знайти зробити самому чи купити трошки простіші програматори, але їх буде достатньо для роботи. Для підключення до комп’ютера можуть використовувати COM, LPT або  USB , оскільки не на всіх сучасних комп’ютерах  є два перші роз’єми, краще вибирати з USB.

Під цю категорію добре підходить програматор USBasp. Для тих хто хоче самостійно його зробити тут є все необхідне для цього. Можна купити уже зібраний приблизно за 120 грн тут (або в інших українських інтернет магазинах), або замовити на ebay приблизно за 3$ разом із доставкою (доставка займає приблизно 2-3 тижні). Програмування через цей пристрій відбувається за домопогою консолі (командного рядка), або через графічну оболонку.


Оскільки програматор не є розробкою фірми Atmel, він не інтегруюється в  Atmel Studio, тому після компіляції програми (прошивки) потрібно запускати оболокнку/консоль програматора для того щоб “зашити” прошивку в память мікроконтроллера. Такий спосіб не дуже зручний. Тому зробимо так щоб можна було прошивати мікроконтроллери з Atmel Studio. Для цього потрібно зробити наступні кроки:

1. Завантажити і встановити драйвер програматора.
2. Завантажити avrdude (найновіша версія на момент написання статті 6.1) – програма для роботи з програматором.

Після завантаження програми потрібно її розпакувати(рекомендують в корінь диску С:\)  файли (avrdude.exe та avrdude.conf)  та запамятати шлях до них. В моєму випадку цей шлях “c:\Program Files (x86)\avrdude\”  

Запускаємо Atmel Studio, в меню Tools вибираємо External Tools.

Заповнюємо наструпні поля:

Title: USBasp
Command:  C:\Program Files (x86)\avrdude\avrdude.exe
Arguments:  -V -c usbasp -p m88 -U flash:w:$(TargetName).hex 
Initial directory: $(TargetDir)
також ставимо галочки для “Use Output window” та “Prompt for arguments

m88 в рядку  “-V -c usbasp -p m88 -U flash:w:$(TargetName).hex ” означає що тип мікроконтроллера Atmega88. Параметри командного рядка для всіх підтримуваних типів мікроконтроллерів можна знайти тут. Недоліком є те, що після зміни мікроконтроллера, треба змінювати параметри цього рядка.

Після збереження налаштувань, у нас зявиться новий пункт у меню Tools:

Для прошивки достатньо натиснути ОК, в наступному вікні:

Процес прошивки виглядає так:

Корисні лінки:

USBASP driver for Windows 7 and Windows Vista
Setting up USBasp for use with Atmel Studio 6