Программирование микроконтроллеров AVR с помощью программатора USBASP и Atmel Studio 7.0


Существует несколько способов программирования микроконтроллеров семейства AVR. В данной статье мы рассмотрим один из наиболее популярных в настоящее время способов программирования данных микроконтроллеров – с помощью программатора USBASP v2.0 и программы Atmel Studio 7.0. Хотя на нашем сайте уже есть достаточно подробные статьи про программатор USBASP и программу Atmel Studio 7.0 я все таки решил перевести с иностранного сайта и эту статью – вдруг кто то найдет в ней для себя что то интересное.

USBASP и Atmel Studio 7.0 - инструменты для программирования микроконтроллеров AVR

В данной статье будут рассмотрены следующие вопросы:

  1. Установка драйвера USBASP.
  2. Скачивание и установка Atmel Studio.
  3. Установка WinAVR для Atmel Studio.
  4. Установка микроконтроллера Atmega16 с кварцевым генератором и одним светодиодом.
  5. Создание и загрузка программного кода в Atmega16.

Рассмотрим подробно все эти вопросы. Установку драйвера для программатора USBASP будем рассматривать на примере операционной системы Windows10 – но все сказанное в этом разделе будет справедливо и для других версий Windows.

Установка драйвера для USBASP в Windows 10

Если вы используете интерфейс JTAG, вам может потребоваться установка драйвера для USBASP если он не установился автоматически. Если вы не установите этот драйвер, то вы не сможете найти порт USBASP в программе Atmel Studio. Скачать драйвер USBASP можно по этой ссылке - http://www.mediafire.com/file/z576zrku371qyjs/windows-8-and-windows-10-usbasp-drivers-libusb_1.2.4.0-x86-and-x64-bit.zip/file.

После скачивания драйвера выполните следующую последовательность действий:

1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.

2. Подсоедините модуль USBASP v2.0 к своему компьютеру.

3. Откройте в Windows диспетчер устройств (Device Manager).

4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.

USBASP в диспетчере устройств

5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.

Меню обновления драйвера для USBASP

6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.

Выбор способа обновления драйвера для USBasp

7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните "Открыть".

Выбор папки с драйвером для USBASP

8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.

Драйвер для USBASP успешно установлен

9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.

Произошла ошибка при установке драйвера для USBASP

Чтобы сделать выполните следующие шаги:

- нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);

- когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;

Выбор расширенных настроек

- отпустите кнопку Shift и кликните на “Startup Settings”;

- кликните на “Troubleshoot (Устранение проблем)”;

Выбор устранения проблем

- выберите “Advanced Options (Расширенные настройки)”;

Выбор расширенных настроек при устранении проблем

- после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;

Список расширенных опций перезагрузки

- подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;

- в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку "7" на вашей клавиатуре (не путать с кнопкой "F7");

Отключение цифровой подписи драйвера при перезагрузке

- после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;

- после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.

Скачивание и установка Atmel Studio

Выполните следующую последовательность действий:

1. Скачайте Atmel Studio 7.0.

2. Также вам необходимо скачать приложение WinAVR чтобы иметь возможность загружать программы в микроконтроллер AVR с помощью USBASP.

После этого вам необходимо создать тестовый проект в Atmel Studio 7.0. Для этого выполните нижеследующую последовательность действий.

3. Подсоедините USBASP v2.0 к USB порту вашего компьютера и подождите пока он правильно определится.

4. Откройте Atmel Studio.

5. Выберите пункт меню “File”, в нем “New” и выберите “project”.

Создание нового проекта в Atmel Studio

6. Теперь назовите ваш проект, выберите место расположения проекта и выберите компилятор “GCC C Executable Project”. Кликните на “Ok” и продолжайте.

Выбор компилятора в Atmel Studio

7. После этого вам будет необходимо выбрать ваше устройство для программирования. В нашем случае это будет микроконтроллер Atmega16A. Если вы будете программировать другие микроконтроллеры, например, Atmega8, Atmega32, то для их программирования также можно использовать программатор USBASP.

Выбор типа микроконтроллера в Atmel Studio

8. После этого для вас будет создан файл main.c, где вы можете писать ваш программный код.

Но после создания проекта финальный шаг, который вам необходимо выполнить – это установить внешние инструментальные средства (WinAVR).

Установка WinAVR в Atmel Studio

1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.

Выбор внешних инструментов в Atmel Studio

2. У вас откроется окно, где вы должны будете ввести имя вашего инструментального средства.

3. В пункте “Title (название)” введите имя вашего внешнего инструментального средства. Можно выбрать любое имя, но в рассматриваемом примере мы выбрали имя “USBasp”. Поставьте галочку в пункте ”Use Output Window” и снимите галочку с пункта “Prompt for arguments” как показано на нижеприведенном рисунке.

4. Теперь ведите “Command”. Там будет необходимо указать путь к “avrdude.exe” – его вы можете найти в папке где установлена WinAvr. Просто найдите “WinAVR-20100110” на диске “C” вашего компьютера – куда вы устанавливали WinAvr.

5. Введите аргументы. Это самый важный шаг в этой последовательности действий поскольку от них будет во многом зависеть корректность работы приложения. Поскольку в рассматриваемом нами случае мы используем внешние инструментальные средства, то можно ввести следующие аргументы:

<avrdude -c usbasp -p atmega8 -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:i>

6. Больше аргументов можно найти по этой ссылке.

7. Введите аргументы в поле для ввода аргументов. Оставьте поле “Initial directory (Начальный директорий)” без изменений.

Окно для ввода аргументов

8. После заполнения всех полей нажмите “Apply” и затем “Ok”.

В результате этих шагов вы сможете использовать внешние инструментальные средства чтобы загружать программы в микроконтроллер. Проверим это с помощью тестового проекта (программы) “blink.c”. Файл main.c вы можете найти в конце этой статьи. Теперь скопируйте main.c в Atmel studio.

Схема устройства с мигающим светодиодом для Atmega16

Схема устройства, которую необходимо собрать, приведена на следующем рисунке. Соедините кварцевый генератор и светодиод с микроконтроллером Atmega16.

Схема конструкции с мигающим светодиодом

Внешний вид макетной платы в этом случае будет выглядеть следующим образом:

Внешний вид макетной платы с собранной конструкцией

Также вы должны соединить микроконтроллер и USBASP как показано на следующей схеме:

Схема соединений USBASP и микроконтроллера AVR ATmega16

Компоновка и загрузка программного кода в Atmega16

1. Сохраните файл main.c.

2. Подсоедините светодиод к контакту PORTA0 микроконтроллера Atmega16 как было показано на вышеприведенном рисунке.

3. Выберите пункт меню “Build” и затем выберите “Build Blink”.

Компоновка проекта в Atmel Studio

4. Если программа не содержит ошибок, то вы увидите сообщение как на представленном рисунке.

Успешная компиляция проекта в Atmel Studio

5. Теперь выберите пункт меню “Tools” и выберите в ней созданные внешние инструментальные средства. В нашем случае это будет “USBasp”. Кликните по нему.

Выбор USBASP в Atmel Studio

6. Если после этого вы увидите сообщение об успешности операции (как показано на рисунке ниже), то значит вы успешно загрузили программу в микроконтроллер. Если вы получили сообщение об ошибке, то проверьте правильность выполнения всех предыдущих шагов, а также проверьте исправность соединительных проводов между USBASP и Atmega16.

Загрузка программы в микроконтроллер AVR с помощью программатора USBASP и Atmel Studio 7.0

7. Вы успешно загрузили тестовую программу с мигающим светодиодом в микроконтроллер используя USBASP v2.0 and Atmel Studio 7.0 и можете увидеть как мигает светодиод в собранной схеме. Теперь вы можете аналогичным образом загружать в микроконтроллер любые другие программы.

Код тестовой программы с мигающим светодиодом

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
21 578 просмотров

Комментарии

Программирование микроконтроллеров AVR с помощью программатора USBASP и Atmel Studio 7.0 — 10 комментариев

  1. Поэкспериментировал со схемой...
    Оказывается генератор на кварце не нужен 🙂
    Все работает и без него.

    • Да, в этом случае используется встроенный тактовый генератор микроконтроллера, но его точность хуже чем у внешнего кварца. Для большинства проектов возможностей встроенного генератора, конечно, хватит, но для проектов, критичных к точному времени (часы, будильники и т.д.) лучше все таки использовать внешний кварцевый генератор

      • А есть ли возможность отключить внутреннее тактирование, чтобы проверить работу внешнего герератора?
        Спасибо!

        • Да, конечно, это делается с помощью битов конфигурации CKSEL. В этой книге можете подробно почитать:
          elec.ru/files/2019/09/27/Mikrokontrollery_AVR_v_radiolyubitelskoy_praktike.PDF?ysclid=lepyvu1mdn384936899
          Информация об этом там начинается с 42 страницы. Просто подобные книги я не могу выкладывать у себя на сайте поскольку это нарушает авторские права.
          И в этой статье про будильник на микроконтроллере AVR про это написано немного.

  2. Спасибо за ответ!
    Кроме того, на схеме ошибка. Нижний по схеме вывод кварца должен быть подключен к пину 13.
    Спасибо!

  3. Здравствуйте!
    На скриншотах в скетче частота установлена 16МГц, а в теле программы 10Мгц.
    Или я не так что-то понял?
    Просьба пояснить.
    Спасибо!

    • Добрый вечер. Исправил, в теле программы была опечатка. Но частота работы микроконтроллера будет зависеть от частоты кварцевого генератора, который вы к нему подключите - учитывайте это при написании программы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *