Микроконтроллер avr – AVR микроконтроллеры: популярное семейство

Содержание

AVR микроконтроллеры: популярное семейство

Семейство AVR – включает в себя 8 битные микроконтроллеры для широкого спектра задач. Для сложных проектов с большим количеством входов/выходов вам предоставлены микроконтроллеры AVR семейства Mega и AVR xmega, которые выпускаются в корпусах от 44 до 100 выводов и имеют до 1024 кб Flash памяти, а скорость их работы – до 32 миллионов операций в секунду. Практически все модели имеют возможность генерировать ШИМ, встроенный АЦП и ЦАП.

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

Интересно: для прошивки нужен программатор, один из самых распространённых – это AVRISP MKII, который вы легко можете сделать из своей Arduino.

Популярность семейства АВР поддерживается на высоком уровне уже много лет, в последние 10 лет интерес к ним подогревает проект Arduino – плата для простого входа в мир цифровой электроники.

Сферы применения различных Tiny, Mega

Четко описать сферу применения микроконтроллера нельзя, ведь она безгранична, однако можно классифицировать следующим образом:

  1. Tiny AVR – самые простые в техническом плане. В них мало памяти и выводов для подключения сигналов, цена соответствующая. Однако это идеальное решение для простейших проектов, начиная от автоматики управления осветительными приборами салона автомобиля, до осциллографических пробников для ремонта электроники своими руками. Они также используются в Arduino-совместимом проекте – Digispark. Это самая маленькая версия ардуины от стороннего производителя; выполнена в формате USB-флешки.
  2. Семейство MEGA долго оставалось основным у продвинутых радиолюбителей, они мощнее и имеют больший, чем в Tiny, объём памяти и количество выводов. Это позволяет реализовывать сложные проекты, однако семейство очень широко для краткого описания. Именно они использовались в первых платах Arduino, актуальные платы оснащены, в основном, ATMEGA

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

AVR xMega или старшие микроконтроллеры

Разработчики Atmel создали AVR xMega, как более мощный МК, при этом принадлежащий к семейству AVR. Это было нужно для того, чтобы облегчить труд разработчика при переходе к более мощному семейству.

В AVR xMega есть два направления:

  • МК с напряжением питания 1.8-2.7 вольта, работают с частотой до 12 мГц, их входа устойчивы к величине напряжения в 3.3 В;
  • МК с напряжением питания 2.7-3.6 вольта уже могут работать на более высоких частотах – до 32 мГц, а вход устойчив к 5 вольтам.

Также стоит отметить: AVR xMega отлично работают в автономных системах, потому что имеют низкое энергопотребление. Для примера: при работающих таймерах и часах реального времени RTC потребляют 2 мА тока, и готовы к работе от прерывания внешнего или по переполнению таймера, а также по времени. Для выполнения целого ряда функций применяется множество 16 разрядных таймеров.

Работа с USB портом

Начнем с того, что для программирования микроконтроллера нужно использовать последовательный порт, однако на современных компьютерах COM порт часто отсутствует. Как подключить микроконтроллер к такому компьютеру? Если использовать преобразователи USB-UART, эта проблема решается очень легко. Простейший преобразователь вы можете собрать на микросхемах FT232 и Ch440, а его схема представлена ниже.

Такой преобразователь размещен на платах Arduino UNO и Aduino Nano.

Некоторые микроконтроллеры AVR имеют встроенный (аппаратный) USB:

  • ATmega8U2;
  • ATmega16U2;
  • ATmega32U2.

Такое решение нашло применение для реализации связи компьютера и Arduino mega2560 по USB, в которой микроконтроллер «понимает» только UART.

Назначение ЦАП и АЦП микроконтроллеров AVR

Цифроаналоговыми преобразователями (ЦАП) называют устройства, преобразующие сигнал единиц и нолей (цифровой) в аналоговый (плавно изменяющийся). Главные характеристики – разрядность и частота дискретизации. В АЦП преобразуется аналоговый сигнал в цифровой вид.

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

ЦАП нашёл своё применение в цифровых фильтрах, где входной сигнал проходит программную обработку и вывод через ЦАП в аналоговом виде, ниже вы видите наглядные осциллограммы. Нижний график – входной сигнал, средний – этот же сигнал, но обработанный аналоговым фильтром, а верхний – цифровой фильтр на микроконтроллере Tiny45. Фильтр нужен для формирования нужного диапазона частот сигнала, а также для формирования сигнала определенной формы.

Схема осциллографа на микроконтроллере Atmega328

Пример использования АЦП – это осциллограф на микроконтроллере. К сожалению, частоты мобильных операторов и процессора ПК отследить не удастся, а вот частоты порядка 1 мГц – легко. Он станет отличным помощником при работе с импульсными блоками питания.

А здесь расположено подробное видео этого проекта, инструкции по сборке и советы от автора:

Какую литературу читать о микроконтроллерах AVR для начинающих?

Для обучения молодых специалистов написаны горы литературы, давайте рассмотрим некоторые из них:

  1. Евстифеев А.В. «Микроконтроллеры AVR семейства Mega». В книге подробно рассмотрена архитектура микроконтроллера. Описано назначение всех регистров и таймеров, а также их режимы работы. Изучена работа интерфейсов связи с внешним миром SPI и т. д. Система команд раскрыта для понимания радиолюбителю среднего уровня. Материал книги «Микроконтроллеры avr семейства mega: руководство пользователя» поможет изучить структуру чипа и назначение каждого из его узлов, что, безусловно, важно для любого программиста микроконтроллеров.
  2. Белов А.В. – «Микроконтроллеры AVR в радиолюбительской практике». Как видно из названия, эта книга, в большей степени, посвящена практической стороне работы с микроконтроллерами. Подробно рассмотрен ставший классическим микроконтроллер ATiny2313, а также многие схемы для сборки.
  3. Хартов В.Я. «Микроконтроллеры AVR. Практикум для начинающих». Поможет разобраться в AVR studio 4, а также стартовом наборе STK Вы научитесь работать с последовательными и параллельными интерфейсами, такими как UART, I2C и SPI. Книга «Микроконтроллеры AVR. Практикум для начинающих» написана преподавателем МГТУ им. Н.Э.Баумана и используется там для изучения этой темы.

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

Среди радиолюбителей начального уровня есть только один конкурент AVR – PIC микроконтроллеры.

arduinoplus.ru

AVR микроконтроллер и его применение в компьютере

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

Содержание статьи

Что такое микроконтроллер

Прежде всего, разберемся с самим понятием  «микроконтроллер». Микроконтроллер можно определить как миниатюрный компьютер на базе одного-единственного чипа,  включающий, помимо процессора ряд вспомогательных элементов, таких, как ОЗУ, ППЗУ, таймер, и.т.д. Микроконтроллер предназначен для выполнения каких-либо заранее определенных заданий.

Проще всего сравнить микроконтроллер с персональным компьютером. Как и ПК, микроконтроллер имеет процессор, оперативную и постоянную память. Однако, в отличие от ПК, все эти элементы расположены на одном-единственном чипе.

Но означает ли это, что микроконтроллер равноценен персональному компьютеру? Разумеется, нет. ПК создан для того, чтобы выполнять задачи общего назначения. Например, вы можете использовать компьютер, для набора текста, хранения и запуска мультимедиа-файлов, серфинга в Интернет, и.т.д. Микроконтроллеры предназначены для выполнения специальных заданий, например, выключения кондиционера, когда температура в комнате опускается ниже определенного значения, или наоборот, его включения, когда температура повышается.

Существует несколько популярных семейств микроконтроллеров, которые используются для различных целей. Наиболее распространенными из них являются  семейства микроконтроллеров 8051, PIC и AVR. И о последнем семействе мы и собираемся вам рассказать подробнее.

История семейства

Семейство микроконтроллеров AVR было создано в 1996 г. корпорацией Atmel, а разработчиками архитектуры микроконтроллеров являются Alf-Egil Bogen и Vegard Wollan. Отсюда и происходит название семейства – от первых букв имен разработчиков – A и V, и первой буквы аббревиатуры RISC – типа архитектуры, на которой базируется архитектура микроконтроллера. Также эту аббревиатуру часто расшифровывают как Advanced Virtual RISC (модернизированный эффективный RISC).

Первым микроконтроллером в серии был AT90S8515, однако первым микроконтроллером, выпущенным на рынок, стал AT90S1200. Это случилось в 1997 г.

На сегодняшний день доступны 3 линейки микроконтроллеров:

  • TinyAVR – небольшой объем памяти, небольшие размеры, подходит для самых простых задач.

Внешний вид микроконтроллера TinyAVR

  • MegaAVR – наиболее распространенная линейка, имеющая большой объем встроенной памяти (до 256 КБ), множество дополнительных устройств и предназначенная для задач средней и высокой сложности.

Внешний вид микроконтроллера MegaAVR

  • XmegaAVR – используется в сложных коммерческих задачах, требующих большого объема памяти и высокой скорости.

Пример микроконтроллера XmegaAVR

Сравнительные характеристики различных линеек:

Название серииЧисло контактовОбъем флэш-памятиОсобенность
TinyAVR6-320,5 – 8 КБНебольшой размер
MegaAVR28-1004-256 КБПериферийные устройства
XmegaAVR44-10016-384 КБСистема прерываний, поддержка DMA

Особенности семейства

Прежде всего, микроконтроллеры этой серии являются быстрыми. Большинство инструкций процессор микроконтроллера выполняет за один цикл. Микроконтроллеры AVR примерно в 4 раза быстрее, чем PIC. Кроме того, они потребляют немного энергии и могут работать в 4 режимах экономии энергии.

Большинство контроллеров AVR являются 8-разрядными, хотя сейчас существует и 32-разрядная разновидность  контроллеров AVR32. Кроме того, как уже упоминалось выше, AVR принадлежат к типу RISC-микроконтроллеров. Архитектура RISC (Complex Instruction Set Computers) означает, что набор инструкций, которые может выполнять процессор устройства, является ограниченным, но, в то же время, подобная архитектура дает преимущество в скорости.  Противоположностью архитектуры RISC является архитектура CISC (Complex Instruction Set Computers).

32-разрядная разновидность контроллеров AVR32

8-битность контроллера означает, что он способен передавать и принимать 8-битные данные. Доступные регистры ввода/вывода также являются 8-битными.

Архитектура контроллера основана на регистрах. Это означает, что для хранения исходных данных операции и ее результата в контроллере используются регистры.

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

Архитектура контроллера

Всего  контроллер AVR имеет 32 8-битных регистра общего назначения.  В течение цикла процессор берет данные из двух регистров и помещает их в арифметико-логическое устройство (АЛУ), которое производит операцию над данными и помещает их в произвольный регистр. АЛУ может выполнять как арифметические, так и логические действия над операндами. Также АЛУ может выполнять и действия с одним операндом (регистром). При этом контроллер не имеет регистра-аккумулятора, в отличие от контроллеров семейства 8051 – для операций могут использоваться любые регистры, и результат операции также может быть помещен в любой регистр.

Контроллер соответствует Гарвардской вычислительной архитектуре, согласно которой компьютер имеет отдельную память для программ и данных. Поэтому в то время, пока  выполняется одна инструкция, происходит предварительное извлечение из памяти следующей инструкции.

Котроллер способен выполнять одну инструкцию за цикл. Отсюда следует, что если тактовая частота контроллера составляет 1 МГц, то его производительность составит 1 млн. оп./c. Чем выше тактовая частота контроллера, тем выше будет его скорость. Однако при выборе тактовой частоты контроллера следует соблюдать разумный компромисс между его скоростью и энергопотреблением.

Помимо флэш-памяти и процессора контроллер имеет такие устройства, как порты ввода-вывода, аналого-цифровой преобразователь, таймеры, коммуникационные интерфейсы – I2C, SPI и последовательный порт UART. Все эти устройства могут контролироваться программно.

Типовая архитектура микроконтроллеров AVR

Программы для микроконтроллера

Как уже упоминалось выше, микроконтроллер подобен ПК, а это значит, что, как и ПК, AVR также может выполнять какую-либо программу, хотя и всего одну в какой-либо момент времени.

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

Для таких элементарных задач используются наборы двоичных команд, каждая из которых имеет аналог на более доступном человеческому восприятию языке ассемблера. Поэтому наиболее распространенным способом написания программ для контроллера является написание их на языке ассемблера.

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

Заключение

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

Порекомендуйте Друзьям статью:

biosgid.ru

Поделки с микроконтроллерами AVR: примеры решений

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

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

Микроконтроллер и его предназначение

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

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

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

Микроконроллеры AVR

Ознакомимся с более распространенным и основательно устоявшимся в современном мире техники контроллером, таким как AVR. В его состав входят высокоскоростной RISC-микропроцессор, 2 вида затратной по энергии памяти (Flash-кэш проектов и кэш сведений EEPROM), эксплуатационная кэш по типу RAM, порты ввода/вывода и разнообразные удаленные сопряженные структуры.

Важно:

  • рабочая температура составляет от -55 до +125 градусов Цельсия;
  • температура хранения составляет от -60 до +150 градусов;
  • наибольшая напряженность на выводе RESET, в соответствии GND: максимально 13 В;
  • максимальное напряжение питания: 6.0 В;
  • наибольший электроток линии ввода/вывода: 40 мА;
  • максимальный ток по линии питания VCC и GND: 200 мА.

Возможности микроконтроллера AVR

Абсолютно все без исключения микроконтроллеры рода Mega обладают свойством самостоятельного кодирования, способностью менять составляющие своей памяти драйвера без посторонней помощи. Данная отличительная черта дает возможность формировать с их помощью весьма пластичные концепции, и их метод деятельности меняется лично микроконтроллером в связи с той либо иной картиной, обусловленной мероприятиями извне или изнутри.

Обещанное количество оборотов переписи кэша у микроконтроллеров AVR второго поколения равен 11 тысячам оборотов, когда стандартное количество оборотов равно 100 тысячам.

Конфигурация черт строения вводных и выводных портов у AVR заключается в следующем: целью физиологического выхода имеется три бита регулирования, а никак не два, как у известных разрядных контроллеров (Intel, Microchip, Motorola и т. д.). Это свойство позволяет исключить потребность обладать дубликатом компонентов порта в памяти с целью защиты, а также ускоряет энергоэффективность микроконтроллера в комплексе с наружными приборами, а именно, при сопутствующих электрических неполадках снаружи.

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

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

Поделки на базе микроконтроллера AVR

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

«Направлятор»

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

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

Построение схемы осуществляется на основе микроконтроллера AVR с тактированием от наружного кварцевого резонатора на 11,0598 МГц. За работу с GPS отвечает NEO-6M от U-blox. Это, хоть и устаревший, но широко известный и бюджетный модуль с довольно четкой способностью к установлению местонахождения. Сведения фокусируются на экране от Nokia 5670. Также в модели присутствуют измеритель магнитных волн HMC5883L и акселерометр ADXL335.

Измеритель магнитных волн HMC5883L

Беспроводная система оповещения с датчиком движения

Полезное устройство, включающее в себя прибор перемещения и способность отдавать, согласно радиоканалу, знак о его срабатывании. Конструкция является подвижной и заряжается с помощью аккумулятора или батареек. Для его изготовления необходимо иметь несколько радиомодулей HC-12, а также датчик движения hc-SR501.

Прибор перемещения HC-SR501 функционирует при напряжении питания от 4,5 до 20 вольт. И для оптимальной работы от LI-Ion аккумулятора следует обогнуть предохранительный светодиод на входе питания и сомкнуть доступ и вывод линейного стабилизатора 7133 (2-я и 3-я ножки). По окончанию проведения этих процедур прибор приступает к постоянной работе при напряжении от 3 до 6 вольт.

Датчик движения HC-SR501

Внимание: при работе в комплексе с радиомодулем HC-12 датчик временами ложно срабатывал. Во избежание этого необходимо снизить мощность передатчика в 2 раза (команда AT+P4).  Датчик работает на масле, и одного заряженного аккумулятора, емкостью 700мА/ч, хватит свыше, чем на год.

Минитерминал

Приспособление проявило себя замечательным ассистентом. Плата с микроконтроллером AVR нужна, как фундамент для изготовления аппарата. Из-за того, что экран объединён с контроллером непосредственно, то питание должно быть не более 3,3 вольт, так как при более высоких числах могут возникнуть неполадки в устройстве.

Преобразователь LM2577

Вам следует взять модуль преобразователя на LM2577, а основой может стать Li-Ion батарея емкостью 2500мА/ч. Выйдет дельная комплектация, отдающая постоянно 3,3 вольта во всём трудовом интервале напряжений. С целью зарядки применяйте модуль на микросхеме TP4056, который считается бюджетным и достаточно качественным. Для того чтобы иметь возможность подсоединить минитерминал к 5-ти вольтовым механизмам без опаски сжечь экран, необходимо использовать порты UART.

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

Кодирование микроконтоллеров зачастую производят в стиле ассемблера или СИ, однако, можно пользоваться и другими языками Форта или Бейсика. Таким образом, чтобы по факту начать исследование по программированию контроллера, следует быть оснащенным следующим материальным набором, включающим в себя: микроконтроллер, в количестве три штуки — к высоковостребованным и эффективным относят — ATmega8A-PU, ATtiny2313A-PU и ATtiny13A- PU.

Чтобы провести программу в микроконтроллер, нужен программатор: лучшим считают программатор USBASP, который дает напряжение в 5 Вольт, используемое в будущем. С целью зрительной оценки и заключений итогов деятельности проекта нужны ресурсы отражения данных − это светодиоды, светодиодный индуктор и экран.

Программатор USBASP 2.0

Чтобы исследовать процедуры коммуникации микроконтроллера с иными приборами, нужно числовое приспособление температуры DS18B20 и, показывающие правильное время, часы DS1307. Также важно иметь транзисторы, резисторы, кварцевые резонаторы, конденсаторы, кнопки.

С целью установки систем потребуется образцовая плата для монтажа. Чтобы соорудить конструкцию на микроконтроллере, следует воспользоваться макетной платой для сборки без пайки и комплектом перемычек к ней: образцовая плата МВ102 и соединительные перемычки к макетной плате нескольких видов — эластичные и жесткие, а также П-образной формы. Кодируют микроконтроллеры, применяя программатор USBASP.

Простейшее устройство на базе микроконтроллера AVR. Пример

Итак, ознакомившись с тем, что собой представляют микроконтроллеры AVR, и с системой их программирования, рассмотрим простейшее устройство, базисом для которого служит данный контроллер. Приведем такой пример, как драйвер низковольтных электродвигателей. Это приспособление дает возможность в одно и то же время распоряжаться двумя слабыми электрическими двигателями непрерывного тока.

Предельно возможный электроток, коим возможно загрузить программу, равен 2 А на канал, а наибольшая мощность моторов составляет 20 Вт. На плате заметна пара двухклеммных колодок с целью подсоединения электромоторов и трехклеммная колодка для подачи усиленного напряжения.

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

Заключение

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

arduinoplus.ru

Микроконтроллеры AVR

Микроконтроллеры AVR

Введение

Однокристальные микроконтроллеры находят широкие применение в самых разнообразных сферах: от измерительных приборов, фотоаппаратов и видеокамер, принтеров, сканеров и копировальных аппаратов до изделий электронных развлечений и всевозможной домашней техники.

Со времени появления первых микропроцессоров в 1970-х годах их сложность постоянно возрастала за счет появления новых аппаратных решений и добавления новых команд, предназначенных для решения новых задач. Так постепенно сложилась архитектура, получившая впоследствии название CISC (Complete Instruction Set Computers – компьютеры со сложным набором команд). В дальнейшем обозначилось и нашло активное развитие еще одно направление: архитектура RISC (Reduced Instruction Set Computers – компьютеры с сокращенным набором команд). Именно к этой архитектуре относятся микроконтроллеры AVR от компании Atmel и PIC от компании Microchip, которым посвящена эта книга.

Основное преимущество RISC-процессоров заключается в том, что они просты, выполняют ограниченный набор команд, и, как следствие, очень быстродействующие. Это позволяет снизить стоимость и сложность их программирования.

Обратной стороной RISC-архитектуры стала необходимость создания дополнительных команд на ассемблере, которые у CISC-устройств реализованы в аппаратной части. Например, вместо того, чтобы просто вызвать команду деления, которая характерна для устройств CISC, разработчику, имеющему дело с RISC-процессором, приходится применять несколько последовательных команд вычитания. Однако подобный недостаток с лихвой компенсируется ценой и скоростью работы RISC-устройств. Кроме того, если создавать программы на языке С, то подобные проблемы вообще перестают иметь какое-либо значение для разработчика, поскольку они решаются компилятором, который автоматически генерирует весь недостающий ассемблерный код.

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

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

1. Архитектура микроконтроллеров AVR и PIC

В общем, все микроконтроллеры построены по одной схеме. Система управления, состоящая из счетчика команд и схемы декодирования, выполняет считывание и декодирование команд из памяти программ, а операционное устройство отвечает за выполнение арифметических и логических операций; интерфейс ввода/вывода позволяет обмениваться данными с периферийными устройствами; и, наконец, необходимо иметь запоминающее устройство для хранения программ и данных (рис. 1.1).

Рис. 1.1. Обобщенная структура микроконтроллера

Будем рассматривать микроконтроллеры в общем, не привязываясь к какому-либо конкретному типу микроконтроллеров AVR, поэтому ниже будут рассмотрены только общие для большинства микроконтроллеров особенности архитектуры памяти, вопросы ввода/вывода, обработки прерываний, сброса и др.

В микроконтроллерах AVR память реализована по Гарвардской архитектуре, что подразумевает разделение памяти команд и данных. Это означает, что обращение к командам осуществляется независимо от доступа к данным. Преимуществом такой организации является повышение скорости доступа к памяти.

Память данных

Память данных предназначена для записи/чтения данных, используемых программами. Является энергозависимой, то есть, при отключении питания микроконтроллера все хранимые в ней данные, будут потеряны. В микроконтроллерах AVR память данных имеет более развитую структуру по сравнению с микроконтроллерами PIC, что показано на рис. 2.1.

Здесь и далее шестнадцатеричные числа будут представлены в форме, принятой в языке С: с префиксом 0х.

Рис. 2.1. Структура памяти данных в микроконтроллерах AVR и PIC

Область статической памяти SRAM (Static Random Access Memory) обозначена на рис. 2.1 пунктиром, поскольку используется не всеми микроконтроллерами AVR (это относится как к внутренней, так и к внешней SRAM). Ее начальный адрес – 0x060, а верхний адрес – разный в различных устройствах.

В некоторых микроконтроллерах AVR можно увеличивать пространство памяти SRAM посредством подключения внешних блоков памяти вплоть до 64 Кбайт, однако для этого приходится пожертвовать портами А и С, которые в этом случае применяются для передачи данных и адресов.

Регистры общего назначения

Область регистров общего назначения (рабочих регистров) предназначена для временного хранения переменных и указателей, используемых процессором для выполнения программ. В микроконтроллерах AVR она состоит из 32 восьмиразрядных регистров (диапазон адресов 0x000 – 0x01F). В микроконтроллерах PIC регистры общего назначения также восьмиразрядные, однако их количество и диапазон адресов зависят от конкретного типа устройства.

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

Регистры специальных функций микроконтроллеров PIC

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

Область ввода/вывода микроконтроллеров AVR

Область ввода/вывода микроконтроллеров AVR содержит 64 регистра, используемых для управления или хранения данных периферийных устройств. К каждому из этих регистров можно обращаться по адресу ввода/вывода (начиная с 0x000) или по адресу SRAM (в этом случае к адресу ввода/вывода следует прибавить 0x020). В программах на языке С обычно используются условные имена регистров ввода/вывода, а адреса имеют значение только для программ на языке ассемблера.

Имена, адреса ввода/вывода и SRAM, а также краткое описание регистров из области ввода/вывода микроконтроллеров AVR представлены в табл. 2.1. При этом следует отметить, что в различных моделях микроконтроллеров некоторые из перечисленных регистров не используются, а адреса, не указанные в табл. 2.1, зарезервированы компанией Atmel для использования в будущем.

Таблица 2.1. Описание регистров из области ввода/вывода

mirznanii.com

Урок 1. Что такое AVR микроконтроллер? — Меандр — занимательная электроника

Добро пожаловать в современный и увлекательный мир микроконтроллеров AVR!

Вопрос: Что такое микроконтроллер?
Ответ: Микроконтроллер это своего рода компьютер, который используется в различных электронных устройствах. Микроконтроллер работает по программе, заложенной в него. Но в отличие от компьютера в микроконтроллере ядро, память и периферийные устройства заключены в один кристалл. В микроконтроллере имеются различные периферийные устройства, это: порты ввода\вывода или I\O (input\output), таймеры, интерфейсы связи и т.д.
Микроконтроллер имеет три вида памяти, это RAM (оперативная память), FlashROM (Flash память), EEPROM (энергонезависимая память).

Вопрос: Что такое AVR микроконтроллер?
Ответ: AVR микроконтроллер – это 8-битный микроконтроллер с RISC архитектурой и различными периферийными устройствами. Есть огромное количество разных AVR микроконтроллеров в DIP, SOIC, TQFP и PLCC корпусах.
В AVR микроконтроллерах есть область (4 байта) которую называют Fuse Bits (фьюз биты), в которой хранится конфигурация микроконтроллера. У каждого AVR микроконтроллера есть свой набор Fuse Bits.
Большинство МК имеют SPI интерфейс связи, по которому можно программировать (прошивать) микроконтроллер.

 

Вопрос: Какие есть компиляторы для AVR микроконтроллера?
Ответ:  Для AVR микроконтроллеров существует множество компиляторов, например:
BASCOM-AVR (Basic компилятор), Code Vision AVR (C (си) компилятор), WinAVR (компилятор C (си) и ассемблера) и т.д.
В данном курсе по микроконтроллерам AVR будет использоваться компилятор BASCOM-AVR.

Вопрос: Как запрограммировать (прошить) AVR микроконтроллер?
Ответ: Для того чтобы запрограммировать (прошить) микроконтроллер, необходим программатор. Программатор это устройство, которое связывает микроконтроллер и компьютер вместе. Компьютер с помощью специальной программы прошьет микроконтроллер указанной программой (прошивкой).

Вообще, для начала рекомендую приобрести AVR микроконтроллер Attiny13. Так как этот AVR микроконтроллер является самым дешёвым и будет использоваться для изучения.

Автор: Яковлев Александр Вячеславович (г.Витебск, Беларусь)

Возможно, вам это будет интересно:

meandr.org

AVR для начинающих.Уроки программирования AVR.

Урок 0.

Итак, сегодня мы открываем цикл уроков программирования микроконтроллеров семейства AVR.

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

  1. Что такое микроконтроллер?
  2. Где применяются микроконтроллеры?

Вступление.

Микроконтроллеры везде. В телефонах, стиральных машинах, «умных домах»,станках на заводе а так же ещё в бесчисленном множестве технических устройств. Их повсеместное применение позволяет заменить сложные аналоговые схемы, более сжатыми цифровыми.

Так что же такое, микроконтроллер?

Микроконтроллер (Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами.Можно представить его в виде простейшего компьютера, способного взаимодействовать с внешними устройствами.Например, открывать и закрывать транзисторы, получать данные с датчиков температуры, выводить данные на lcd экраны и т. д. . К тому же, микроконтроллер может производить различную обработку входных данных, как и Ваш персональный компьютер.

То есть, микроконтроллеры открывают нам практически безграничные возможности управления какими либо устройствами, благодаря наличию портов I/0(портов ввода(input)/вывода(output)), а так же возможности их программирования.

Где используются микроконтроллеры?

  1. Бытовая техника(Стиральные машины, микроволновые печи и.т.д.).
  2. Мобильная техника(Роботы, робототехнические системы, средства связи и др.).
  3. Промышленное оборудование(Системы управления станками).
  4. Вычислительная техника(Материнские платы,системы управления периферийными устройствами).
  5. Развлекательная техника(Детские игрушки, украшения).
  6. Транспорт(Системы управления двигателем автомобиля, системы безопасности)

Это далеко не полный список сфер применения микроконтроллеров. Часто, очень выгодно заменить набор управляющих микросхем одним микроконтроллером, ввиду упрощения производства, снижения энергопотребления.

Начало знакомства с AVR

AVR — семейство микроконтроллеров фирмы Atmel.Обладают достаточной производительностью для большинства любительских устройств. Так же находят широкое применение в промышленности.

Для их программирования используются языки AVR C и AVR Assembler.

Начать работу с ними достаточно просто. Существует несколько способов приступить к разработке устройств на базе микроконтроллеров AVR, о них мы поговорим в следующей части.

Спасибо за внимание!

Администрация сайта MKPROG.RU.

Другие уроки цикла.

mkprog.ru

мир электроники — Строение и характеристики AVR микроконтроллеров

Как уже было сказано в предисловии, микроконтроллеры AVR имеют гарвардскую архитектуру (главная характеристика такой архитектуры является то что память программ и оперативная память, как и шины доступа к ним, разделены для повышения скорости выполнения команд : пока одна команда выполняется, следующая извлекается из памяти программ) с RISC процессором, с быстродействием в 1.0 MIPS. Во всех микроконтроллерах, независимо от их модели и компоновки, одно и тоже центральное процессорное устройство (процессор/ядро). Единое ядро, делает написанную на любом языке программу более универсальной и при желании можно заменить в любом из проектов, скажем, более дорогой контроллер на другой по дешевле, с минимальными изменениями в коде.

RISC (Reduced Instruction Set Computer) – процессор с набором простых ассемблерных команд (прибавить, отнять, сдвиг влево/вправо, «логическое И”, и т.д.), все команды имеют фиксированную длину, в составе процессора находятся большое количество регистров общего назначения, и т.д. Чтобы, к примеру, расчитать какое-нибудь среднее математическое уровнение, процессору придется выполнить несколько простых ассемблерных команд, в отличии от CISC-процессора у которого есть команды «на все случаи жизни». Но у AVR не совсем RISC-процессор, поскольку не все ассемблерные команды имеют фиксированный формат. Большинство имеют 16-разрядный формат, остальные 32-разрядные. Это означает что каждая команда занимает в памяти программ 16 или 32 бита. Кстати, нефиксированная длина ассемблерных команд и делает его процессор: Advanced Virtual RISC-процессором (AVR).

MIPS (Million Instructions Per Second) – AVR микроконтроллеры способны выполнять (приблизительно) миллион команд на частоте 1.0 МГц, или проще говоря, большинство ассемблерных команд выполняются за один период тактирующего сигнала.

Мозгами AVR микроконтроллера является его центральное процессорное устройство (процессор/ядро).

 

Некоторые составляющие процессора :

 

Арифметико-логическое устройство (Arithmetic Logic Unit)

Счетчик команд (Program counter)

Указатель стека (Stack Pointer)

  • Регистр состояния (Status Register)
  • Память программ (Flash Program memory)
  • Память данных (Data memory)

 

Регистры общего назначения (General Purpose Registers)

Регистры периферийных устройств (I/O Registers)

Оперативная память (SRAM memory)

Система тактирования (Clock System). Данную систему можно сравнить с сердечно-сосудистой системой

Модуль обработки прерываний (Interrupt Unit)

 

Периферийные устройства, перечислю некоторые из них :

 

Порты ввода/вывода

EEPROM память

USB (только в xMega), USART, I2C, SPI, JTAG интерфейсы

Сторожевой таймер, Таймер/Счетчик (с функцией ШИМ генератора, захвата/сравнения и т.д.)

АЦП, ЦАП (только в xMega), Аналоговый компаратор

Модули внешнего прерывания (External Interrupts)

 

Набор периферийных устройств в различных семействах (Tiny, Mega и xMega) и различных микроконтроллеров данных семейств отличается. Есть микроконтроллеры набитые «по самое немагу” различными периферийными устройствами, но также, для разработок критичных к стоимости, имеются и микроконтроллеры с малым (нужным) набором периферии.

 

Одним из плюсов AVR микроконтроллеров является возможность использования периферийных устройств в различных совместных режимах работы, что очень часто упрощает задачу разработчика. Также в AVR встроенна система сброса и отслеживания уровня питаниющего напряжения (System Control and Reset), обеспечивающая нормальный старт микроконтроллера и в случае необходимости, надежное завершение работы.

 

Регистры управления/состояния периферийных устройств находятся в области памяти данных (Data memory), между регистрами общего назначения и оперативной памятью, что обеспечивает высокое быстродействие в работе с периферией. Разработчик, естественно, имеет полный доступ к данным регистрам (I/O Registers).

 

Что необходимо чтобы заработал микроконтроллер?

 

Здесь вырисовываются два базовых направления :

  • написать программу (запрограммировать). Для того чтобы написать программу/алгоритм по которому будет действовать микроконтроллер вам понадобится интегрированная среда разработки для AVR микроконтроллеров, в состав которой входит редактор кода/текста, компилятор, компоновщик (linker) и пр. утилиты.
  • схемотехника. Одной лишь программы недостаточно чтобы микроконтроллер заработал, ему также требуется минимальный обвес (набор внешних электронных устройств), для обеспечения микроконтроллера напряжением питания и тактирующим сигналом, чтобы как минимум заработало ядро микроконтроллера.

На следующем рисунке показан «классический” обвес микроконтроллера, необходимый для нормальной работы.

На рисунке приведены минимальные схемотехнические требования к микроконтроллеру ATmega16. При данной схеме включения, начинает работать ядро AVR микроконтроллера, можно использовать все порты ввода/вывода и пр. периферийные устройства. Короче говоря микроконтроллер находится в полной боевой готовности. Чтобы, например, начать использовать АЦП или Аналоговый компаратор следует, для начало, программно настроить периферийное устройство при помощи его регистров управления/контроля, для установки нужного вам режима работы и т.п., а дальше подать исследуемые сигналы на входы соответствующего периферийного устройства.

 

— Кварц и конденсаторы C1,C2 (по 22пФ) обеспечивают микроконтроллер и все его периферийные устройства качественным тактирующим сигналом (максимальная частота – 16.0МГц).

Резистор R1 (10К), обеспечивает высокий уровень на входе RESET, необходимый для стабильной работы микроконтроллера. Если, во время работы микроконтроллера, напряжение на этом пине упадет ниже определенного уровня, то произойдет сброс микроконтроллера и возможно нарушение работы задуманного алгоритма.

— ISP connector используется для внутрисхемного программирования, тоесть необходим для записи написанной вами программы в память микроконтроллера прямо на плате (не вынимая микроконтроллер из устройства).

— Дроссель L1 и конденсаторы C3,C4 обеспечивают напряжением питания аналоговые периферийные устройства а также некоторые регистры портов ввода/вывода. Если у микроконтроллера отсутствует аналоговая часть, соответственно, отсутствуют и пины аналогового питания, как результат – данные компоненты не нужны.

— Конденсатор C5 обеспечивает развязку межды пином питания и землей микроконтроллера. Земли микроконтроллера следует соединить вместе (GND и AGND).

 

Это, так сказать, классическое подключение микроконтроллера, в реальности, конечно-же все это может немного отличаться…

 

Ну, и это еще не все: чтобы микроконтроллер заработал в него необходимо «засунуть» программу. Сделать это можно только лишь при помощи программатора.

 

Программатор это устройство для записи откомпилированной программы (прошивки) в память микроконтроллера.
Самый часто-используемый метод записи прошивки в память микроконтроллера является метод ISP (In-System Programming), для чего и нужен ISP connector. Также весьма популярными методами записи прошивки в память микроконтроллера являются HVP (High-Voltage Programming) и запись прошивки через JTAG-интерфейс.

 

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


Как видно из приведенного рисунка, чтобы запустить AVR микроконтроллер требуется?

* во первых:  подать напряжение питания (плюс развязывающий конденсатор – на всякий случай-хуже не будет)
*  во вторых – удерживать «высокий уровень” на пине RESET (при помощи подтягивающего резистора), чтобы избежать спонтанных сбросов микроконтроллера.

 

В общем-то даже такая упрощенная схема включения микроконтроллера вполне работоспособна, но она далека от идеала: последствия такой упрощенной обвязки микроконтроллера следующие : во первых, поскольку микроконтроллер был лишен внешнего тактирования, ему следует указать что тактирование будет происходить от внутреннего RC-генератора, установив соответствующие фьюз биты (своего рода предельные эксплуатационные параметры микроконтроллера).
Максимальная частота внутреннего генератора равна 8.0 МГц, а это означает что микроконтроллер не сможет работать на своей максимальной частоте (производительности).
Во вторых- аналоговая часть микроконтроллера (а также некоторые регистры портов ввода/вывода), лишены источника питания, что исключает их использование.
В третьих- отсутствует разъем для внутрисхемного программирования, поэтому чтобы записать прошивку в память микроконтроллера придется вынимать его из устройства, где-то производить запись, после чего возвращать его на место. Как вы сами понимаете это не очень удобно (вынимать/вставлять, припаивать/отпаивать), и может привести к повреждению как самого микроконтроллера (могут поломаться ножки, перегреться от пайки и т.п.), так и близлежащих устройств – разъем, дорожки на плате и т.п.

 

radio-uchebnik.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *