Головна> Проекти> Використання програматора USBASP в Atmel Studio
Програматор USBASP є на сьогоднішній день найдешевшим программатором мікроконтролерів AVR компанії ATMEL і дозволяє програмувати безліч мікроконтролерів серій AVR ATTiny, AVR ATMega та інших. У даній статті я розповім вам про основні особливості використання цього програматора з під ОС Windows 7 і як налаштувати його роботу спільно з середовищем розробки програм Atmel Studio на прикладі версії 6.1. На жаль, за замовчуванням, Atmel Studio не підтримує цей програматор.
Установка драйвера програматора
В першу чергу необхідно встановити драйвер для програматора. Ми не будемо детально описувати процедуру установки драйвера, так як тут не повинно виникнути жодних труднощів. Після установки драйвера підключений програматор відображається в диспетчері пристроїв Windows як пристрій USBasp.
установка Avrdude
Для програмування мікроконтролерів AVR будемо використовувати програму Avrdude. Ця програма підтримує велику кількість програматорів, в тому числі і USBASP. Цією програмою присвячена окрема сторінка в вікіпедії.
Програма avrdude є консольної і запускається з командного рядка. Для виконання програмування їй передається набір параметрів, що визначає настройки. Нижче наведено приклад командного рядка для програмування контролера за допомогою програматора USBASP:
avrdude -c usbasp -p atmega32 -U flash: w: myhexfile.hex -U lfuse: w: 0x6a: m -U hfuse: w: 0xff: m
Пояснимо основні параметри:
- -c usbasp параметр визначає тип програматора, в нашому випадку це usbasp;
- -p atmega32 параметр визначає тип мікроконтролера, для прикладу використаний ATmega32;
- -U flash: w: myhexfile.hex параметр визначає hex файл для запису в контролер. Файл повинен розташовуватися або в каталозі програми, або необхідно вказати повний шлях до файлу;
- -U lfuse: w: 0x6a: m параметр визначає молодший байт регістра Fuse;
- -U hfuse: w: 0xff: m параметр визначає старший байт регістра Fuse;
Регістри Fuse використовуються для настройки режиму роботи мікроконтролера і для їх визначення зверніться до документації відповідного контролера. Хочу попередити, що некоректна установка режиму контролера через регістри Fuse може привести до неможливості подальшого програмування контролера, завдяки чому, уважно вивчіть документацію. Якщо ви не хочете змінювати регістр Fuse, ви можете не передавати ці параметри при програмуванні, в цьому випадку регістр Fuse залишиться в тому ж стані, що і до програмування.
Avrdude має багато різних функцій, але в рамках даної статті нам важливий один режим її роботи, а саме заливка програми в мікроконтролер. Решта функцій ви зможете вивчити в документації.
Налаштування програмування з Atmel Studio
Як уже було згадано, Atmel Studio не підтримує програматор USBASP. Однак в неї вбудований механізм для запуску зовнішніх програм для виконання різних дій. Використовуючи цей механізм зовнішніх інструментів, програмування контролера буде здійснюватися однією кнопкою прямо з меню Atmel Studio.
У Atmel Studio відкриваємо пункт меню Tools і вибираємо пункт External tools.
У вікні настроювання інструментів натискаємо кнопку Add для додавання нового інструменту. Заповнюємо наступні поля:
- Title. довільне ім'я інструменту, ми вказали USBASP atmega32.
- Command. файл запуску програми avrdude. Ми вказали C: AVRDUDEavrdude.exe, так як у нас вона розміщена в каталогеAVRDUDE на диску С.
- Arguments. параметри запуску для avrdude, які ми розглянули вище. Ми задали рядок -c usbasp -p atmega32 -U flash: w: $ (TargetName) .hex, в якій вказали ім'я програматора, ім'я контролера, і шлях до файлу прошивки. Шлях до файлу вказано через спеціальні макроси і Atmel Studio підставить їх сама. Ми не вказали регістр Fuse в цьому прикладі, але при необхідності ви можете додати їх самостійно.
- Initial directory. вказано макрос для підстановки каталогу, в якому знаходиться файл прошивки.
- Use Output window. встановіть цю галочку для того, що б результат роботи програми показувався в вікні Atmel Studio. Послу установки всіх налаштувань натисніть кнопку OK для збереження налаштувань і виходу.
Тепер, для програмування мікроконтролера досить зайти в меню Tools і натиснути команду USBASP atmega32. яка там має з'явитися після пророблених налаштувань. Програмування необхідно запускати після компіляції проекту, так як файл прошивки створюється в процесі компіляції проекту.
Підключення програматора до мікроконтролеру
Програматор USBASP підключається до мікроконтролера по стандартному інтерфейсу ISP. Фізично на программаторе інтерфейс має 10 контактів. Більшість контактів об'єднані загальним проводом. Призначення використовуваних контактів наступне:
- MISO, MOSI, SCK, RESET - підключається до відповідного висновку мікроконтролера;
- GND - земля, підключається до міну або GND мікроконтролера;
- VCC - використовується для подачі живлення на мікроконтролер.
На друкованих платах модулів, де використовуються контролери AVR, розробники дуже часто мають у своєму розпорядженні інтерфейс SPI 6 контактів, що дозволяє зробити внутрішньосхемне програмування контролера. Такий інтерфейс можна бачити навіть на платах Arduino. Для підключення програматора до такого 6-й контактному інтерфейсу можна використовувати з'єднувальні дроти мама-мама або спеціальний перехідник ISP10 в ISP6 для програматора AVR USBASP.