» » Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги

 
 
 

Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги

Разместил galrad 20 декабря 2013. Просмотров: 60 182

9
Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги

Современное радиолюбительство невозможно представить без микроконтроллеров, и это очевидно. В последние десятилетия микроконтроллеры различных производителей стали широко распространены в разных сферах деятельности человека. Нередко их можно встретить в самых неожиданных устройствах и конструкциях. Мы с вами являемся свидетелями компьютеризации и автоматизации окружающих нас процессов. Истина такова, что без знания основ программирования создавать современные конкурентоспособные устройства стало практически невозможно…
Если вы читаете эту статью, вероятно у вас возникло желание понять, как работают микроконтроллеры, и скорее всего появились вопросы:
1. Какой микроконтроллер выбрать для работы?
2. Какую среду разработки использовать для программирования выбранного микроконтроллера?
3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?
4. Какую литературу изучать?
5. Где в интернете можно задавать вопросы и получать конкретные ответы?

Попробуем ответить на эти вопросы.

1. Какой микроконтроллер выбрать для работы?

Большой популярностью у радиолюбителей пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры, архитектуры ARM.

В промышленности, несколько иначе, первое место с большим отрывом занимает Renesas Electronics на втором Freescale, на третьем Samsung, затем идут Microchip и TI, далее все остальные.
Популярность определяется ценой и доступностью, немалую роль играют наличие технической информации и стоимость программного сопровождения.

Мы будем изучать 8-битные микроконтроллеры AVR, семейства ATMEGA 8 и 16 серии. Выбор определился, опять же доступностью, наличием множества любительских разработок, огромным количеством учебного материала. Наличием разнообразных встроенных компонентов и функциональностью этого семейства.

2. Какую среду разработки использовать для программирования выбранного микроконтроллера?

Для AVR созданы разные интегрированные среды разработки (IDE, Integrated development environment).
IDE – это система программных средств, используемая программистами для разработки программного обеспечения (ПО), в состав которой входят:
• текстовый редактор,
• компилятор и/или интерпретатор,
• средства автоматизации сборки,
• отладчик.

Наиболее распространенные из них AVRStudio, ATmelStudio, WINAVR, CodeVision, IAR Embedded Workbench.
Для того, чтобы писать программы, мы воспользуемся бесплатной IDE ATmelStudio версии 6 и выше.
Скачать Atmel Studio можно с официального сайта после регистрации (регистрация абсолютно бесплатная и ни к чему не обязывает!)

ATmelStudio позволяет создавать проекты, и писать программы как в ассемблере, так и на СИ.

Изначально всегда стоит вопрос: какой язык программирования выбрать, чтобы писать эффективные программы?

Отвечу просто: нужно уметь писать как минимум на двух языках ассемблере и СИ. Ассемблер просто необходим, когда нужно написать быстрые и компактные подпрограммы и макросы, различные драйверы устройств. Но, когда требуется создать объемный проект, построенный на сложных алгоритмах, без знания СИ может быть потрачено очень много времени, особенно в процессе отладки, а если возникнет желание перенести на другую платформу, например PIC18, или STM, может стать неразрешимой проблемой.
Кроме этого, сейчас появились аппаратные вычислительные платформы Arduino, работа с которыми требует знаний языка СИ++.
Поэтому будем писать программы как в ассемблере, так и на СИ.

Чтобы наглядно видеть результат своей работы, не используя паяльник или макетную плату достаточно установить программу Proteus, которую можно скачать на страничках //datagor.ru

3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?

Используем датагорский кит — программатор Project-005 «D-AVR910». Кроме этого, нужно будет приобрести макетные платы, блок питания с выходным напряжением 5 Вольт. Можно в качестве БП с малыми пульсациями использовать наш кит Project-006 «POWER FILTER», применив стабилитрон на 5 Вольт.
Возможно, со временем мы с Игорем предложим проект для сборки отладочной платы.

Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги




4. Какую литературу изучать?

А вот, например:
• Практическое программирование AVR на ассемблере. Ревич, 2011
• 1000 и одна микроконтроллерная схема Вып. 1-2. Рюмик, 2010-2011
• 10 практических устройств на МК AVR Книга 1-2. Кравченко, 2008-2009
• Самоучитель разработчика устройств на МК AVR. Белов, 2008
• МК AVR семейств Tiny и Atmega. Ефстифеев, 2008
• CodeVisionAVR. Пособие для начинающих. Лебедев, 2008
• Микропроцессорное управление устройствами, тиристоры, реле. Белов, 2008
• Аналоговые интерфейсы МК. Стюард, Болл, 2007
• Создаем устройства на МК AVR. Белов, 2007
• МК AVR в радиолюбительской практике. Полный разбор ATTINY2313. Белов, 2007
• Сетевой и межсетевой обмен данными с МК. Иди, 2007
• МК AVR. практикум для начинающих. Хартов, 2007
• Применение AVR Схемы, алгоритмы, программы. Баранов, 2006
• Микроконтроллеры AVR. Вводный курс. Мортон, 2006
• Измерение, управление и регулирование с помощью AVR. Трамперт, 2006
• Программирование на языке С для AVR и PIC МК. Шпак, 2006
• Конструирование устройств на МК. Белов, 2005
• МK — это же просто, тома 1-3. Фрунзе, 2002-2003
• Язык программирования Си, 2-е издание. Керниган, Ритчи, 2009
• Программирование микроконтроллеров ATMEL на языке С. Прокопенко, 2012
Исключён фрагмент. Полный вариант статьи доступен только полноправным членам сообщества и подписчикам.
Пожалуйста, ознакомьтесь с условиями доступа.


5. Где в интернете можно задавать вопросы и получать конкретные ответы?

Задавать вопросы вы можете на нашем или любом другом форуме, где так или иначе затронуты темы по микроконтроллерам. Главное на форумах правильно формулировать вопросы, чтобы четко получать ответы. Абстрактные вопросы не приветствуются, и скорее всего вместо ответа вы получите жесткую критику, или ваш вопрос останется без внимания!

Теперь рассмотрим поближе нашего фаворита, микроконтроллер ATMEGA 8

• 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
• Прогрессивная RISC архитектура
130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл
32 8-разрядных рабочих регистра общего назначения
Полностью статическая работа
Приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность
Встроенный 2-цикловый перемножитель

• Энергонезависимая память программ и данных
8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)
Обеспечивает 1000 циклов стирания/записи
Дополнительный сектор загрузочных кодов с независимыми битами блокировки
Обеспечен режим одновременного чтения/записи (Read-While-Write)
512 байт EEPROM
Обеспечивает 100000 циклов стирания/записи
1 Кбайт встроенной SRAM
Программируемая блокировка, обеспечивающая защиту программных средств пользователя

• Встроенная периферия
Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения
Счетчик реального времени с отдельным генератором
Три канала PWM
8-канальный аналого-цифровой преобразователь (в корпусах TQFP и MLF)
6 каналов с 10-разрядной точностью
2 канала с 8-разрядной точностью
6-канальный аналого-цифровой преобразователь (в корпусе PDIP)
4 канала с 10-разрядной точностью
2 канала с 8-разрядной точностью
Байт-ориентированный 2-проводный последовательный интерфейс
Программируемый последовательный USART
Последовательный интерфейс SPI (ведущий/ведомый)
Программируемый сторожевой таймер с отдельным встроенным генератором
Встроенный аналоговый компаратор

• Специальные микроконтроллерные функции
Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
Встроенный калиброванный RC-генератор
Внутренние и внешние источники прерываний
Пять режимов пониженного потребления: Idle, Power-save, Power-down, Standby и снижения шумов ADC

• Выводы I/O и корпуса
23 программируемые линии ввода/вывода
28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус MLF



• Рабочие напряжения
2,7 — 5,5 В (ATmega8L)
4,5 — 5,5 В (ATmega8)

• Рабочая частота
0 — 8 МГц (ATmega8L)
0 — 16 МГц (ATmega8)

отличия ATMEGA16 от 8
• 16 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)

• Интерфейс JTAG (совместимый с IEEE 1149.1)
Возможность сканирования периферии, соответствующая стандарту JTAG
Расширенная поддержка встроенной отладки
Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки

• Четыре канала PWM / ШИМ

• 8-канальный 10-разрядный аналого-цифровой преобразователь
8 несимметричных каналов
7 дифференциальных каналов (только в корпусе TQFP)
2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат (только в корпусе TQFP)

• Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC

• 32 программируемые линии ввода/вывода

• 40-выводной корпус PDIP и 44-выводной корпус TQFP



AtmelStudio

Если Вы только начинаете, то нужно скачать и установить программу AtmelStudio с официальной страницы atmel.com
После установки программы AtmelStudio можно приступить к созданию проекта.
Проект – это ваша программа, которую вы будете писать, отлаживать и прошивать, после компиляции, в память микроконтроллера.

Чтобы создать проект, надо открыть программу, появиться такая заставка,


и откроется страница создания проекта


Чтобы создать новый проект, нужно кликнуть по «New Project…»
В этом случае откроется новое окно, где можно выбрать язык программирования, название проекта, его месторасположение, название пакета с файлами проекта и возможность создания каталога для дальнейшего использования в других перекрестных проектах. Чтобы создать проект, где мы будем программировать в ассемблере, нужно выбрать — Assembler, после этого поменяем название проекта, его расположение, и выбираем ОК.


Появится следующее окно


Выбираем “megaAVR, 8-bit” и находим нужный нам микроконтроллер, мы выбрали ATmega8. В правой части заставки появляется список устройств, работающих с этим микроконтроллером, один из которых мы можем подключить. Выбираем ОК.


Появляется страница редактора текста, которая позволяет редактировать и отлаживать программу. Пока страница чистая, указано время и дата создания и название файла проекта, имя пользователя. Есть дополнительные окно устройств ввода-вывода, окно отчетов компиляции программы. Теперь мы

можем программировать в ассемблере.
Аналогично создается проект для программирования на языке СИ.


Выбираем семейство микроконтроллеров “megaAVR, 8-bit”


Далее, наименование микроконтроллера и выбираем ОК.


Появляется страница редактора текста. Здесь мы можем программировать в СИ.


У нас есть возможность загрузить демонстрационные проекты для работы с платами разработки, выпускаемыми корпорацией ATMEL.
Для этого нужно при создании проекта выбрать пункт “New Examle Project from ASF…”


Откроется окно следующего вида:


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


Так же есть возможность управлять проектом, для этого нужно выбрать название проекта под пунктом “Recent Projects” и кликнуть по правой клавише мыши. Появится меню из 3-х пунктов:


Open Project – запускает проект.
Open Containing Folder – просмотор содержимого папки проекта
Remove From List – удаление из списка проектов. Сам проект не удаляется, и попытка создать новый проект с таким же именем выдаст ошибку. Полностью удалить проект можно в папке, где он был создан.

Как создается новый проект и про перенос старых проектов, созданных в AVR Studio 4, можно посмотреть на видеоролике от Александра Писанца
Радик (galrad)
РФ. Республика Башкортостан. г.Уфа
Профиль galrad
1964г.р. Специальность - врач. Должность - доцент кафедры. Ученая степень - кандидат медицинских наук. Радиоэлектроника - увлечение с детства (с 15 лет). Приоритетные направления - микроконтроллеры, цифровая электроника, измерения, ремонт компьютеров и сотовых телефонов, и т.п. Второе высшее образование - инженер-электроник.
 

Понравилось? Палец вверх!

  • всего лайков: 93

Поделись с друзьями!

Связанные материалы:


Kaspersky FREE. Бесплатная годовая лицензия для России, Белоруссии и Украины

Привет, друзья! Очередной подарок от kaspersky.ru — антивирус «Kaspersky FREE». Спасибо Евгению...

Microchip проглотила Atmel. Официально

Привет, дрУги! Не удивляйтесь, зайдя сегодня на официальную страницу atmel.com и увидя красенький...

Пусть всегда будет солнце!

Сегодня День Победы. Мы так долго живём без войны, что начали забывать, что это такое, а без этой...

Гитарный преамп Tomato - исправленная печатка. Tomato updated pcb. Обновлено.

Маленькая заметочка в стиле «возвращаясь к напечатанному» для устранения замеченных ошибок....

17/01 киберсубботник на портале

Привет, дрУги! В ближайщую субботу на нашем портале и в магазине будет проводиться...

Библиотеки Diptrace +3D. Разъёмы PBS (розетки)

Продолжая тему библиотек для Diptrace, хочу предложить розетки однорядные PBS для пайки на плату...

Датагорскiя Вѣдомости №1 (2012)

Здравствуйте, уважаемые сограждане-датагорцы и гости нашего электронного города! Спешу рассказать...

Сделай сам преобразователь сигналов для механического энкодера, v.2

Хотелось бы дополнить и продолжить мою статью про энкодер «Преобразователь сигналов...

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

Каждый человек, который только начинает осваивать программирование микроконтроллеров, да и вообще...

Transformer: программа расчета маломощного (до 500 Вт) силового трансформатора на

Предлагаю начинающим очень простую программулину для расчета силовых трансформаторов. Автор...

Датагорская Ярмарка электроники v.2 открылась!

Уважаемые граждане Датагории и гости нашего кибер-города! После обновления открылась Датагорская...

Микроконтроллеры AVR семейства Classic фирмы ATMEL. Евстифеев А. В.

Книга представляет собой справочное издание по применению микроконтроллеров AVR семейства Classic...
<
  • Гражданин
21 декабря 2013 03:19

Игорь / AudioKiller

  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
В CodeVision можно автоматически генерить текст настроек микроконтроллера, выбирая галочками нужные режимы портов и прочих устройств. Это очень удобно для начинающих.

<
  • Главный редактор
22 декабря 2013 01:52

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 604 комментария
  • 257 публикаций
 
  • +1
Новая Atmel Stidio 6 мне нравится. Нравится шить из-под неё - реально удобно выставлять фьюзы. Нравится, что сохранилась совместимость с датагорским USB-программатором "D-AVR910" (Конечно, нужно обновить код прошивки самого программатора до STK500) wink

Нравится, что в Студии сразу почти всё есть, как говорится, работает из коробки и с минимумом настроек. Пишем на C и сразу компилим и сразу шьём.

Но вот вы не поверите, дрУги, в Atmel Stidio 6 по умолчанию отключены номера строк в редакторе кода. Для меня это жутко неудобно.
Создатели Студии так далеко завернули эту настройку, что не сразу и найдешь:
Tools -> Options -> Text Editor -> All Languages -> General -> поставить галку на Line numbers

Второе, что могу порекомендовать - поставьте комфортный шрифт себе для работы, чтоб глазки не выпучивать:
Tools -> Options -> Environment -> Font and Colors -> Font: Consolas, Size: 14

Всем удачи в освоении новой Студии, корифеям - гладкого кода, а Радику - спасибо!

<
  • Гражданин
22 декабря 2013 19:48

Александр / AlViS

  • С нами с 25.09.2010
  • Ушёл в реал Пользователь offline
  • 98 комментариев
  • 1 публикация
 
  • -1
В промышленности, несколько иначе, первое место с большим отрывом занимает Renesas Electronics на втором Freescale, на третьем Samsung, затем идут Microchip и TI, далее все остальные.

Я, наверное, в какой-то другой промышленности работаю... smile
У меня в окружении, в основном AVR от Atmel. Причём, и в нашей аппаратуре, и в импортной.

<
  • Гражданин
23 декабря 2013 08:50

Радик / galrad

  • С нами с 23.08.2011
  • Ушёл в реал Пользователь offline
  • 84 комментария
  • 12 публикаций
 
  • 0
В России возможно все! Речь идёт о тенденциях в целом. Это не я придумал, ссылка на википедию: //ru.wikipedia.org/wiki/Микроконтроллер.

<
  • Кандидат
28 декабря 2013 20:24

Алексей / Alyes2011

  • С нами с 28.12.2013
  • Ушёл в реал Пользователь offline
  • 1 комментарий
  • 0 публикаций
 
  • 0
Atmel Studio 6 я тоже начинающий, 6-мес. примерно так, все довольно понятно... только почему-то про подключение русского в этом студио редко встречаю... а для начинающих, очень полезно... когда переключил на русский, все настройки IDE, процесс построения, стали намного понятней и роднее))), а значит и меньше тратить время для того, чтобы "нырять за переводом"!

<
  • Гражданин
5 января 2014 13:30

Радик / galrad

  • С нами с 23.08.2011
  • Ушёл в реал Пользователь offline
  • 84 комментария
  • 12 публикаций
 
  • 0
Да, действительно можно руссифицировать меню. Для этого нужно установить русский Visual Studio 2010, в настройках Atmel Studio выбрать: Tools -> Options -> Environment -> International Settings -> русский. Есть и отдельные руссификаторы, но с ними нередко возникают проблемы... Чтобы русская кириллица не стала проблемой, желательно скачать последние версии Atmel Studio //www.atmel.com/Images/AStudio61sp2net.exe

<
  • Кандидат
4 ноября 2015 15:21

Виталик / talich

  • С нами с 4.11.2015
  • Ушёл в реал Пользователь offline
  • 1 комментарий
  • 0 публикаций
 
  • 0
Википедия тут не авторитет... Автосигналки относятся к промышленным образцам? Правильно.
В тайванских и наших клонах (старлайн и иже с ним) были Microchip 16f72, 16f73 или Holtec.
В более дорогих вроде B6, B9 были тоже pic.
С момента сворачивания всей линейки А, B, C в 2010 году - не скажу, не знаю.
А вот Алармтрейд вовсю использует ST. Сам устанавливаю сигналки в качестве хобби, и много чего осталось от старых плат, больше 50 было разобрано на платы.
Ни разу не видел ренесас или самсунг с фрискейл.

<
  • Гражданин
12 ноября 2015 14:12

Радик / galrad

  • С нами с 23.08.2011
  • Ушёл в реал Пользователь offline
  • 84 комментария
  • 12 публикаций
 
  • 0
Повода для спора нет! Я честно написал, что воспользовался ссылкой на википедию. smile

<
  • Главный редактор
12 ноября 2015 15:35

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 604 комментария
  • 257 публикаций
 
  • 0
Сигналки, стиралки, строгалки, грелки - это потребительский сектор, консьюмер.

А в статье Радика и на Вики речь идёт о другом секторе - промышленность: промэлектроника, автопром, военка, спейсшип. Т.е. станки, агрегаты, заводы, линии для сборки сигналок и свистелок; бортовая электроника автомобилей, самолётов, танков, ракет.
smile

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.