Разработка программ в ide avr studio

Разработка программ в IDE AVR Studio

В поддержку своей архитектуры в 1997 г. Atmel выпустила AVR Studio — программный продукт для разработки приложений на основе AVR-микроконтроллеров. AVR Studio представляет собой интегрированную среду разработки IDE (Integrate Development Environment), объединяя в себе большое количество различных инструментов для написания и отладки программ. Продвигая на рынке новую продукцию, Atmel с самого начала попыталась сделать ее максимально открытой для потребителя. AVR Studio не является исключением. Последняя версия IDE, равно как и любая информация по AVR-микроконтроллерам, всегда свободно доступна на сайтах производителя.

Минимальный набор разработчика в IDE представлен фирменным ассемблером и симулятором. Однако AVR Studio легко интегрируется со многими программными средствами сторонних производителей. И на сегодняшний день, в частности, в нее включена поддержка постоянно развивающегося компилятора языка Си WinAVR основанного на принципах GNU. Это очень мощный и к тому же бесплатный инструмент, что очень редко встречается у микроконтроллеров уровня AVR.

Принцип работы ассемблера

Ассемблер относится к языкам программирования низкого уровня. Его основой является множество команд, уникальное для каждого микропроцессора. Поэтому ассемблер является также и аппаратно-зависимым. Он может использоваться только совместно с архитектурой определенного типа. Каждое семейство микропроцессоров имеет свой собственный вариант этого языка.

Каждая инструкция ассемблера представляет собой символическое изображение соответствующей машинной команды со своим кодом операции (КОП). Команды ассемблера имеют удобочитаемый вид и названия, ассоциирующиеся с их действием. Так команда пересылки между двумя РОНами mov Rd,Rr является прототипом 16-разрядного кода операции 0010 11rd dddd rrrr. Битовые поля ddddd и rrrrr в нем определяют адреса регистров приемника и источника соответственно. Например, для пересылки регистра R5 в R22 необходимо записать на ассемблере mov R22,R5 или 0010 1101 0110 0101 на машинном языке. Разница в восприятии очевидна.

Каждую команду ассемблера можно логически разделить на две части: мнемонику и операнды.
Мнемоника Операнд 1 Операнд 2
mov Rd, Rr

Мнемоника является обязательной частью команды и определяет ее функциональное назначение. Операнды представляют собой параметры команды. В качестве операндов могут выступать числовые значения, адреса и смещения относительно адресов. Команды AVR, в зависимости от назначения, могут иметь до двух параметров.

Главная задача ассемблера – преобразование исходного текста пользовательской программы в машинный код, пригодный для записи в память программ микроконтроллера. Сам процесс преобразования называют компиляцией, а программу ассемблер – компилятором.

Конечным результатом работы компилятора является файл с исполняемым кодом. Если программа использует инициализированные данные, размещенные в энергонезависимой памяти, то в дополнении к этому, будет сгенерирован также файл для EEPROM. Информация, размещенная в этих файлах, используется программатором при программировании FLASH-память программ и/или EEPROM-память данных.

Существует большое количество различных форматов выходных файлов, но самый распространенный из них 16-тиричный Intel Hex Format. Файлы такого типа, как правило, имеют два различных расширения: .hex у файлов содержащих коды программ, и .epp у файлов, содержащих данные для записи EEPROM-памяти.

В соответствии со своей технологией работы, компилятор создает также объектный файл с расширением .obj. В нем размещена служебная информация для внутреннего пользования (относительные и абсолютные адреса операндов, место расположения объектов в пределах сегмента и т.д.). Объектный файл может быть необходим для различных отладочных средств. Программисту же никогда не приходится вмешиваться в его содержимое.

После сборки проекта могут быть сгенерированы также файлы, имеющие расширение .lst (файл листинга), .map и некоторые другие. В первом из них находится полный отчет о проделанной компилятором работе. Во втором приводится перечень всех символьных имен, встретившихся в программе, и их числовых значений.

Перейти к следующей части: Синтаксис ассемблера

AVR Урок 2. Создание проекта в Atmel Studio

Урок 2

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

Сегодня мы научимся создавать проекты в среде программирования Atmel Studio. Делается это не очень сложно.

Запускаем Atmel Studio.

Если Вы запускаете Atmel Studio в первый раз, у Вас скорее всего появится сначала стартовое окошко, которое можно свободно отключить, сняв галочку создадим новый проект с помощью команды меню File -> New -> Project

У нас откроется диалог, в котором будет 5 вариантов проектов на C/C++, один вид проекта на ассемблере, а также есть вариант создание пустого решения, в которое уже потом добавлять проекты. Мы будем писать именно на языке C. С помощью кнопки «browse» в данном диалоге мы выбираем папку, в которой будем создавать свои проекты, выберем вариант проекта «GCC C Executable Project», дадим проекту имя, например «Test01». Галочка слева от надписи «Create directory for solution» означает, что будет создаваться папка для проекта, то есть данную папку заранее создавать не нужно. Нажмем «OK»

В следующем диалоге выберем наш контроллер Atmega8A, впечатав это в соответствующем окошке. Мы видим здесь справа также несколько интересных вещей, в том числе Datasheet на наш контроллер (ссылка на техническую документацию), который мы отсюда спокойно можем скачать.

Здесь мы также нажимаем «OK»

Проект создан. Мы должны увидеть окно с проектом приблизительно следующего вида

Теперь немного настроим наш проект.

Зайдём в его свойства с помощью меню Project -> Test01 Properties

Затем в открывшемся диалоге перейдём во вкладку Tool и выберем там в качестве отладчика Simulator, а если у кого поддерживатеся программатор в качестве отладчика, то свой программатор. Мой программатор не может выступать в качестве отладчика, так как нет драйвера для Atmel Studio. В свойствах проекта есть огромный ряд настроек (настройки оптимизации, включение операций с плавающей точкой и т.д.), которые мы рассмотрим в более поздних занятиях. А пока нажмём кнопку «сохранить всё» в панели управления в виде нескольких дискет (на картинку можно нажать для увеличения)

После сохранения закроем вкладку с настройками и немного поиграемся с текстом главного файла Test01.c. Прежде чем удалить оттуда ненужный комментарий сверху, мы заодно и поучимся, но а если кто знает, тот повторит, как пишутся комментарии в языке C. Чтобы написать многострочный комментарий, необязательно обозначать значком комментария каждую строчку. Достаточно вначале поставить обычный слеш (черточку, наклоненную вправо) и звездочку, а в конце блока с текстом комментария – наоборот – сначала звездочку, а затем обычный слеш и блок наш в данной среде программирования сразу отметится зелёным цветом, то есть станет комментарием и компилятор при сборке проекта обрабатывать данный текст не будет. Данный вид обозначения комментария ещё может пригодиться для обзначения комментарием не всей сторки, а её части, если мы хотим отметить комментарием часть строки не до её конца. Комментарии удобны в практике программирования тем, что мы указываем, что именно мы хотим добиться кодом, который обозначен комментарием, что, во-первых, не даёт нам забыть, что мы именно хотели сделать кодом, а также служит объяснением тому, кто будет наш код затем читать и изучать. Вот как раз пример комментария в нашем файле проекта

В принципе, данный комментарий мы можем либо удалить, как это сделаю я, либо исправить, введя вместо user, скажем, своё имя или ещё что-то, для того, чтобы обозначить автора.

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

Читайте также  Библиотека матричной клавиатуры для stm32f4 discovery

Данный комментарий можно будет также удалить.

Теперь давайте попробуем откомпилировать наш проект (или как ещё говорят в народе «соберём его», так как проект данным действием не только компилируется, но ещё и линкуется). Делается это следующим образом. Либо нажимаем соответствующую кнопку в панели инструментов, либо нажимаем функциональную клавишу «F7». После этого действия, если сборщик проекта не встретит никаких ошибок, то мы получим в нижней части нашей среды программирования определённое сообщение

Также в папке «Test01Debug» нашего проекта у нас будет сгенерирован исполняемый файл, или как в народе говорят – прошивка – файл «Test01.hex». Данный файл мы и будем «заливать» в наш контроллер впоследствии. Для этого нам конечно надо будет научиться писать какой-то полезный код. Этим мы займёмся уже на следующем занятии.

Среда разработки AVR studio для микроконтроллеров AVR и Arduino

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 поддерживала следующие микроконтроллеры:

  • AVR;
  • AVR32;
  • XMEGA.

Atmel studio 6 отличалась от AVR studio 5 значительно, самые заметные нововведения версии:

  1. Microsoft Visual Studio 2010 стал работать с семейством AVR.
  2. Улучшенная, по сравнению с AVR studio 5, подсветка синтаксиса.
  3. Добавлены подсказки и автозавершение набора команд, что ускоряет процесс разработки.
  4. В целом, вся работа среды стала надежнее.
  5. Добавлена поддержка ARM Cortex-M.
  6. 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. Учебный курс» им можно пользоваться – создатель этого материала практик, автор многих статей на различных интернет ресурсах и просто уважаемый в кругах специалистов человек.

Програмирование в AVR Studio 5 с самого начала. Часть 1

Каждый человек, который только начинает осваивать программирование микроконтроллеров, да и вообще программирование, упирается сразу в несколько вопросов:
1. Какой микроконтроллер выбрать для максимально быстрого освоения?
2. Какой основной инструмент (программу) использовать для начала работы?
3. Какие аппаратные средства доступны для начала программирования?
4. Какую литературу использовать?
5. Где общаться и получать вразумительные советы?

Когда я начинал, то сам столкнулся с этими вопросами. Начал искать литературу и решил, что надо начинать с PIC-ов. Перевес в сторону PIC-ов определился из за небольшого количества команд микропроцессоров среднего семейства — всего 35 против 136 у AVR, и наличием IDE — интегрированной среды разработки MPLAB. К сожалению, до последнего времени для микроконтроллеров AVR не было удобной интегрированной среды разработки, многие пользовались AVR Studio 4, кто то писал на C в IAR, для отладки пользовались дополнительными программами, все зависило от личных приоритетов.

Содержание / Contents

  • 1 Итак, попробуем ответить на возникшие вопросы:
  • 2 AVR Studio 5

↑ Итак, попробуем ответить на возникшие вопросы:

1. Выбор микроконтроллера определяется теми задачами, которые вы перед собой поставили. Микроконтроллеры AVR имеют «избыточный» набор команд, и поэтому большинство программистов используют в среднем около 40 инструкций, редко прибегая к остальным. С другой стороны, когда требуется нетипичное решение, дополнительные команды могут оказаться весьма кстати, позволяя значительно сократить объем программы.
Технология производства микроконтроллеров сегодня одинакова как для PIC так и для AVRRISC (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 5

Создание проекта
Примечание: AVR Studio «не любит» русских названий, поэтому проекты должны быть с английской транскрипцией. Старайтесь размещать проекты по кратчайшему пути к основному диску, избегать ветвлений в путях доступа к файлам проекта.

Читайте также  Многожильный кабель для проводки в квартире

Запускаем программу, после некоторого «молчания» появляется окно:

Все наши файлы можно посмотреть в Моих документах (по умолчанию, если при создании проекта путь к файлам был изменен, то ищем их там, где вы их указали в строке Location:)

В папке Debug находится скомпилированный .hex файл, который нам будет нужен для прошивки микроконтроллера.

Теперь мы готовы, чтобы начать писать программу. Но для того, чтобы правильно писать, нужно соблюдать определенные правила.
В следующей статье рассмотрим, как это сделать…

Камрад, рассмотри датагорские рекомендации

Полезные и проверенные железяки, можно брать

Куплено и опробовано читателями или в лаборатории редакции.

Разработка программ в ide avr studio

Я не очень большой фанат компании Microsoft, однако следует признать, что они сделали действительно потрясающую среду разработки Visual Studio. Особенно мне нравится в Visual Studio фича intellisense, которая автоматически дает подсказки по именам членов классов, функциям и полям структур, и для проектов AVR большого размера действительно предпочтительнее использовать Visual Studio IDE в сравнении с простым текстовым редактором.

Здесь приведена краткая инструкция (перевод статьи [1]) — как настроить среду Visual Studio 2008/2010 для использования тулчейна WinAVR и компилирования Ваших программ AVR для получения файлов в формате Intel Hex [2] (прошивка кода firmware микроконтроллера). Этот формат подходит для загрузки программы в память AVR/Arduino с использованием AVRDUDE и/или другого Вашего программатора (например, USBasp, AVRISP-mkII, JTAGICE mkII [3]).

Примечание: предполагается, что у Вас уже установлены тулчейн AVR GCC (в составе пакета WinAVR или Atmel Studio), и конечно же среда разработки Microsoft Visual Studio.

[Шаг 1. Создание Makefile-проекта]

Запустите Visual Studio, зайдите в меню Файл -> Создать -> Проект. выберите раздел Установленные шаблоны -> Visual C++ -> Проект, использующий makefile:

Введите имя проекта (Имя:), выберите папку, где будет расположен каталог проекта (Расположение:), уберите галочку «Создать каталог для решения», кликните OK.

Запустится мастер настройки проекта (см. скриншоты).

Настройте в окне «Параметры конфигурации отладки» следующие опции:

1. Командная строка построения: make

2. Команды очистки: make clean

3. Командная строка перестроения: make all

Примечание: можно ввести список команд, по одной в строке списка. В качестве команды перестроения здесь введены 2 команды, которые будут выполнены друг за другом:

4. Вывод (для отладки): имя для выходного файла прошивки. Обязательно укажите расширение файла *.hex (GenericHID.hex, к примеру).

5. Путь поиска включений: %AVR32_HOME%avrinclude

Примечание: здесь %AVR32_HOME% это переменная окружения, в которой задан каталог установки WinAVR (например, C:WinAVR-20100110) или тулчейна из Atmel Studio (например, c:Program FilesAtmelAVR ToolsAVR Toolchain). Вместо переменной окружения можно указать просто реальный путь до тулчейна.

Кликните Далее. В окне «Параметры конфигурации выпуска» поставьте галочку «Как в конфигурации отладки». Кликните Готово.

[Шаг 2. Сконфигурируйте проект]

Среда Visual Studio автоматически создала для Вас пустой makefile-проект. Теперь его нужно немного настроить, чтобы можно было начать писать программу для AVR.

Сделайте правый клик на названии проекта (myAVRproj) в дереве Обозревателя решений, и выберите в контекстном меню Свойства. Откроется окно редактирования свойств проекта с активной конфигурацией Debug.

В разделе Свойства конфигурации -> Общие из выпадающего списка «Поддержка общеязыковой среды выполнения (CLR)» (Common Language Runtime Support (/clr)) выберите вариант Поддержка общеязыковой среды выполнения (CLR). Включение этой опции предоставляет изящную поддержку со стороны Intellisense.

Перейдите в раздел Свойства конфигурации -> NMake и убедитесь, что введенные здесь значения соответствуют необходимым командам make для сборки, очистки и перестроения (часто проекты поставляются с готовым Makefile, и команды в них могут отличаться). Также проверьте имя выходного hex-файла и убедитесь, что пути поиска включаемых файлов соответствуют ожидаемым или добавлены в соответствующие поле ввода. В строке ввода может быть несколько путей поиска, отделенных друг от друга точкой с запятой ‘;’. Если что-то не так, то исправьте.

[Шаг 3. Создание и добавление Makefile]

Создайте файл Makefile для проекта, как Вы это обычно делаете. Лично я предпочитаю использовать готовые Makefile, которые генерирует система AVR Studio, или беру готовый Makefile из разных опубликованных AVR-проектов. Например, множество проектов с отличными Makefile можно найти в составе библиотек V-USB и LUFA [4]. В этом примере я буду использовать готовый Makefile проекта USB HID устройства из библиотеки LUFA-140928. Сам проект и его makefile находятся в папке DemosDeviceClassDriverGenericHID. Сделайте копию содержимого этой папки в папку Вашего проекта, который Вы только что создали. В моем примере папка проекта находится в каталоге c:TEMPmyAVRproj (у Вас это может быть любой другой каталог на диске).

Файл Makefile обычно должен быть расположен в том же каталоге, где находятся компилируемые файлы исходного кода.

Перед использованием makefile проверьте все его опции, чтобы они соответствовали Вашему компилируемому проекту. Опции makefile редактируются простым текстовым редактором. Здесь я рассмотрю в качестве примера настройку опций для микроконтроллера AT90USB162 и тактовой частоты 16 МГц (макетная плата AVR-USB162).

LUFA_PATH. здесь должен быть указан полный или относительный путь до каталога lufa-LUFA-140928/LUFA. Пример:

MCU. Здесь нужно указать тип микроконтроллера. Название микроконтроллера нужно вводить маленькими буквами. Пример:

BOARD. Здесь указывается символическое название целевого устройства, для которого компилируется проект. Для макетной платы это MICROSIN162:

F_CPU. Здесь указывается тактовая частота микроконтроллера в Герцах. Она зависит от установленного кварцевого резонатора и коэффициента деления прескалера AVR. Для приложений устройств USB на микроконтроллере AT90USB162 допустимы тактовые частоты ядра 8 или 16 МГц. Пример установки тактовой частоты 16 МГц:

После того, как Вы скопировали файл makefile в каталог проекта, добавьте его в каталог Файлы ресурсов проекта Visual Studio. Для этого в Обозревателе решений сделайте правый клик на папке Файлы ресурсов в дереве проекта, и выберите Добавить -> Существующий элемент, и затем в открывшемся диалоге выбора файла выберите файл makefile проекта и кликните на кнопку Добавить.

Как вариант можно просто перетащить в Проводнике файл makefile в папку проекта Файлы ресурсов.

После этого будут работать команды меню Построение -> Очистить решение, Построение -> Построить решение (F7). Однако для удобства редактирования модулей кода их следует добавить в проект.

[Шаг 4. Добавление файлов исходного кода]

Перетащите файлы исходного кода с расширением *.c (для нашего примера Descriptors.c, GenericHID.c) в папку «Файлы исходного кода» Обозревателя решений. Заголовочные файлы с расширением *.h (Descriptors.h, GenericHID.h) перетащите в папку «Заголовочные файлы» Обозревателя решений.

[Шаг 5. Перепрошивка микроконтроллера]

Теперь для полного счастья осталось настроить функцию перепрограммирования микроконтроллера прямо из среды Visual Studio. Для этого через меню Сервис -> Внешние инструменты нужно добавить запуск утилиты для программатора [3]. В этом примере вместо программатора я буду использовать встроенный загрузчик (USB bootloader) Atmel DFU, а в качестве утилиты программирования буду использовать утилиту командной строки Flip DFU (batchisp.exe [5]).

Зайдите в меню Сервис -> Внешние инструменты, нажмите кнопку Добавить.

Для добавленного пункта меню Сервис отредактируйте следующие параметры:

Название: введите Flip DFU (можно ввести произвольное имя).

Команда: введите %ProgramFiles(x86)%AtmelFlip 3.4.7binbatchisp.exe — это полный путь до утилиты batchisp.exe в каталоге установки утилиты Atmel Flip.

Аргументы: введите -device AT90USB162 -hardware usb -operation erase f memory flash blankcheck loadbuffer GenericHID.hex program verify

Исходный каталог: введите $(ProjectDir)

Поставьте галочку «Использовать окно вывода».

Основы программирования микроконтроллеров AVR

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

С этой статьи мы начнем конкретно заниматься одним вопросом — программирование микроконтроллеров. Процесс будет проходить следующим образом — сначала статья по устройству микроконтроллера (к примеру, первая статья будет по портам ввода-вывода), а затем статья по программированию. Сегодняшний наш разговор вводный, и будет посвящен вопросам материального и программного обеспечения процесса изучения основ программирования микроконтроллеров.

Стартовый набор начинающего микроконтроллерщика

Для начала я бы разделил начинающих микроконтроллерщиков на три условные группы:
— радиолюбители, желающие собирать готовые решения на микроконтроллерах, но не имеющие желания изучать программирование
— желающие освоить программирование и собирать конструкции на микроконтроллерах, но выбравшие наиболее простой путь — Arduino
— желающие полностью разобраться в устройстве и программирование микроконтроллеров и собирать свои собственные конструкции

Читайте также  Монтаж проводки для точечных светильников

Для первой группы все очень просто:
— приобрести программатор и научиться с ним работать

Для второй группы остановлюсь немного подробнее.
Arduino ориентирована на начинающих, непрофессиональных пользователей, и состоит из двух частей — программной и аппаратной.
Программная часть состоит из бесплатной программной оболочки для написания программ, их компиляции и программирования устройства.
Язык программирования — стандартный С++ с некоторыми изменениями облегчающими работу с этим языком (хотя есть возможность создавать программы или подключать готовые файлы проектов используя стандартный язык С++). Научиться программировать в Arduino очень просто (поэтому программы на Arduino называются «наброски») — весь процесс программирования сводится в основном к выбору необходимых готовых библиотек для получения конкретного результата.
Аппаратная часть состоит из готовой платы с микроконтроллером с необходимой обвязкой для нормальной работы микроконтроллера и плат расширения (шилды). Кроме того выпускается множество готовых датчиков и исполнительных устройств. Весь процесс сборки конструкции на Arduino напоминает конструктор «Лего» — выбираете необходимые платы расширения и устройства и стыкуете их с основной платой. Для загрузки программы отдельный программатор не требуется.
Arduino вещь конечно хорошая, но предназначена в основном только для тех, кто хочет собирать конструкции на микроконтроллерах, но не хочет загружать свои мозги лишними (по их мнению) знаниями (это сугубо мое мнение).

Ну а мы причисляем себя к третьей группе и пойдем хотя и тернистым, но очень интересным путем.

Для того, чтобы начать практическое изучение как устройства, так и программирование микроконтроллера, нужно иметь минимальную материальную базу — стартовый набор. Стартовый набор, необходимый по моему разумению для освоения микроконтроллера можно приобрести в интернет-магазине сайта «МирМК-SHOP» (так-что эту статью можно считать и коммерческой рекламой :)):

Хочу отметить комментарий одного читателя сайта. К сожалению комментарий куда-то улетучился, и не сохранилось даже имя читателя, но человек подметил очень точно — это не первый вариант набора, а уже третий, более дорогой — изменилась комплектация набора, она стала более расширенной, добавлены новые (нужные) комплектующие (прошу читателя сайта, оставившего комментарий, меня извинить за ошибку работы сайта). Я не пытаюсь навязать читателям сайта что-то купить в интернет-магазине сайта. Это совсем необязательно, можете заказать у Китайских товарищей.

А теперь к главному:
1. Для практических опытов нам потребуется микроконтроллер (а лучше три):
— наиболее популярные и востребованные микроконтроллеры — ATmega8A-PU и ATtiny2313A-PU, ATtiny13A- PU. Кстати, ATtiny13 очень популярный МК, и не зря его называют «малюткой» — малые возможности — но серьезные разработки.
2. Для записи программы в микроконтроллер необходим программатор:
— идеальное решение, на мой взгляд, — программатор USBASP, от которого мы к тому-же будем получать напряжение 5 Вольт для будущих конструкций.
3. Для визуальной оценки и выводов результатов работы программы необходимы средства отображения информации:
— светодиоды
— семисегментный светодиодный индикатор
— знакосинтезирующий (буквенно-цифровой) LCD дисплей
4. Для изучения процессов общения микроконтроллера с другими устройствами:
— цифровой датчик температуры DS18B20 и часы реального времени DS1307 (очень практичные устройства)
5. Кроме того нам потребуются транзисторы, резисторы, кварцевые резонаторы, конденсаторы, кнопки:
— биполярные транзисторы структуры NPN и PNP
— набор резисторов различного номинала
— кварцы (вот тут я выкинул лишнее) на 32,768 кГц, 8 МГц.
— керамические конденсаторы на 22 pF
— тактовые кнопки
6. Для сборки конструкций на микроконтроллере понадобится макетная плата для монтажа без пайки и набор перемычек к ней:
— макетная плата МВ102 (идеально иметь две такие платы — они стыкуются между собой, что очень пригодится в дальнейшем)
— соединительные перемычки к макетной плате трех типов — гибкие (мама-мама, папа-папа) и жесткие П-образной формы

Получается вот такой набор:

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

С материальной базой разобрались, переходим ко второму вопросу.

Выбор языка программирования и среды разработки для программирования

Честно говоря, выбор языка программирования и среды разработки вопрос очень ответственный, навязывать кому-то свои предпочтения и что-то советовать дело довольно-таки трудное.
Давайте попробуем подойти к этому выбору не предвзято, чисто с практической стороны.
1. Существует два основных языка программирования микроконтроллеров — Ассемблер (язык низкого уровня) и Си (язык высокого уровня).
Если мы хотим программировать микроконтроллеры используя полностью все их возможности (а мы это хотим), то необходимо изучать эти два языка.
2. Среда разработки для программирования микроконтроллеров.
Тут выбор большой и очень много мнений. Поэтому можно сказать: «Каждая лягушка хвалит свое болото». Мне, к примеру, очень нравится малораспространенная графическая среда разработки «Algorithm Builder», и «квакать» о ее преимуществах перед другими программами я могу очень долго. Но будем делать выбор, как было сказано выше, не предвзято и практично.
Микроконтроллеры AVR выпускает фирма Atmel, она же предоставляет в наше распоряжение бесплатную среду программирования «Atmel Studio» (бывшая AVR Studio). На ней мы и остановимся.
Интегральная среда разработки (IDE — Integrated development environment) Atmel Studio позволит нам:
— писать программы как на Ассемблере, так и на Си (Почему на Си. Программа «Atmel Studio» позволяет писать программы на трех языках (О чем мы и погорим в первой статье), но есть одно но: программы на Си++ мы рассматривать не будем, по одной причине, и в следующей статье я расскажу об этом
— отладить программу
— перевести программу в машинный код (откомпилировать)
— записать программу в микроконтроллер

Все, выбор мы сделали:


Теперь осталось выполнить два пункта:
1. Обзавестись каким-нибудь стартовым набором (для начала хватит и микроконтроллера ATmega8, нескольких светодиодов, пары кнопок и сопротивлений к ним).
2. Установить (именно установить, а не скачать, и с регистрацией) с официального сайта Atmel (http://www.atmel.com/ru/) программу Atmel Studio.
Программировать микроконтроллеры мы будем с использованием программатора USBASP.
Отдельной статьи по Atmel Studio я писать не буду, будем изучать ее постепенно, по мере надобности и в связке со статьями по устройству и программированию микроконтроллеров.

3. Я добавил в набор очень нужную вещь, она Вам в дальнйшем очень пригодится — USB-TTL преобразователь (конвертер). Почему пригодится:
— русифицируя программу мы установили «Visual Studio-2015», кто не русифицировал программу — установите последнюю версию «Visual Studio», мы не только будем изучать базовую программу «Atmel Studio». К сожалению, на сегодняшний день только программа 2015 года позволяет перейти на русский язык в «Atmel Studio», но а мы с Вами, в «Visual Studio», будем создавать оболочки для работу с МК.

Следующие статьи

(23 голосов, оценка: 4,87 из 5)