Содержание
- Программирование микроконтроллеров AVR фирмы Atmel
- Создание проекта в Atmel Studio
- Код программы в Atmel Studio
- Компиляция программы
- Загрузка прошивки в микроконтроллер
- Нам понадобится
- Подключаем питание
- Программатор
- Прошивка
- Заключение
- Содержание / Contents
- ↑ 1. Какой микроконтроллер выбрать для работы?
- ↑ 2. Какую среду разработки использовать для программирования выбранного микроконтроллера?
- ↑ 3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?
- ↑ 4. Какую литературу изучать?
- ↑ 5. Где в интернете можно задавать вопросы и получать конкретные ответы?
- ↑ Теперь рассмотрим поближе нашего фаворита, микроконтроллер ATMEGA 8
- ↑ AtmelStudio
- Камрад, рассмотри датагорские рекомендации
- Читательское голосование
- Поделись с друзьями!
- Связанные материалы
- Общаемся по статье 💬
Микроконтроллер – микросхема, предназначенная для управления электронными устройствами, или по другому – простенький компьютер (микро-ЭВМ), способный выполнять несложные задачи.
Рано или поздно, любой радиолюбитель (я так думаю), приходит к мысли о применении в своих разработках микроконтроллеров. Микроконтроллер позволяет существенно “облегчить” радиолюбительскую конструкцию, сделать ее проще и намного функциональнее.
Что нужно для того, чтобы начать пользоваться всеми возможностями микроконтроллеров? Я считаю, что не так уж и много. Главное в этом деле – желание. Будет желание, будет и результат.
В этом разделе (и в разделе “Устройство AVR”) сайта я постараюсь помочь начинающим “микроконтроллерщикам” сделать первый, он же самый трудный шаг навстречу микроконтроллерам – попробуем разобраться в устройстве и программировании микроконтроллеров AVR семейства ATtiny и ATmega.
В сети существует множество сайтов затрагивающих так или иначе “микроконтроллерную” тематику, много также и различной литературы для начинающих. Поэтому я не собираюсь “переплюнуть” всех и вся и создать очередной шедевр мыслительных мук в виде пособия по микроконтроллерам для начинающих. Я постараюсь систематизировать, собрать в кучу все нужное на мой взгляд, для первого шага в мир микроконтроллеров, и изложить более-менее доступным языком.
В своих статьях я буду опираться на материалы из публикаций популярных авторов микроконтроллерной тематики: Рюмика С.М., Белова А.В., Ревича Ю.В., Евстифеева А.В., Гребнева В.В., Мортона Д., Трамперта В., Фрунзе А.В. и Фрунзе А.А. (и многих других), а также материалы радиолюбительских сайтов. Ну и, может быть, немного своих “умных мыслей”.
Программирование микроконтроллеров AVR фирмы Atmel
1. Микроконтроллеры – первый шаг
Эта статья, как и все последующие, — маленький шажок в мир микроконтроллеров. И таких «шажков» у нас будет много, пока не дойдем до того момента, когда сможем сказать: «Микроконтроллер — последний шаг». Но и это, скорее всего, из области фантастики — нельзя объять необъятное, — мир микроконтроллеров постоянно развивается и совершенствуется. Наша задача — сделать первый шаг, логическим итогом которого должна стать первая, самостоятельно разработанная и собранная конструкция на микроконтроллере.
2. Системы счисления: десятичная, двоичная и шестнадцатиричная
Как вы наверняка знаете, существует много разных систем счисления, одними пользуются и сейчас (наша, родная, десятичная система; римская система, известная нам как «римские цифры»), другие остались в глубоком прошлом (системы счисления инков и майя, древнеегипитская система, вавилонская). Тут, я думаю, вопросов у нас нет, что такое системы счисления нам понятно — отображение чисел символами. А вот какая связь систем счисления с микроконтроллерами.
3. Логические операции, логические выражения, логические элементы
4. Битовые операции В прошлой статье была рассмотрена тема логических операций и выражений. В этой статье мы рассмотрим логические битовые операции. Битовые операции очень близки к логическим операциям, можно даже сказать, что это одно и тоже. Разница только в том,что логические операции применяются к высказываниям, а битовые операции, с такими же правилами и результатами применяются к битам.
5. Прямой, обратный и дополнительный коды двоичного числа
Прямой, обратный и дополнительный коды двоичного числа — способы представления двоичных чисел с фиксированной запятой в компьютерной (микроконтроллерной) арифметике, предназначенные для записи отрицательных и неотрицательных чисел
6. USBASP программатор для микроконтроллеров AVR – идеальное решение для начинающих, и не только
Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.
7. Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny
Популярнейшая программа AVRDUDE_PROG 3.3 предназначена для программирования микроконтроллеров AVR ATmega и ATtiny
8. Основы программирования микроконтроллеров AVR
С этой статьи мы начнем конкретно заниматься одним вопросом — программирование микроконтроллеров. Процесс будет проходить следующим образом — сначала статья по устройству микроконтроллера (к примеру, первая статья будет по портам ввода-вывода), а затем статья по программированию. Сегодняшний наш разговор вводный, и будет посвящен вопросам материального и программного обеспечения процесса изучения основ программирования микроконтроллеров.
9. Русификация программы Atmel Studio
В этой статье мы поговорим о проблемах русификации программы Atmel Studio, как перевести программу на русский (или другой) язык, и как сделать более удобной работу программы с программатором USBASP. После установки программы Atmel Studio весь интерфейс будет на английском языке. Кому-то, кто знаком с английским, или уже привык работать с программами с английским интерфейсом, это вполне устроит. Меня лично, такой подход создателей программы к великому и могучему не устраивает, мне более комфортно работать с русскими меню.
10. Введение в язык программирования С (Си) для микроконтроллеров
В этой статье будут рассмотрены основные сведение о языке С, структура программы на языке С, дано понятие о функциях, операторах и комментариях данного языка программирования.
11. Переменные и константы в языке С (Си) для микроконтроллеров AVR
В этой статье будут рассмотрены типы переменных в языке С (Си) для микроконтроллеров AVR, объявление переменных, способы задания констант, будет дан обзор арифметических операций языка С, присваивания, инкремента и декремента.
12. Управление портами микроконтроллеров AVR на языке С (Си)
В этой статье будет рассмотрено управление портами микроконтроллеров AVR на языке программирования С (Си): установка выводов порта на вход или выход, считывание значений на входах портов, программа для управления миганием светодиода.
13. Циклы в языке С (Си) для микроконтроллеров AVR
В данной статье будут рассмотрены циклы в языке программирования Си для микроконтроллеров AVR. Будут рассмотрены циклы типа «для» (for) и циклы типа «пока» (while), будет показано как осуществить принудительное прерывание цикла и организовать бесконечный цикл.
14. Массивы в программировании микроконтроллеров AVR
В данной статье мы рассмотрим основы использования массивов в языке С для микроконтроллеров AVR и рассмотрим их практическое применение в программе для изменения цифр на семисегментном индикаторе.
Программирование микроконтроллеров AVR Микроконтроллеры AVR: программирование и применение микроконтроллеров ATmega и ATtiny для начинающих Published by: Мир микроконтроллеров
В качестве среды разработки я взял Atmel Studio на мой взгляд она очень удобная и постоянно обновляется к тому же абсолютно бесплатная. Скачать ее можно с официального сайта Atmel. Тут думаю проблем никаких не возникнет, скачиваем устанавливаем запускаем и все и наслаждается кучей разных непонятных кнопочек)
Подопытным МК будет Atmega8. Для того чтобы ее прошить нужна будет ее распиновка выводов представлена ниже. Распиновку также можно посмотреть тут. Нам нужно понимать куда подключать программатор куда подавать напряжение.
Далее нам необходимо определиться с программатором которым будем шить МК. Я взял USBasp программатор, самый простой программатор. Они бывают с разными разъемами, какой взять не принципиально. Главное правильно подключить выводы MOSI, MISO, RST, SCK а также питалово VCC и GND к микроконтроллеру. Также нужно установить под этот программатор драйвера, без них ПК просто не поймет что это за устройство такое мы подключили. Ссылка на драйвера для программатора USBasp приложена в конце статьи.
После того как мы выбрали программатор и МК нам нужно их соединить) Вот схема подключения программатора и микроконтроллера
Создание проекта в Atmel Studio
Вывод AVCC подключать не обязательно, у меня камень прошивался спокойно и без этого провода. После того как мы подключили нашего подопытного и программатор. Приступаем к написанию программы и ее компиляции.
Запускам среду Atmel Studio и создаем новый проект.
И выбираем в списке устройств наш камень Atmega8
И пишем программу, в качестве примера возьмем код мигания светодиодом. Так же вот есть проект мигалки на микроконтроллере с 4-мя светодиодами.
Код программы в Atmel Studio
/* * LED blink.c * * Created: 06.04.2020 21:31:26 * Author : Mudji */ #ifndef F_CPU #define F_CPU 1000000UL // 1 MHz clock speed #endif #include #include int main(void) { DDRC = 0xFF; //Nakes PORTC as Output while(1) //infinite loop { PORTC = 0xFF; //Turns ON All LEDs _delay_ms(1000); //1 second delay PORTC= 0x00; //Turns OFF All LEDs _delay_ms(1000); //1 second delay } }
Следует обратить внимание вот на первые 2 две сточки:
#ifndef F_CPU #define F_CPU 1000000UL // 1 MHz clock speed #endif
тут мы определяем частоту тактирования микроконтроллера. В нашем случаем это 1 МГц. И запоминаем это значение — оно нам еще пригодится.
Компиляция программы
Далее необходимо откомпилировать программу, для этого нажимаем Build -> Build Solution или просто нажимаем клавишу F7 . Если никаких ошибок не было то программа откомпилируется и в консоле появится сообщение что все у нас гуд нет никаких варнингов и ошибок.
И так поздравляю Вас с успешной компиляции программы. Далее нам нужно найти файл hex который появляется после компиляции программы. Его можно найти в папке с проектом, лежит он в папке , в моем случае папка проект Led blink и там в папке Debug находится наш долгожданный файл hex.
Загрузка прошивки в микроконтроллер
Остается только залить этот файл в память прошиваемого микроконтроллера. Для этого я использовал программу Khazama AVR Programmer на мой взгляд очень удобная программа.
Для загрузки прошивки в МК делаем следующее:
- Запускаем программу и устанавливаем состояние fuse битов. Что такое фьюз биты мы говорили ранее. Для того чтобы установить их сначала нужно считать, для это жмем Command->Fuses and Lock Bits и далее во всплывающем окне жмем Read All
Тут выставляем нужные нам Fuse биты Lock биты лучше пока не трогать если не знаете какой бит за что отвечает.
Нас интересуют биты CKSEL 0…3 они отвечают за выбор типа тактирования внешний кварц или внутренний RC генератор. В нашем случае частота 1 МГц и тактирование от внутреннего RC генератора. Поэтому пишем значение 0001.
После того как выставили Fuse биты нажимаем кнопку Write All после чего биты установятся в МК.
Ну и последний этап это загружаем hex файл сначала в буфер программы и далее заливаем в микроконтроллер.
После загрузки прошивки, микроконтроллер автоматом запуститься и начнет мигать светодиодом, который подключен к порту выводу порта C.
Видео
Задать вопрос –> © 2020 RD-Радиотехнический портал
- 11.01.2011 14:04
- Родительская категория: Статьи
- Категория: Программирование
- Автор: ARV
{nomultithumb}По договоренности с редакцией журнала Радиолюбитель публикую ввсе главы из своей полунаписанной ненапечатанной книги. {ads2}В итоге все написанное публиковалось в течение 2010 и 2011 годов в журнале, а теперь журнальные статьи в виде PDF-файлов я размещаю здесь для всех желающих. Приношу свои извинения за несколько “рваный” стиль изложения и отсутствие многих полезных вещей, например, примеров программ и т.п. – увы, это хотя и было задумано, так и не было реализовано. {ads1} Вложения: ФайлОписаниеРазмер файла: AVR_01-2010.pdfПредисловие, Основы языка Си (начало)314 Кб AVR_02-2010.pdfОсновы Си (продолжение)299 Кб AVR_03-2010.pdfОсновы Си (продолжение)314 Кб AVR_04-2010.pdfWinAVR + AVR Studio (Установка, описание интерфейса)2021 Кб AVR_05-2010.pdfAVR Studio (описание интерфейса – продолжение)1088 Кб AVR_06-2010.pdfAVR Studio (работа с проектом)1347 Кб AVR_07-2010.pdfAVR Studio (отладка)981 Кб AVR_08-2010.pdfОбзор дополнительных средств (утилиты, программаторы, отладчики – кратко)1474 Кб AVR_09-2010.pdfAVR-GCC (особенности, файлы, параметры командной строки)328 Кб AVR_10-2010.pdfAVR-LIBC (alloca.h, assert.h, ctype.h, errno.h, inttypes.h, math.h, setjmp.h, stdint.h)338 Кб AVR_11-2010.pdfAVR-LIBC (stdio.h)385 Кб AVR_12_2010.pdfAVR-LIBC (stdlib.h, string.h)328 Кб AVR_01_2011.pdfAVR-LIBC (boot.h, eeprom.h, fuse.h, interrupt.h, pgmspace.h)301 Кб AVR_02_2011.pdfAVR-LIBC (power.h, sfr_defs.h, sleep.h, version.h, atomic.h, crc16.h, wdt.h, delay.h, delay_basic.h, parity.h, setbaud.h)272 Кб AVR_03_2011.pdfРаспределение памяти в AVR-GCC326 Кб AVR_04_2011.pdfАссемблерные модули и вставки188 Кб AVR_05_2011.pdfАссемблерные модули и вставки (продолжение)247 Кб
- Назад
Добавить комментарий
Обсудить эту статью на форуме (19 ответов).
В этой статье я расскажу о том, как программировать микроконтроллеры без использования Arduino. Мы будем использовать программатор AvrISP STK500 для программирования контроллера ATtiny84.
Нам понадобится
- Программатор AvrISP STK500
- Светодиоды
- Резисторы
- Провода «папа-папа»
- Микроконтроллер ATtiny84
- Клеммник
- Батарейка «Крона»
- Преобразователь напряжения
Подключаем питание
Arduino мы не используем, поэтому обо всем нам придется думать самостоятельно. И первое, с чем необходимо разобраться — питание. Мы будем использовать преобразователь L7805, обладающей следующими характеристиками:
- Выходной ток до 1.5 А
- Выходное напряжение — ровные 5 В
- Защита от перегрева
- Защита от короткого замыкания
Теперь нам надо узнать схему подключения этого преобразователя. Ее мы найдем на странице 3 даташита.
Помимо самого преобразователя, мы видим еще 2 конденсатора — входной Сi и выходной Сo. Входной конденсатор необходим для того, чтобы сгладить пульсации на входе в случае удаленности L7805 от источника. В нашем случае длина соединительных проводов не будет превышать 15 см, поэтому входного конденсатора у нас не будет. Зато будет выходной, поскольку мы хотим «кормить» наш контроллер стабильным питанием.
Распиновка
Необходимо знать назначение ножек преобразователя. Это описано на 2-й странице даташита.
Схема
С учетом всего вышеописанного, получается схема для организации питания.
Программатор
В качестве программатора мы использовали AvrISP STK500 от Seeed Studio. Для его работы под Windows и Mac OS необходимы драйверы. Их можно скачать с официального сайта. Пользователям Linux устанавливать ничего не нужно — программатор будет сразу готов к работе.
Подключение к контроллеру
Распиновка разъема программатора такова:
Важно! Это распиновка разъема программатора, если смотреть на него сверху (отверстиями от себя). Не перепутайте!
Разъем программатора необходимо подключить к микроконтроллеру. Можно использовать как 10-пиновый разъём, так и 6-пиновый. Без разницы. Соединим проводами соответствующие пины, т.е:
10-пиновый ICSP | ATtiny84 | |
---|---|---|
Reset | 5 | 4 |
MOSI | 1 | 7 |
MISO | 9 | 8 |
SCK | 7 | 9 |
Прошивка
Напишем код прошивки на чистом «C», которая заставит светодиод мигать. Использование ШИМ-сигналов и считывание аналоговых сигналов на чистом «C» не так тривиальна, и может являться темой отдельной статьи, поэтому остановимся пока на простейшем примере.
- blink.c
-
int main(void) { // номер пина 2 в порту А -- на выход DDRA = 1 <<</span> 2; // основной цикл while (1==1) { _delay_ms(500); // задержка 500 мс PORTA ^= 1 <<</span> 2; // инвертирование значения на выводе } return ; }
После скетчей Arduino, код малопонятен, правда? Ничего, сейчас я объясню, что да как. В первых двух строчках мы подключаем необходимые библиотеки, чтобы воспользоваться такими штуками, как DDRA
, PORTA
, _delay_ms
.
Что же такое DDRA
? Это регистр микроконтроллера, управляющий направлением работы порта А. Он содержит в себе 8 бит. Если установить какой-то бит в 1, то пин с соответствующим номером станет выходом.
PORTA
— тоже регистр, но он содержит в себе данные порта А. Если мы хотим на вывод номер 2 записать логическую единицу, то мы должны поместить 1 в соответсвующий бит регистра.
А _delay_ms
— функция задержки. Исходя из этого можно составить таблицу соответствия:
Arduino | C | |
---|---|---|
Направление | pinMode(led, OUTPUT); |
DDRA = 1 << 2;</code> |
Значение | digitalWrite(led, HIGH); |
PORTA = 1 << 2;</code> |
Задержка | delay(1000); |
_delay_ms(50); |
Однако, самым важным различием кода является то, что в программе на С нет разделений функций setup
и loop
. За все это отвечает функция int main(void)
. И она выполняется всего 1 раз! А мы хотим, чтобы наш светодиод моргал не один раз, а постоянно. Как раз для этого и используется бесконечный цикл while (1==1)
.
Поэтому легко сделать вывод, что этот цикл и есть аналог функции loop()
в Arduino. А то, что до него — аналог функции setup()
.
Далее начинается самое интересное. Нам нужно скомпилировать и загрузить прошивку. Однако, в зависимости от вашей операционной системы, методика будет различаться.
Mac OS X
Первым делом необходимо скачать и установить CrossPack for AVR Development. Это даст нам все необходимые инструменты. CrossPack состоит из двух частей.
- AVR Libc — a C library for GCC on AVR microcontrollers
- AVRDUDE — AVR Downloader/Uploader
Первая нам нужна для написания кода и создания файла прошивки, а вторая — для заливки прошивки в контроллер.
Проект создается в три шага.
- Запустите терминал
- Перейдите в нем в нужную папку
- Создайте проект с помощью команды
avr-project
$ mkdir ~/AVR $ cd AVR $ avr-project firstProject Using template: /usr/local/CrossPack-AVR-20130212/etc/templates/TemplateProject
В результате будет создано следующее дерево файлов.
$ tree . |-- firmware | |-- main.c | `-- Makefile `-- firstProject.xcodeproj 1 directory, 3 files
На данном этапе нас интересует содержимое файла Makefile
. В нем содержится информация о том, что вообще мы используем: какой контроллер, программатор. Это все описывается в строках с 20 по 24:
DEVICE = atmega8 CLOCK = 8000000 PROGRAMMER = #-c stk500v2 -P avrdoper OBJECTS = main.o FUSES = -U hfuse:w:0xd9:m -U lfuse:w:0x24:m
Пройдемся по строкам:
-
DEVICE
содержит в себе название контроллера, который мы программируем -
CLOCK
— частота работы -
PROGRAMMER
— используемый программатор -
OBJECTS
— какие объектные файлы будут сгененрированы -
FUSES
— конфигурация fuse-битов в микроконтроллере
Это автосгенерированный make-файл, поэтому нам необходимо вручную его подправить. Править будем строку DEVICE
у нас же микроконтроллер attiny84
и строку FUSES
. А вот с ней все сложнее. Fuse-биты, или просто «фьюзы» — два (иногда три) особых байта, в которых содержится фундаментальая конфигурация работы контроллера. Очень важно правильно их задать.
Внимание! Задание неверных fuse-битов может привезти к тому, что микроконтроллер перестанет работать и вернуть его к нормальной жизни может быть либо очень сложно либо невозможно! Воспользеумся сайтом AVR Fuse Calcuator.
Сначала из выпадающего списка выберем нужный нам контроллер (ATtiny84).
И затем укажем необходимые опции, которые нам нужны. Сейчас для нас важны 2 вещи: сохранение возможности прошивать контроллер через SPI и сохранение его работоспособности без внешнего резонатора, поэтому выбираем соответствующие пункты, а остальные оставляем по умолчанию.
Видим, как поменялись сгенерированные значения.
Затем указать имя, расположение и то, что мы хотим использовать С (GCC
).
Третий шаг — настройка отладчика.
На этом все, проект готов к использованию. Теперь необходимо написать и сохранить исходник, который мы уже обсудили.
В результате общий вид среды разработки выглядит вот так:
В качестве Platform
выбираем STK500
, а в Port
— Auto
. Затем нажимаем Connect.
Если все правильно, то в открывшемся окне выбираем вкладку Main
и нажимаем в ней на кнопку Read Signature
.
Строка Reading signature from device .. 0x1E, 0x93, 0x0C .. OK!
говорит о том, что все хорошо и сигнатура успешно прочиталась. Сигнатура — это своего рода позывной микроконтроллера, которым он сообщает собственную модель.
Это окно нельзя закрывать, иначе соединение с программатором будет потеряно. Просто сверните его.
Теперь нажмем Build → Build
. Это заставит программу скомпилироваться. Прошьем контроллер с помощью кнопки Write Flash Memory Using Current Settings
— это заставит скомпилированную программу загрузиться в память микроконтроллера.
Заключение
Мы собрали простейшее устройство мигалку, но сделали это на низком уровне. С использованием программатора и «продвинутой» среды разработки, а не Arduino.
Разобравшись в премудростях программирования микроконтроллеров на чистом «Си», вы сможете выжимать из них максимум возможности, затрачивая при этом минимум места и денег.
Современное радиолюбительство невозможно представить без микроконтроллеров, и это очевидно. В последние десятилетия микроконтроллеры различных производителей стали широко распространены в разных сферах деятельности человека. Нередко их можно встретить в самых неожиданных устройствах и конструкциях. Мы с вами являемся свидетелями компьютеризации и автоматизации окружающих нас процессов. Истина такова, что без знания основ программирования создавать современные конкурентоспособные устройства стало практически невозможно…
Содержание / Contents
Если вы читаете эту статью, вероятно у вас возникло желание понять, как работают микроконтроллеры, и скорее всего появились вопросы: 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.
↑ 3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?
Используем датагорский кит — программатор Project-005 «D-AVR910». Кроме этого, нужно будет приобрести макетные платы, блок питания с выходным напряжением 5 Вольт. Можно в качестве БП с малыми пульсациями использовать наш кит Project-006 «POWER FILTER», применив стабилитрон на 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 Studio 4, можно посмотреть на видеоролике от Александра Писанца
Камрад, рассмотри датагорские рекомендации
🌻 Купон до 1000₽ для новичка на Aliexpress
Никогда не затаривался у китайцев? Пришло время начать! Камрад, регистрируйся на Али по нашей ссылке. Ты получишь скидочный купон на первый заказ. Не тяни, условия акции меняются.
🌼 Полезные и проверенные железяки, можно брать
Куплено и опробовано читателями или в лаборатории редакции.
Звукопрозрачная ткань для динамиков Клеммники для АС на любой вкус Красивые саморезы под шестигранник для АС, разные размеры Двухполосный фильтр для АС Бонки — гайки для запрессовки, вклеивания. Разные размеры
Читательское голосование
Статью одобрили 69 читателей.
Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
Поделись с друзьями!
Связанные материалы
Микроконтроллеры AVR семейства Classic фирмы ATMEL. Евстифеев А. В…. Книга представляет собой справочное издание по применению микроконтроллеров AVR семейства Classic… Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, Евстифеев А.В…. Издательство: Додэка XXI [М.], 560 стр. 2005 г. Книга посвящена вопросам практического применения… Програмирование в AVR Studio 5 с самого начала. Часть 1… Каждый человек, который только начинает осваивать программирование микроконтроллеров, да и вообще… PIC микроконтроллеры. Все, что вам необходимо знать. Сид Катцен… PIC микроконтроллеры. Все, что вам необходимо знать. Сид Катцен пер. с англ. Евстифеева А. В. — М.:… Микроконтроллеры AVR в радиолюбительской практике. А. В. Белов… А. В. Белов Микроконтроллеры AVR в радиолюбительской практике Данная книга представляет собой… Разработка встроенных систем с помощью микроконтроллеров PIС. Уилмсхерст Т…. Разработка встроенных систем с помощью микроконтроллеров PIС. Уилмсхерст Т. Год издания: 2008… Рачев Д. Вопросы любительского высококачественного звуковоспроизведения…. Рачев Д. Вопросы любительского высококачественного звуковоспроизведения. – Л.: Энергоиздат, 1982. -… Microchip проглотила Atmel. Официально… Привет, дрУги! Не удивляйтесь, зайдя сегодня на официальную страницу atmel.com и увидя красенький… Применение микроконтроллеров AVR. Схемы, алгоритмы, программы… Какой микроконтроллер выбрать? Где найти его описание? Где взять программу, обеспечивающую… Радиолюбительские конструкции на PIC микроконтроллерах, Кн.3, Н.И. Заец… Радиолюбительские конструкции на PIC микроконтроллерах, Кн.3 Автор: Н.И. Заец Третья книга…Грызем микроконтроллеры. Урок заключительный. Прошивка…. Ну вот, писать программы для микроконтроллеров мы научились. Работоспособность прошивки тоже… Сборка и программирование мобильных роботов в домашних условиях. Жимарши Ф…. Сборка и программирование мобильных роботов в домашних условиях. Фредерик Жимарши. Издательство: НТ…
Общаемся по статье 💬
Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги
Комментарии, вопросы, ответы, дополнения, отзывы
Информация Вы не можете участвовать в комментировании. Вероятные причины: — Администратор остановил комментирование этой статьи. — Вы не авторизовались на сайте. Войдите с паролем. — Вы не зарегистрированы у нас. Зарегистрируйтесь. — Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.
ли со статьей или есть что добавить?