среда разработки для программирования и отладки
IDE – это интегрированная среда разработки, в состав которой включены разные шаблоны, библиотеки и функции отладчика. Если говорить о микроконтроллерах фирмы ATMEL, с 2004 для них разрабатывался мощный программный пакет AVR studio.
Первые версии
В первых версиях студии присутствовал ассемблер для AVR, вы можете его извлечь из первых сборок, однако позже этот проект был заброшен, а в качестве основного языка избран C AVR. Компилятором был платный и очень серьезный продукт IAR. Вы можете скачать бесплатный WINAVR, для этого после установки студии нужно проинсталлировать его.
Обратите внимание! Лучше это делать только после установки AVR studio 4 и других версий.
Долгое время фигурировала AVR studio 4 (на фото выше). Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6.
Среда AVR studio 5 поддерживала следующие микроконтроллеры:
Atmel studio 6 отличалась от AVR studio 5 значительно, самые заметные нововведения версии:
- Microsoft Visual Studio 2010 стал работать с семейством AVR.
- Улучшенная, по сравнению с AVR studio 5, подсветка синтаксиса.
- Добавлены подсказки и автозавершение набора команд, что ускоряет процесс разработки.
- В целом, вся работа среды стала надежнее.
- Добавлена поддержка ARM Cortex-M.
- WinAVR не нужно больше устанавливать отдельно, GCC теперь устанавливается в процессе инсталляции, в отличие от младших версий.
В Atmel studio 6 произошел скачек в лучшую сторону для пользователя программы, что сказалось на популярности семейств Атмела. Однако адекватной поддержки русских символов в путях к файлам добиться так и не удалось.
Актуальная версия – Atmel studio 7
Среду разработки кардинально использовал Visual Studio Isolated Shell 2015; с одной стороны, это решение не поддерживается на Windows XP, с другой – эти меры были предприняты для улучшения как внешнего вида программы, так и функционального.
Пожалуй, самым знаменательным стало добавление поддержки Arduino в Atmel studio 7. Это значит, что вы можете перейти от набора простейших скетчей к использованию всех функций C, отладки, симулятора МК и прочим функциям. Совмещение Arduino и Atmel studio 7 дало новый виток в развитии этой простой обучающей платформы.
Изучение Atmel studio с Arduino даст возможность перейти к полному и продуктивному освоению и более глубокому знакомству с сердцем ардуины – микроконтроллером Atmega.
Дополнительно с сайта Atmel можно скачать пакет для работы и подключения LCD. В качестве примера для освоения можно использовать LCD 1602, в интернете по нему много уроков, а разработчику на дисплее доступно 16 символов и 2 строки.
С чего начать освоение?
Начинать стоит, конечно же, с покупки программатора; самый бюджетный – это – USBASP. Программатор USBASP не поддерживается в Atmel Studio 7.
Как выглядит USBASPСкачивайте драйвера на программатор и программу AVRdude, а чтобы заставить это все работать вместе, можно через командную строку воспользоваться командой:
«avrdude -c usbasp -p atmega32 -U flash:w:название файла с прошивкой.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m»
и подключить его поддержку, создав профиль в atmel studio 7 (title – external tools), а в пункт Arguments ввести «-c usbasp -p atmega32 -U flash:w:$(TargetName).hex» и так для каждого типа используемых вами микроконтроллеров.
Только таким образом можно связать студио и программатор USBASP. Будьте внимательны при перепрошивке – вы можете повредить сигнатуру микроконтроллера, а восстановить её можно будет только 12 В (высоковольтным) программатором.
Какую литературу использовать для обучения?
В первую очередь скачивайте руководства с официального сайта к каждому из микроконтроллеров. Посоветовать конкретный учебник сложно, однако есть «DI Halt – AVR. Учебный курс» им можно пользоваться – создатель этого материала практик, автор многих статей на различных интернет ресурсах и просто уважаемый в кругах специалистов человек.
Расширения Atmel Studio 6 / AVR / Сообщество EasyElectronics.ru
Сегодня речь пойдет о некоторых расширениях (extensions) бесплатной IDE от Atmel. Как можно понять из названия, extension — это плагин, расширяющий возможности редактирования или отладки кода. Устанавливать их можно как из самой Atmel Studio (далее по тексту — AS), так и вручную скачивая файлы расширений со своеобразного «app-store» — Atmel Gallery. И в том, и другом случае потребуется регистрация на сайте.
Итак, аккаунт создан, AS запущена. Идем в меню Tools -> Extension Manager…(естественно, требуется интернет-соединение).
Появляется обозреватель расширений:
Все доступные расширения бесплатны для загрузки, но не все полнофункциональны — некоторые распространяются на коммерческой основе, и для ознакомления предоставляются их урезанные версии. Уже установленные дополнения отмечены зеленой галочкой. Отключить или удалить их можно в меню Installed Extensions.
Попробуем установить новое расширение, например, библиотеку LUFA:
Нажимаем Download, и логинимся в Галерею:
Несмотря на джве установленные галочки «Remember me», вводить пароль приходится каждый раз, как при заходе из AS, так и из самостоятельного браузера. (периодически, AS версии 6.2 beta наглухо висла после входа в Галерею. С чем это связано, выяснить не удалось. Все описанное выполняется из AS 6.1.2730 SP2).
Начинается закачка расширения:
После принятия лицензионного соглашения, и установки расширения:
Студию необходимо перезапустить, о чем она недвусмысленно намекает нам в строке статуса:
И вот, после рестарта среды, получаем:
Нам стали доступны более 100 проектов-примеров использования библиотеки LUFA с контроллерами AVR.
Cнова запускаем менеджер расширений, переходим в Installed Extensions, и видим, что LUFA успешно установлена, и в дальнейшем может быть отключена, или совсем удалена из набора плагинов:
Рассмотрим еще несколько дополнений.
CodeVisionAVR: после нажатия кнопки «Download» скачивается инсталлятор Evaluation-версии, который ничем не отличается от версии, выложенной на официальном сайте, так что желающие могут скачать его оттуда. Расширение для AS ставится автоматически (имеются версии для AS 6.1 и 6.2). И вот тут нас ждет ложка дегтя: если AS установлена не в папку по умолчанию — расширение не подхватится. Если же все прошло успешно, то в меню AS
Работа с мастером кода ничем не отличается от работы в самом CVAVR,
вплоть до ограничений пробной версии:
равно как и собираться проект будет средствами CVAVR, а не GCC Toolchain, как я понадеялся вначале:
Хотя, возможно, есть способ заставить AS компилировать проект при помощи GCC, я пока не вникал в тонкости.
По сути — получили CodeVision в шкуре AS. Радует, что отладка средствами AVR Simulator работает.
Кстати, автодополнение и подсветка кода начинает работать не сразу… Тоже пока не разобрался, с чем связано.
Следующий аддон: Arduino IDE for Atmel Studio.
Из «app-store» скачиваем расширение в виде файла *.msi, устанавливаем, перезапускаем AS.
При следующем запуске AS появится конфигуратор, которому нужно будет указать путь к установленной Arduino.
Если же этой среды у вас нет, можно скачать ее, нажав кнопку «Download/Install IDE».
Вот тут уже без нареканий работает автодополнение кода и подсказки по функциям:
Поддерживается более 30 видов плат Arduino:
На панели инструментов добавляется кнопка Upload to Arduino:
Т.к. ардуинок у меня чуть менее, чем ни одной, то описание работы с этим расширением на этом и закончу.
X-Features: небольшое расширение, привносящее некоторые удобства (хотя, кому как — дело привычки) в редактирование кода:
Добавляет такие возможности как подсветка текста, идентичного выделенному (включая закомментированный), скроллинг страницы средней кнопкой мыши, курсивные комментарии, выделение строки тройным кликом:
И последний на сегодня, Terminal:
Просто терминал. По сравнению с Terminal by Br@y++ — унылое г**но, зато встроенный в AS. Полезность сомнительна.
На этом пока все. По мере изучения доступных расширений постараюсь дополнять заметку.
Замеченные ляпы, несуразности, и прочие баги отписывайте в комментариях.
Использование программатора USBASP в Atmel Studio
Программатор USBASP является на сегодняшний день самым дешевым программатором микроконтроллеров AVR компании ATMEL и позволяет программировать большое множество микроконтроллеров серий AVR ATTiny, AVR ATMega и других. В данной статье я расскажу вам об основных особенностях использования этого программатора из под ОС Windows 7 и как настроить его работу совместно со средой разработки программ Atmel Studio на примере версии 6.1. К сожалению, по умолчанию, Atmel Studio не поддерживает этот программатор.
Установка драйвера программатора
В первую очередь необходимо установить драйвер для программатора. Мы не будем подробно описывать процедуру установки драйвера, так как тут не должно возникнуть каких либо трудностей. После установки драйвера подключенный программатор отображается в диспетчере устройств Windows как устройство USBasp.
Драйвер можно скачать по ссылке с нашего Google диска.
Установка Avrdude
Для программирования микроконтроллеров AVR будем использовать программу Avrdude. Эта программа поддерживает большое количество программаторов, в том числе и USBASP. Этой программе посвящена отдельная страница в википедии.
Скачать Avrdude по ссылке с нашего Google диска
Программа 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.
Програмирование в AVR Studio 5 с самого начала. Часть 1
Каждый человек, который только начинает осваивать программирование микроконтроллеров, да и вообще программирование, упирается сразу в несколько вопросов:1. Какой микроконтроллер выбрать для максимально быстрого освоения?
2. Какой основной инструмент (программу) использовать для начала работы?
3. Какие аппаратные средства доступны для начала программирования?
4. Какую литературу использовать?
5. Где общаться и получать вразумительные советы?
Когда я начинал, то сам столкнулся с этими вопросами. Начал искать литературу и решил, что надо начинать с PIC-ов. Перевес в сторону PIC-ов определился из за небольшого количества команд микропроцессоров среднего семейства — всего 35 против 136 у AVR, и наличием IDE — интегрированной среды разработки MPLAB. К сожалению, до последнего времени для микроконтроллеров AVR не было удобной интегрированной среды разработки, многие пользовались AVR Studio 4, кто то писал на C в IAR, для отладки пользовались дополнительными программами, все зависило от личных приоритетов.
В этом году компания ATMEL наконец то «родила» IDE — AVR Studio 5 для программирования микроконтроллеров AVR. Много критических замечаний было сказано в адрес этой программы, но она существует и работает, возможно, компания со временем учтет все критические замечания, и сделает программу более гибкой, совершенной и не такой большой по размеру. Конечно по объему это монстр — инсталлируемый файл занимает 600 с лишним МБайт. Но, есть в ней и определенные удобства в работе, и не только для начинающих! Программа ориентирована для работы в среде C, но ассемблер поддерживается полностью.
Содержание / Contents
1. Выбор микроконтроллера определяется теми задачами, которые вы перед собой поставили. Микроконтроллеры AVR имеют «избыточный» набор команд, и поэтому большинство программистов используют в среднем около 40 инструкций, редко прибегая к остальным. С другой стороны, когда требуется нетипичное решение, дополнительные команды могут оказаться весьма кстати, позволяя значительно сократить объем программы.Технология производства микроконтроллеров сегодня одинакова как для PIC так и для AVR — RISC (Reduced Instruction Set Computer) — микроконтроллеры с сокращенным набором команд. Большинство из них имеют флеш-память, которая позволяет многократно их перезаписывать. Кроме этого микроконтроллеры AVR работают в 4 раза быстрее микроконтроллеров PIC.
2. Для начала, чтобы начать писать программы, нужно скачать интегрированную среду разработки AVR Studio 5
(Прямая ссылка на as5installer-5.0.1163-full.exe (602Mb), будет работать, пока не смениться билд.)
А чтобы наглядно видеть результат своей работы, не используя паяльник или макетную плату достаточно установить программу Proteus v7.7
3. AVR Studio 5 поддерживает программатор STK-500, инструкции по сборке которого, можно легко найти в просторах всемирной паутины.
4. Рекомендую книгу: Джон Мортон. «Микроконтроллеры AVR. Вводный курс».
5. Советы вы можете получать на любом форуме, где так или иначе затронуты темы по микроконтроллерам. Главное на форумах правильно формулировать вопросы, чтобы четко получать ответы. Абстрактные вопросы не приветствуются, и скорее всего вместо ответа вы получите жесткую критику, или ваш вопрос останется без внимания!
Скачать AVR Studio 5 можно, например, с официального сайта после бесплатной регистрации. Proteus вместе с патчем можно найти в Сети.
Примечание: AVR Studio «не любит» русских названий, поэтому проекты должны быть с английской транскрипцией. Старайтесь размещать проекты по кратчайшему пути к основному диску, избегать ветвлений в путях доступа к файлам проекта.
Запускаем программу, после некоторого «молчания» появляется окно:
В левом верхнем углу кликаем New Project…
Выбираем наверху AVR Assembler
В строке Name: пишем имя проекта (я написал Pracsis, вы можете Praxis или что то наподобие…)
В строке Location: путь и место хранения файлов проекта (в том числе файлы .asm и .hex)
Имя проекта введенное в строке Solution name: будет выводится в меню при старте (я эту строку не трогаю, чтобы не путаться)
кликаем OK
Появляется окно выбора микроконтроллера (Device Selection)
Выбираем контроллер (я выбрал ATtiny2313A)
кликаем ОК
Появляется станица редактора
Все наши файлы можно посмотреть в Моих документах (по умолчанию, если при создании проекта путь к файлам был изменен, то ищем их там, где вы их указали в строке Location:)
В папке Debug находится скомпилированный .hex файл, который нам будет нужен для прошивки микроконтроллера.
Теперь мы готовы, чтобы начать писать программу. Но для того, чтобы правильно писать, нужно соблюдать определенные правила.
В следующей статье рассмотрим, как это сделать…
Камрад, смотри полезняхи!
Радик (galrad)
РФ. Республика Башкортостан. г.Уфа
1964г.р. Врач. Ученая степень — кандидат медицинских наук. Второе высшее образование — инженер-электроник.