В этом материале вы узнаете, как использовать AVR IDE для создания проектов, базовых схем и программирования ваших цепей.
Содержание
- Комплектующие
- Схема
- Как установить AVR Studio
- Как установить WINAVR
- Как подключить USBASP и установить драйвер для Windows
- Как настроить Atmel Studio 7 и WinAVR
- Создание первого проекта
- Заключение
Комплектующие
Микроконтроллеры AVR имеют некоторые преимущества по сравнению с другими аналогичными микросхемами, включая более высокую MIPS и более дружественную архитектуру. В этой статье мы узнаем, как использовать AVR IDE, как создать исполняемый проект, построить базовую схему AVR, а затем запрограммировать ее. Для этого нам понадобится набор компонентов, а также некоторое программное обеспечение.
Оборудование:
- ATMEGA168 DIP IC x 1
- Кварцевые резонаторы, кристалл (4-20 МГц) x 1
- 20 пФ конденсатор x 2
- 680 резистор x 1
- 5.6K резистор x 1
- Светодиод LED x 1
- Источник 5 В (цепь 7805, плавное регулирование и т.д.) x 1
- Провода
Программное обеспечение:
- USBASP
- WINAVR (20100110)
- Atmel Studio 7
Схема
Построение схемы довольно простое и может быть выполнено с использованием большинства методов построения схем, включая макет, картон, монтажную плату и печатную плату.
Схема в этом проекте показывает использование простой цепи регулятора мощности (с использованием 7805), которую обеспечивает устройство ATMEGA 5В, но оказывается, что программатор USBASP обеспечивает приблизительно 3,3 В. Несмотря на это, лучше обеспечить внешнее питание, чтобы USBASP не потреблял слишком много тока из любого USB-порта.
Программатор USBASP, который я купил, также шел с конвертером, который преобразует 10-контактный разъем в более удобный 6-контактный программный разъем. Тем не менее, header использует двухрядный шаг 2,54 мм, что означает, что он не может быть подключен к макету. Чтобы обойти это, я просто подключил разъем к проводам, которые соединяются с различными пинами на макете.
Как установить AVR Studio
Устройства AVR программируются с использованием специально модифицированной Visual Studio 2015 под названием AVR Studio 7, которую можно найти на сайте AVR. Первым шагом в программировании устройств AVR является скачивание установщика (небольшого приложения, которое загружает потом необходимые файлы). После скачивания нужно запустить установщик.
Первое, что он вас спросит, будет текст лицензионного соглашения и вопрос про отправку анонимной информации. Я лично рекомендую вам не отправлять анонимные данные по ряду причин (из-за крайней паранойи).
На следующей странице спрашивается какую архитектуру вы хотите установить. Поскольку наш материал охватывает только устройства из диапазона 8-битных микроконтроллеров AVR, то это будет единственная выбранная опция. Однако, если у вас приличная скорость загрузки (у меня всего 4 Мбит/с), тогда выбор всех опций может пригодиться в будущем.
После выбора поддерживаемого устройства на следующей странице будет задан вопрос про расширения — Atmel Software Framework и примеры проектов. Убедитесь, что галочка стоит.
Следующая страница просто проверяет ваш компьютер на наличие потенциальных проблем, таких как отложенный перезапуск (из-за обновления), или если система не сможет запустить IDE. Если все проверено и ОК, жмите «Далее».
Если вы уже установили более раннюю версию AVR IDE, вы можете увидеть следующее окно. Если это так, просто нажмите «Установить».
Теперь нужно подождать пока IDE загрузит все необходимые компоненты и установит их.
После этого вам будет предложено запустить Atmel Studio 7.0. Убедитесь, что стоит галочка перед закрытием окна установки.
Как установить WINAVR
Хотя Atmel Studio 7 полезная штука для написания кода, она не самый лучший выбор, когда речь идет о программировании устройств AVR с использованием инструментов с открытым исходным кодом. Поэтому, чтобы сделать жизнь проще на этапе компиляции и/или программирования, мы будем использовать WINAVR, которая также поставляется с AVRDUDE для загрузки нашего кода на устройства Atmega. Чтобы скачать WINAVR для Windows, просто нажмите на эту ссылку и выберите исполняемый exe-файл.
После скачивания запустите установщик и просмотрите все предложенные опции, пока программа не спросит вас про место установки.
Лучшее место для установки WINAVR — это рекомендуемое расположение: C:WinAVR-20100110
. Следующая опция спросит про компоненты и вы должны убедиться, что установлены все галочки (показано ниже).
После того, как кнопка установки нажата, установщик выполнит остальную часть работы, после чего установщик закроется.
Как подключить USBASP и установить драйвер для Windows
Если вы используете Windows, вам необходимо изменить драйвер USB для USBASP. Это сделать не сложно с помощью инструмента под названием Zadig. Проще говоря:
- загрузите Zadig,
- подключите устройство USBASP к компьютеру,
- дождитесь пока Windows автоматически установит USBASP,
- запустите Zadig,
- найдите устройство USBASP в раскрывающемся списке,
- выберите драйвер libusb-win32 (v1.2.6.0).
После того, как вы нажмете «Заменить драйвер» (или Переустановить драйвер), Zadig автоматически установит драйвер, необходимый для работы USBASP в Windows.
Как настроить Atmel Studio 7 и WinAVR
Atmel Studio 7 не будет изначально использовать WINAVR или AVRDUDE, поэтому мы должны настроить её для этого. Это может показаться пугающим, но не паникуйте; для программирования устройства AVRDUDE необходима только одна строка инструкций, и только один каталог требуется определить. Фактически, вы должны быть в состоянии скопировать и вставить код в этой статье для любого проекта на базе ATMEGA168.
Итак, первый шаг — сообщить Atmel Studio 7 какой компилятор она должна использовать. Для этого откройте Atmel Studio 7 (если она еще не открыта) и нажмите: Инструменты -> Параметры (англ.: Tools -> Options).
В открывшемся окне используйте список слева, чтобы перейти к: Набор инструментов -> Конфигурация пакета (англ.: Toolchain -> Package Configuration) и в опциях, которые теперь должны быть доступны справа, выберите Atmel AVR 8-bit (язык C) (Atmel AVR 8-bit (C language)) из раскрывающегося списка, а затем нажмите: Добавить особенность (англ.: Add Flavour).
Предполагая, что вы установили WINAVR в папку по умолчанию на диске C и что у вас та же версия, что и в WINAVR, как в этой статье, во всплывающем окне мы пишем так, как показано ниже. После заполнения полей нажмите «Добавить» (англ. add), а когда вы вернетесь в предыдущее окно, нажмите «ОК».
Atmel Studio 7 теперь может использовать WINAVR для компиляции программ AVR, но все равно не может программировать устройства. Для этого нам нужно добавить внешний инструмент в Atmel Studio 7 и настроить его для устройства ATMEGA168.
Первый шаг — перейти в: Инструменты -> Внешние инструменты (англ. Tools -> External tools). Открывшееся окно — единственное окно, необходимое для работы программатора USBASP. Скрин ниже показывает большинство деталей, которые вам нужно будет заполнить.
Поле «Аргументы» (англ. Arguments) не полностью отображает всю информацию, которая необходима, и поэтому приведу ниже то, что было заполнено:
avrdude -c usbasp -p atmega168 -U lfuse:w:0x26:m -U flash:w:$(ProjectDir)Debug$(TargetName).hex:i
Большая часть информации в этом не важна для нас, кроме двух фрагментов текста. Первый — это -p atmega168;, который говорит AVRDUDE, что мы программируем ATMEGA168. Если в вашем проекте используется другой чип, замените текст atmega168 на используемое вами устройство (например, atmega88).
Второй параметр -U lfuse:w:0x26:m, который специфичен для ATMEGA168. Эта инструкция указывает AVRDUDE настроить устройство на использование внешнего кристалла, и после программирования устройство будет работать только при подключении к схеме кристалла. Обратите внимание, что это также означает, что устройству требуется кристалл при программировании. Этот аргумент будет работать только для ATMEGA168.
Создание первого проекта
Следующая задача состоит в том, чтобы создать проект на основе AVR микроконтроллера и протестировать схему, компилятор и программатор.
Сначала перейдите в: Файл -> Создать -> Проект (англ. File -> New -> Project) и в открывшемся окне выберите: Исполняемый проект GCC C (англ. GCC C Executable Project), а в текстовом поле Имя (англ. Name) дайте любое название вашему проекту.
Следующее окно, которое должно появиться, — это окно выбора устройства. Из списка выберите Atmega168. Насколько мне известно, это окно не имеет никакого смысла, так как мы все равно передаем имя устройства в AVRDUDE вручную (пока я не могу найти способ заставить Atmel Studio 7 автоматически отправлять имя устройства в AVRDUDE через аргументы).
Результатом должен стать файл main.c, содержащий код нашей программы, который будет запускать AVR. Однако сгенерированный код ничего не делает, поэтому замените все содержимое файла main.c с помощью приведенной ниже программы (обязательно сохраните файл после ввода нового кода).
#define F_CPU 800000UL // Я использую кристалл 8 МГц #include <avr/io.h> #include <avr/delay.h> int main(void){ DDRD = 0xFF; // Сделать порт D портом выхода while(1){ PORTD = 0xFF; _delay_ms(1000); PORTD = 0x00; _delay_ms(1000); } }
Теперь пришло время скомпилировать код и загрузить его на устройство AVR. Первый шаг — убедиться, что наш проект использует компилятор WINAVR. Щелкните правой кнопкой мыши проект и выберите «Дополнительно» (англ. — Advanced) в окне свойств.
В окне «Дополнительно» убедитесь, что в поле «Набор инструментов» (англ. — Toolchain Flavour) выбран WINAVR.
Сохраните проект и скомпилируйте его, нажав: Build -> Build Solution (или нажав F7). Если все идет по плану, в окне вывода должно появиться следующее сообщение:
Build succeeded. ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Это означает, что наш проект успешно скомпилирован и готов к передаче на наш чип. Чтобы запрограммировать устройство, убедитесь, что USBASP подключен как к ПК, так и к цепи Atmega, к цепи подано питание и что к микросхеме подключен кристалл (в случае, если микросхема была настроена для использования внешнего кристалла).
Затем, после всего этого, нажмите: Инструменты -> USBASP (англ. Tools -> USBASP), и все будет работать автоматически.
Если все хорошо, светодиод в вашей цепи должен начать мигать. Ниже приведен вывод AVRDUDE в Atmel Studio 7, показывающий, как выглядит успешная программа.
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude.exe: Device signature = 0x1e9406 avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: reading input file "0x26" avrdude.exe: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.00s avrdude.exe: 1 bytes of lfuse written avrdude.exe: verifying lfuse memory against 0x26: avrdude.exe: load data lfuse data from input file 0x26: avrdude.exe: input file 0x26 contains 1 bytes avrdude.exe: reading on-chip lfuse data: Reading | ################################################## | 100% 0.00s avrdude.exe: verifying ... avrdude.exe: 1 bytes of lfuse verified avrdude.exe: reading input file "c:usersrobinlaptopDocumentsAtmel Studio7.0OurFirstAVROurFirstAVRDebugOurFirstAVR.hex" avrdude.exe: writing flash (184 bytes): Writing | ################################################## | 100% 0.11s avrdude.exe: 184 bytes of flash written avrdude.exe: verifying flash memory against c:usersrobinlaptopDocumentsAtmel Studio7.0OurFirstAVROurFirstAVRDebugOurFirstAVR.hex: avrdude.exe: load data flash data from input file c:usersrobinlaptopDocumentsAtmel Studio7.0OurFirstAVROurFirstAVRDebugOurFirstAVR.hex: avrdude.exe: input file c:usersrobinlaptopDocumentsAtmel Studio7.0OurFirstAVROurFirstAVRDebugOurFirstAVR.hex contains 184 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 0.10s avrdude.exe: verifying ... avrdude.exe: 184 bytes of flash verified avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you.
Заключение
Начало работы с устройствами AVR может показаться несколько сложным, если вы не используете официальный программатор, который может работать «из коробки» с Atmel Studio 7. Однако в инструментах программирования требуется определить только одну командную строку (тип устройства, биты и т.п.). И все будущие проекты могут использовать один и тот же инструмент/компилятор, который нужно настроить только один раз.
Т.е. следующий проект ATMEGA168, который вы будете делать, сможет использовать тот же компилятор и внешний инструмент, что и в этом проекте и не потребуется никаких дополнительных настроек. Конечно, в более сложных проектах может потребоваться замена бит (англ. fuse), например, но в данном материале я хотел просто помочь вам освоить работу с устройствами AVR.
24 июля 2019 в 15:56
| Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано:
Статьи, AVR
Atmel Studio 7 — Создание нового проекта для ATmega16 на языке C (си)
Для начала запускаем Atmel Studio 7 (или 5, или 6, или 8, или старый и надёжный AVR Studio 4). Ярлык данной программы можно найти на рабочем столе или в меню Start > All Programs > Atmel Studio 7.
- В Atmel Studio, выбираем File > New > Project…
- В левой колонке Installed выбираем C/C++ и тип проекта GCC C Executable Project, а так же введём название проекта (Name: и Solution name:) и путь к папке (Location:) где будут расположены все необходимые файлы нашего нового проекта. Если все указали нажимаем на кнопке ОК.
- Выбираем микроконтроллер для которого мы будем писать нашу программу, в нашем случае ATmega16. Справа вверху данного окна есть строка сортировки и поиска нужного нам микроконтроллера по его названию. Далее нажимаем на кнопку ОК.
- На этом наш проект создан, перед нами появится листинг чистой программы с синтаксисом по умолчанию.
- Если нам нужно симулировать (отлаживать код), то необходимо настроить симулятор. Для этого выбираем Project > Hello World Properties…
- Выбираем Tool, и в Selected debugger/programmer выбираем Simulator.
- Сохраняем изменения File > Save Selected Item или Ctrl+S.
Спасибо за внимание.
Похожие записи
Существует несколько способов программирования микроконтроллеров семейства AVR. В данной статье мы рассмотрим один из наиболее популярных в настоящее время способов программирования данных микроконтроллеров – с помощью программатора USBASP v2.0 и программы Atmel Studio 7.0. Хотя на нашем сайте уже есть достаточно подробные статьи про программатор USBASP и программу Atmel Studio 7.0 я все таки решил перевести с иностранного сайта и эту статью – вдруг кто то найдет в ней для себя что то интересное.
В данной статье будут рассмотрены следующие вопросы:
- Установка драйвера USBASP.
- Скачивание и установка Atmel Studio.
- Установка WinAVR для Atmel Studio.
- Установка микроконтроллера Atmega16 с кварцевым генератором и одним светодиодом.
- Создание и загрузка программного кода в 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 в списке устройств.
5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.
6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.
7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».
8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.
9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.
Чтобы сделать выполните следующие шаги:
— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);
— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;
— отпустите кнопку Shift и кликните на “Startup Settings”;
— кликните на “Troubleshoot (Устранение проблем)”;
— выберите “Advanced Options (Расширенные настройки)”;
— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;
— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;
— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);
— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;
— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.
Выполните следующую последовательность действий:
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”.
6. Теперь назовите ваш проект, выберите место расположения проекта и выберите компилятор “GCC C Executable Project”. Кликните на “Ok” и продолжайте.
7. После этого вам будет необходимо выбрать ваше устройство для программирования. В нашем случае это будет микроконтроллер Atmega16A. Если вы будете программировать другие микроконтроллеры, например, Atmega8, Atmega32, то для их программирования также можно использовать программатор USBASP.
8. После этого для вас будет создан файл main.c, где вы можете писать ваш программный код.
Но после создания проекта финальный шаг, который вам необходимо выполнить – это установить внешние инструментальные средства (WinAVR).
Установка WinAVR в Atmel Studio
1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.
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 как показано на следующей схеме:
Компоновка и загрузка программного кода в Atmega16
1. Сохраните файл main.c.
2. Подсоедините светодиод к контакту PORTA0 микроконтроллера Atmega16 как было показано на вышеприведенном рисунке.
3. Выберите пункт меню “Build” и затем выберите “Build Blink”.
4. Если программа не содержит ошибок, то вы увидите сообщение как на представленном рисунке.
5. Теперь выберите пункт меню “Tools” и выберите в ней созданные внешние инструментальные средства. В нашем случае это будет “USBasp”. Кликните по нему.
6. Если после этого вы увидите сообщение об успешности операции (как показано на рисунке ниже), то значит вы успешно загрузили программу в микроконтроллер. Если вы получили сообщение об ошибке, то проверьте правильность выполнения всех предыдущих шагов, а также проверьте исправность соединительных проводов между USBASP и Atmega16.
7. Вы успешно загрузили тестовую программу с мигающим светодиодом в микроконтроллер используя USBASP v2.0 and Atmel Studio 7.0 и можете увидеть как мигает светодиод в собранной схеме. Теперь вы можете аналогичным образом загружать в микроконтроллер любые другие программы.
Код тестовой программы с мигающим светодиодом
/* Blink.c */ #define F_CPU 16000000UL /* Define CPU Frequency e.g. here its 16MHz */ #include <avr/io.h> #include<util/delay.h> int main(void) { DDRA=0x01; while (1) { PORTA=~PORTA; // Put value for PortA0 _delay_ms(500); } } |
Видео, демонстрирующее работу схемы
Загрузка…
20 032 просмотров
Наличие программного обеспечения от производителей микроконтроллеров, которое, как правило, является полностью бесплатным, всегда было важной составляющей в процессе проектирования цифровых систем. На рынке присутствуют специализированные решения от сторонних компаний, однако только программные пакеты от производителей позволяют выполнить предварительную оценку разработки заказанного изделия, выбрать микроконтроллер и ознакомиться с уже готовыми решениями и доступными для него драйверами. В 2015 году компанией Atmel выпущено принципиально новое онлайн программное обеспечение Atmel Start. С его помощью можно быстро и без установки на компьютер ознакомиться со всеми возможностями микроконтроллеров Atmel, что существенно облегчает процесс выбора требуемого «под задачу» кристалла и его корпуса. Информация о микроконтроллере, доступных драйверах и конфигурация встроенной в него периферии отображается на экране монитора в удобной форме. По сути, вы пользуетесь возможностями библиотеки ASF, имея полный доступ к сведениям о микроконтроллере в наглядной графической форме. Конкурирующим решением, предлагаемым компанией ST на рынке 32‑разрядных микроконтроллеров на архитектуре ARM, является программное обеспечение STMCube32MX, требующее частичной установки на компьютер.
Для того чтобы запустить Atmel Start, нужно открыть ссылку: www.start.atmel.com.
Внимание! Необходимо убедиться, что ваш браузер поддерживает работу с HTML 5 (например, последние версии браузеров Chrome, Firefox, Internet Explorer (версия 9 и выше), Edge, Opera, Safari). Если браузер не является совместимым, это приведет к невозможности скачать с сервера финальный конфигурационный файл программы.
Создание проекта
На стартовом экране программы Atmel Start (рис. 1) мы выбираем в левом столбце Custom board для вашей платы, затем в соседнем столбце — ваш микроконтроллер или оценочную плату Atmel.
Рис. 1. Стартовый экран программы
Программа позволяет создать новый проект Create new project, загрузить его из файла Load project from file или загрузить последний созданный вами проект, выполнив операцию с сервера Resume autosaved project.
Таким образом, можно быстро провести оценку разрабатываемой конфигурации, выбрать периферийные модули микроконтроллера, задать или изменить конфигурацию доступных для подключения выводов.
Внимание! Подключать к компьютеру выбранную плату не требуется, программа создаст только конфигурационный файл проекта.
На следующей странице программы (рис. 2) показаны выбранный вами микроконтроллер и доступные для работы периферийные модули.
Рис. 2. Создание нового проекта
Если возможности микроконтроллера в данном корпусе вас не устраивают, микроконтроллер можно заменить, нажав кнопку Change device (рис. 3).
Рис. 3. Изменение выбранного микроконтроллера
Далее определяем требуемые драйверы периферии и программные компоненты в разделе Add software component (рис. 4).
Рис. 4. Выбор компонентов
Выбранные компоненты будут добавлены в проект после нажатия кнопки Add component.
Конфигурация выбранных модулей
Вы можете задать/изменить имя своего проекта в разделе Application и провести конфигурацию выбранных модулей в разделах Middleware и Drivers (рис. 5).
Рис. 5. Конфигурация выбранных модулей
Внимание! При выборе выводов микроконтроллера можно переназначить поддерживаемые выводы. Зеленым цветом показаны доступные выводы текущей конфигурации, синим цветом — доступные выводы при ее переконфигурации. Серым цветом показаны недоступные для выбора выводы кристалла.
Базовая конфигурация выбранных модулей
Базовая конфигурация выбранных модулей представлена на рис. 6, 7.
Рис. 6. Базовая конфигурация
Рис. 7. Изменение конфигурации выводов
Более подробное конфигурирование выбранного модуля можно произвести, указав на этой же странице Advanced configuration (рис. 8).
Рис. 8. Расширенная конфигурация выбранных модулей
Конфигуратор выводов
Подробная информация о физическом расположении выводов микроконтроллера в выбранном корпусе представлена во вкладке Pinmux configurator (рис. 9).
Рис. 9. Конфигуратор выводов
Здесь можно задать назначение/режим вывода и его логический уровень.
Сохранение конфигурации
После проведения конфигурации ее нужно сохранить (рис. 10).
Рис. 10. Сохранение конфигурации
Внимание! Необходимо сохранить файл, полученный от сервера. Internet Explorer предложит сохранить файл в основном окне, возможно открытие дополнительного пустого окна. «Яндекс»-браузер последней версии 15.10.2454.3658 сразу сохранит файл на диск.
Отладка проекта
Для дальнейшей отладки программы требуется установка IDE — интегрированной среды Atmel Studio либо программного обеспечения от сторонних разработчиков.
Поддерживаемые среды:
- Atmel Studio 7 с установленным расширением Atmel Start;
- IAR Embedded Workbench;
- Keil μ
Для экспорта вашего проекта в IDE нужно выбрать Export Project и нажать Download Pack (рис. 11).
Рис. 11. Сохранение проекта
Работа над проектом
Для работы над проектом следует запустить сохраненный файл проекта (рис. 12). При этом произойдет запуск установленной по умолчанию интегрированной среды IDE.
Рис. 12. Окно загрузок «Яндекс»-браузера
Также можно запустить саму программу IDE и затем уже в ней выбрать сохраненный файл проекта. В нашем случае мы используем Atmel Studio 7 (рис. 13).
Рис. 13. Открытие проекта Atmel Start
Внимание! Обязательным условием работы в Atmel Studio 7 является предварительная установка расширения Atmel Start, которая делается непосредственно через Atmel Studio — Tools — Extensions and Updates.
Программа автоматически создаст необходимые для работы файлы (рис. 14).
Рис. 14. Главное окно Atmel Studio 7
Выбор интерфейса отладки
Для отладки программы в Atmel Studio 7 необходимо подключить к компьютеру вашу плату и выбрать интерфейс ее отладки (рис. 15).
Рис. 15. Вкладка выбора интерфейса платы
Внимание! По умолчанию либо по физическому подключению к компьютеру плата автоматически не выбирается.
Это можно сделать через Tool вкладки Tools (рис. 16).
Рис. 16. Выбор интерфейса подключенной платы
После этого вы можете приступать к созданию и отладке основной программы в файле main.c, используя сформированный код из программы atmel_start.c.
Внимание! Если в Atmel Studio 7 не работает помощник по вводу команд (рис. 17), нужно установить последнюю версию драйвера видеокарты вашего компьютера.
Рис. 17. Помощник ввода команд программы Atmel Studio
Для разработчиков изделий, базирующихся на микроконтроллерах Atmel, ранее не существовало подобного программного инструмента для работы. Atmel Start, используя широкие возможности выбора в простой графической форме, позволяет быстро ознакомиться с параметрами микроконтроллеров и произвести конфигурацию встроенных в них периферийных модулей. Таким образом, применение программного обеспечения Atmel Start значительно ускоряет подбор необходимого микроконтроллера Atmel и процесс его начального конфигурирования и последующего программирования. Для ознакомления с возможностями микроконтроллеров Atmel не требуется устанавливать на компьютер дополнительное программное обеспечение. Выполнить конфигурацию периферийных модулей, назначить нужные выводы корпуса — иными словами, задать полную конфигурацию оборудования теперь можно в онлайн-режиме. Готовый файл проекта, имеющийся на компьютере, или версию данного проекта, зарезервированную на сервере, можно изменить, сохранить и перейти к дальнейшей отладке в выбранной интегрированной среде.
В следующей статье мы рассмотрим принципы работы с основным программным обеспечением Atmel — интегрированной средой разработки IDE — Atmel Studio 7.
Внимание! На данный момент Atmel Start поддерживает микроконтроллеры серий SAMD10/11/20/21, SAMC20/21, SAML21/22 и оценочные платы для них.
Добавлено 17 января 2018 в 07:53
В данной статье мы соберем схемы для программирования двух разных микроконтроллеров Atmel и обсудим необходимые настройки программного обеспечения.
В данной статье будет описано построение двух очень похожих схем: одна для программирования ATmega328P, другая для программирования ATtiny45. В статье приведены полные схемы программирования, а также подробные фотографии макетов на беспаечных макетных платах. Кроме того, также приведено введение в интегрированную среду разработки Atmel Studio 7.
Во-первых, аппаратное обеспечение
ATmega328P – это 28-контактный микроконтроллер от Atmel, один из линейки AVR. Вероятно, он наиболее известен, как наиболее часто используемый микроконтроллер в отладочных платах Arduino, но AT328P способен на гораздо большее, чем то, насколько он используется в Arduino. Если вы хотите увидеть некоторые доказательства этого утверждения, посмотрите на 660-страничное техническое описание.
ATtiny45 – 8-выводный микроконтроллер, который может считаться «младшим братом» ATmega328P. Он обладает многими из тех же функций, но у него не так много контактов ввода/вывода.
Для программирования ATmega328P и ATtiny45 используется последовательный периферийный интерфейс SPI; это трехпроводная (плюс общий провод) шина, состоящая из сигналов «Выход ведущего, вход ведомого» (Master Out, Slave In – MOSI), «Вход ведущего, выход ведомого» (Master In, Slave Out – MISO) и «Тактовый сигнал» (Serial Clock – SCK). Тактовый сигнал генерируется ведущим устройством (мастером) и используется для обеспечения синхронной связи между ведущим и ведомым (или ведомыми); поэтому SPI является «синхронной» шиной связи.
Схемы программирования
Схемы программирования показаны ниже. Обратите внимание, что резистор R2 и LED1 не требуются для программирования, но включены в схемы для тестирования, что будет описано ниже.
Выбор программатора
Доступно несколько программаторов, работающих с ATmega328P и ATtiny45; Atmel-ICE находится в верхней части списка, является прекрасным программатором и будет рассмотрен в следующей статье. Пока что у нас есть менее дорогостоящие варианты, и скупым автором статьи использовался программатор Sparkfun AVR Pocket Programmer. Если вы предпочитаете что-то другое, не стесняйтесь выбирать тот, который соответствует вашим предпочтениям и вашему кошельку. Просто убедитесь, что он использует SPI интерфейс, как описано выше, и будьте готовы внести соответствующие изменения в информацию в этой статье.
ВНИМАНИЕ! Обязательно загрузите и установите на компьютер соответствующий драйвер для AVR Pocket Programmer, прежде чем подключать программатор в первый раз. Если Windows будет разрешено установить неправильный драйвер, то это будет сложно исправить. Инструкции для получения драйвера AVR Pocket Programmer приведены ниже.
AVR Pocket Programmer поставляется с шлейфовым кабелем, который должен быть подключен к микроконтроллеру Atmel. Он оснащен тремя разъемами: разъем 2×5 (мама), который вставляется в штырьковый разъем на AVR Pocket Programmer, еще один разъем 2×5 (мама) ниже на кабеле примерно через 23 см (в данной статье не используется), плюс разъем 2×3 (мама) на другом конце кабеля. Распиновка разъемов показана ниже.
Сборки схем программирования на макетных платах
На следующих фотографиях показаны сборки схем программирования ATmega328P и ATtiny45 на беспаечных макетных платах. Шесть коротких перемычек используются для подключения необходимых проводов от разъема 2×3 (мама) к соответствующим контактам микроконтроллера на макете. Обратите внимание, что цвета проводов на фотографиях соответствуют обозначениям на схемах.
Список комплектующих
Кроме нескольких перемычек, для сборки схемы программирования понадобятся следующие комплектующие.
Обозначение элемента | Описание |
---|---|
U1 | Микросхема, ATmega328P-PU, флеш 32 КБ, DIP-28, 1,8–5,5 В |
U1 | Микросхема, ATtiny45-PU, флеш 4 КБ, DIP-8, 2,7–5,5 В |
R1 | Резистор, 10 кОм, 0,25 Вт |
R2 | Резистор, 470 Ом, 0,25 Вт |
LED1 | Светодиод, T1 3/4, желтый |
C1 | Конденсатор керамический, 0,1 мкФ, 50 В |
нет | Программатор, AVR Pocket, PGM-09825 |
нет | Макетная плата, беспаечная, 400 контактов |
А теперь программное обеспечение
Драйвер программатора AVR Pocket
Драйвер Windows для программатора AVR Pocket – тот же, что используется программатором Adafruit USBTiny. Перейдите на страницу Adafruit и нажмите на ссылку для подписанного драйвера USBtinyISP, созданного с помощью libusb v1.12. Это позволит вам загрузить zip-файл, содержащий два файла installer.exe: один для 32-разрядных систем, второй для 64-разрядных. Дважды кликните по тому, что подходит для вашего компьютера с ОС Windows, и драйвер будет установлен.
Только после установки правильного драйвера Windows вы можете в первый раз подключить программатор AVR Pocket к компьютеру. Вам понадобится кабель USB-A на miniUSB-B. Когда вы подключитесь, загорится синий светодиод PWR и красный светодиод Stat1; два синих светодиода могут также загореться и/или замигать. Windows попытается найти драйвер, при необходимости, вы должны указать Windows расположение правильного драйвера. После правильной установки программатор AVR Pocket появится в диспетчере устройств в устройствах libusb-winXX как «USBtiny»; он не будет перечисляться как COM-порт. Смотрите скриншот ниже:
Atmel Studio 7
Как и многие фирмы-разработчики микроконтроллеров, Atmel имеет собственную интегрированную среду разработки (IDE), которая работает с их аппаратными предложениями: Atmel Studio 7. Хотя это не единственный способ программирования микроконтроллеров Atmel, но это наиболее полнофункциональный способ для Windows 7, 8 и 10 (и для 32-х, и для 64-х разрядных вервий); к сожалению, она не может использоваться с операционными системами Linux и Mac.
Количество опций в Atmel Studio 7 может показаться для нового пользователя огромным. Таким образом, поэтапный подход, представленный в данной статье, значительно упростит процесс знакомства. Начните с загрузки и установки IDE на ваш компьютер. Руководство пользователя Studio 7 и большое количество дополнительной информации также доступны для загрузки.
В Studio 7 включена поддержка нескольких аппаратных программаторов, но точный выбор зависит от того, какой микроконтроллер Atmel вы собираетесь использовать. На скриншоте ниже справа перечислены программаторы, поддерживающие ATmega328P.
Как вы можете видеть, программатор AVR Pocket отсутствует в списке. Однако его всё еще можно использовать с Studio 7 с помощью программного обеспечения под названием AVRDude.
AVRDude
AVRDude – это утилита командной строки, которая используется для скачивания и загрузки данных с микроконтроллеров Atmel. Существуют версии, доступные и на Linux, и на Windows. На момент написания статьи последняя доступная версия – 6.3; ее можно скачать здесь. Пользователи Windows должны скачать avrdude-6.3-mingw32-zip (нажатие на ссылку запустит скачивание zip-файла!), распаковать файлы и установить AVRDude. Обратите внимание, что установка программы в корневой каталог диска необязательна, но упростит ее использование с Atmel Studio 7. Если доступна версия, более новая, чем 6.3, то вы можете установить ее по своему усмотрению. Руководство пользователя AVRDude доступно здесь.
Чтобы проверить правильность установки и работы AVRDude, выполните следующие действия:
- нажмите кнопку «Пуск» Windows;
- в поле поиска введите cmd и нажмите Enter. Откроется окно командной строки DOS;
- в командной строке перейдите в каталог, в котором установили AVRDude;
- введите
avrdude -c USBtiny
и нажмите Enter. Если всё хорошо, AVRDude вернет список поддерживаемых устройств Atmel.
Смотрите скриншот ниже для примера процедуры. Обратите внимание, что скриншот был усечен и отображает только часть списка поддерживаемых устройств Atmel.
Собираем всё вместе
Предположим, что программатор подключен к AVR на вашей макетной плате, как было описано выше, и вы почти готовы запрограммировать ваш AVR микроконтроллер. Для примера воспользуемся простым примером мигания светодиодом.
//New Blink.c
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= 0b00000001;
while (1) {
PORTB = 0b00000001;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(500);
}
return 0;
}
Теперь следуйте следующим инструкциям:
- Запустите Atmel Studio 7.
- В стартовом окне слева нажмите New Project. Откроется окно нового проекта.
Стартовое окно Atmel Studio 7 - В окне нового проекта нажмите GCC C Executable Project, назовите проект New Blink, как показано выше, и нажмите OK. Откроется окно выбора устройства Device Selection.
Окно выбора устройства Device Selection - В окне выбора устройства выберите AVR устройство, которое вы используете: ATmega328P или ATtiny45, как показано ниже. Нажмите OK. Будет создан новый проект, и будет открыто окно проекта New Blink.
Окно проекта New Blink - Нажмите на меню Tools, выберите External Tools…, и нажмите кнопку Add.
- В поле Title введите название инструмента, которой создаете; хорошо, если название описывает устройство. Например, вы можете ввести комбинацию названия программатора и названия устройства.
- В поле Comand введите путь к месту, куда установили AVRDude, плюс команду для запуска AVRDude.
- В поле Arguments введите одну из двух следующих строк, в зависимости от AVR контроллера, который используете.
Для ATmega328P введите:-c usbtiny -p m328p -v -U flash:w:$(TargetDir)$(TargetName).hex:i
Для ATtiny45 введите:
-c usbtiny -p t45 -v -U flash:w:$(TargetDir)$(TargetName).hex:i
- В поле Initial directory введите путь к месту, куда установили AVRDude.
- Убедитесь, что поставлена галочка Use Output window, а в двух других чекбоксах галочки не стоят. Состояние окна должно быть похоже на скриншот ниже, но с учетом AVR контроллера, который вы используете.
Окно добавления внешнего инструмента - Нажмите Apply, а затем OK. Окно внешних инструментов должно закрыться.
- Скопируйте код программы, приведенный выше.
- Перейдите к окну New Blink.c в окне Atmel Studio 7 и вставьте в него код, приведенный выше.
Код программы - Если в правом верхнем углу Atmel Studio 7 не открыто окно менеджера проекта Solution Explorer, нажмите на выпадающее меню View и нажмите Solution Explorer. В правом верхнем углу должно появиться окно Solution Explorer.
- Кликните правой кнопкой на main.c и выберите «переименовать». Переименуйте файл main.c в New Blink.c.
- Нажмите на меню File и нажмите Save All.
- Нажмите на меню Build и нажмите Build Solution (собрать проект).
- Нажмите на меню Tools (инструменты) и нажмите на название инструмента, созданного в шагах с 5 по 11. Скомпилированный код New Blink должен будет быть загруже в AVR контроллер на вашей макетной плате, а светодиод LED1 должен начать мигать: ½ секунды включен, ½ секунды выключен, 60 раз в минуту.
Начало
По общему мнению, это был долгий процесс для простого мигания светодиода, но на самом деле вы успешно устранили четыре основных препятствия: создание аппаратной платформы для программирования микроконтроллеров AVR, установка интегрированной среды разработки Atmel Studio 7, интеграция внешней программы AVRDude и определение инструмента программирования для AVR микроконтроллера по вашему выбору. Будьте уверены, что в будущих проектах на AVR микроконтроллерах вам станет легче, что намного веселее.
Теги
ATmegaATmega328PAtmel StudioATtinyAVRAVRDUDEMCUМакетная платаМикроконтроллерПрограммирование