Пятница, 29.03.2024, 13:12
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Реклама Google
Форма входа
Категории раздела
Это нужно знать! [17]
Изучаем AVR [30]
Программаторы [12]
Необходимое ПО [8]
Готовые устройства [73]
Справочная [38]
Инструмент [0]
Технология [8]
Литература [0]
Arduino скетчи [18]
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Микроконтроллеры - это просто!
Главная » Статьи » Изучаем AVR

Программирование микроконтроллеров в 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, которую можно скачать на страничках http://datagor.ru

3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?
Используем AVRISP. Кроме этого, нужно будет приобрести макетные платы, блок питания с выходным напряжением 5 Вольт. Можно в качестве БП с малыми пульсациями. 

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 | Добавил: Alex (13.11.2014)
Просмотров: 5940 | Рейтинг: 3.5/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024