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

Введение. Зачем нужен микроконтроллер. Что такое AVR

Предположим вам поставили задачу — заставить мигать светодиод. Рассуждаем, как решить эту задачу:

Вариант 1 —  самое простое, взять тумблер/кнопку, рядом посадить раба, который тумблером будет включать/выключать светодиод. Обычно в России большинство задач именно так и решается. А что ведь мигает))) Вариант 2 — собрать мультивибратор. Уже интереснее.

Для того чтобы помигать, одним светодиодом вполне даже хорошее решение. К тому же просто, дешево, надежно.

Вариант 3 — собрать на микроконтроллере. Дороже чем собрать мультивибратор, но на мой взгляд проще. Написал программу, прошил, получил результат. Без настройки.

Конечно это идеальный случай.

Теперь усложним задачу. Например, 5 светодиодов и 5 вариантов их мигания (изменяется скорость и порядок их мигания). Первый вариант сразу отпадает, способом 2 сделать можно, но размеры устройства резко увеличатся.

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

Поэтому всегда оценивайте трудозатраты, время и финансовые затраты.

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

Одна из разновидностей микроконтроллеры AVR фирмы Atmel.

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

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

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

На рисунке показана HEX прошивка, если ее открыть при помощи блокнота.

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

Кроме того, существует несколько программ позволяющих писать на Си. Например бесплатная, фирменная AVR Studio, CodeVision, WinAVR и т.п.

Несмотря на то, что я пишу в CodeVision, очень активно использую AVR Studio как отладчик.

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

Источник: http://avr-start.ru/?p=23

Микроконтроллеры Atmel AVR – Часть 1

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

Причем львиная доля выпускаемых чипов приходится на специализирован­ные контроллеры: например, для управления USB-интерфейсом, или ЖК-дисплеями.

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

Из семейств универсальных 8-разрядных микроконтроллеров, так сказать, «на все случаи жизни», наиболее распространены три: контроллеры класси­ческой архитектуры х51 (первый контроллер семейства 8051 был выпущен фирмой Intel еще в середине 1980-х), контроллеры PIC фирмы Microchip (идеально подходят для проектирования несложных устройств, особенно предназначенных для тиражирования), и рассматриваемые нами Atmel AVR.

Заметки на полях

в 1995 г. два студента Норвежского университета науки и технологий в г. Трон­хейме, Альф Боген и Вегард Воллен, выдвинули идею 8-разрядного RISC-ядра, которую предложили руководству Atmel. Имена разработчиков вошли в название архитектуры AVR: Alf + Vegard + RISC.

В Atmel идея настолько по­нравилась, что в 1996 г. был основан исследовательский центр в Тронхейме, и уже в конце того же года был начат выпуск первого опытного микрокон­троллера новой серии AVR под названием AT90S1200. Во второй половине 1997 г.

корпорация Atmel приступила к серийному производству семейства AVR.

Почему AVR?

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

В результате для AVR не существует понятия машинного цикла: большинство команд, как мы говорили, выполняется за один такт (для срав­нения отметим, что пользующиеся большой популярностью МК семейства PIC выполняют команду за 4 такта).

Правда, при этом пришлось немного пожертвовать простотой системы ко­манд, есть некоторые сложности и в области операций с битами.

Тем не ме­нее, это не приводит к заметным трудностям при изучении AVR-ассемблера: наоборот, программы получаются короче и больше напоминают программу на языке высокого уровня (отметим, что AVR проектировались специально в расчете на максимальное приближение к структуре языка С).

Другое огромное преимущество AVR-архитектуры — наличие 32 оператив­ных регистров, не во всем равноправных, но позволяющих в простейших случаях обходиться без обращения к оперативной памяти и, что еще важнее, без использования стека — главного источника ошибок у начинающих про­граммистов (мало того, в младщих моделях AVR стек даже недоступен для программиста). Для AVR не существует понятия «аккумулятора», ключевого для ряда других семейств. Это еще больше приближает структуру ассемб­лерных программ для AVR к программам на языке высокого уровня, где опе­раторы работают не с ячейками памяти и регистрами, а с абстрактными пе­ременными и константами.

Но это, конечно, не значит, что AVR — однозначно лучшее в мире семейство МК.

У него есть и ряд недостатков (например, несовершенная система защи­ты энергонезависимой памяти данных— EEPROM, некоторые вопросы с помехоустойчивостью, излишние сложности в системе команд и структуре программ и т. п.).

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

Classic, Mega и Tiny

Линейка универсальных контроллеров AVR общего назначения делится на семейства — Classic, Mega и Tiny (есть и новейшее семейство Xmega, но оно представляет весьма «навороченные» приборы не для наших задач).

МК се­мейства Classic (они именовались, как АТ908) ныне уже не производятся, однако все еще распространены, так как они задержа­лись на складах торгующих фирм, и, к тому же, для них наработано значи­тельное количество программ.

Чтобы пользователям не пришлось переписы­вать все ПО, фирма Atmel позаботилась о преемственности — большинство МК семейства Classic имеет функциональные аналоги в семействе Mega, на­пример, AT90S8515— ATmega8515, AT90S8535— ATmega8535 и т.п. (только AT90S2313 имеет аналог в семействе Tiny — ATtiny2313).

Полная совместимость обеспечивается специальным установочным битом (из набора т. н. Fuse-битов), при программировании которого Mega-процессор начинает функционировать, как Classic (подробнее об этом рассказано в гла­ве 19).

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

Семейство Tiny (что в буквальном переводе означает «крохотный») предна; значено для наиболее простых устройств.

Часть МК этого семейства не имеет возможности программирования по последовательному интерфейсу, и пото­му мы не буд^м их рассматривать в этой книге, за исключением ATtiny2313 (это не значит, что остальных Tiny следует избегать — среди них есть очень удобные и функциональные микросхемы, нередко вообще не имеющие ана­логов).

У этого МК отсутствует бит совместимости с «классическим» анало­гом AT90S2313, одним из самых простых и удобных контроллеров Atmel, но при внимательном рассмотрении оказывается, что они и без такого бита со­вместимы «снизу вверх»: программы для «классического» 2313 полностью подходят и для Tiny2313 (см. следующую главу).

Структура МК AVR

Общая структура внутреннего устройства МК AVR приведена на рис. 18.9.

На этой схеме показаны все основные компоненты AVR (за исключением некоторых специализированных); в отдельных моделях некоторые компо­ненты могут отсутствовать или различаться по характеристикам, неизменным остается только общее 8-разрядное процессорное ядро (GPU, General Processing Unit). Кратко рассмотрим наиболее важные компоненты, боль­шинство из которых мы будем рассматривать в дальнейшем подробнее.

Начнем с памяти. В структуре AVR имеются три разновидности памяти: flash-память программ, ОЗУ (SRAM) для временного хранения данных, и энергонезависимая память (EEPROM) для долговременного хранения кон­стант и данных. Рассмотрим их по отдельности.

Память программ

Встроенная flash-память программ в AVR-контроллерах имеет объем от 1 кбайта у ATtinyl 1 до 256 кбайт у ATmega2560. Первое число в наименова­нии модели содержит величину этой памяти в килобайтах, из ряда: 1, 2, 4, 8, 16, 32, 64, 128 и 256 кбайт. Так, ATtiny2313 имеет 2 кбайта памяти, а ATmega8535 — 8 кбайт.

С точки зрения программиста память программ можно считать построенной из отдельных ячеек— слов по два байта каждое. Устройство памяти про­грамм (и только этой памяти!) по двухбайтовым словам— очень важный момент, который нужно твердо усвоить. Такая организация обусловлена тем.

что любая команда в AVR имеет длину ровно 2 байта.

Исключение состав­ляют команды jmp, call и некоторые другие (например, ids), которые опери­руют с адресами 16-разрядной и более длины, длина этих команд составляет 4 байта, и они используются лишь в моделях с памятью программ более 8 кбайт, поэтому в этой книге вы их не встретите. Во всех остальных случаях счетчик команд сдвигается при выполнении очередной команды на 2 байта (одно слово), поэтому необходимую емкость памяти легко подсчитать, зная просто число используемых команд.

По умолчанию все контроллеры AVR всегда начинают выполнение програм­мы с адреса $0000^. Если в программе не используются прерывания, то с это­го адреса может начинаться прикладная программа, как мы увидим далее. В противном случае по этому адресу располагается т. н. таблица векторов прерываний, подробнее о которой мы будем говорить в главе 19.

Память данных (ОЗУ, 3RAM)

в отличие от памяти программ, адресное пространство памяти данных адре­суется побайтно (а не пословно). Адресация полностью линейная, без какого-то деления на страницы, сегменты или банки, как это принято в некоторых других системах. Исключая некоторые младшие модели Tiny, объем встро­енной SRAM колеблется от 128 байт (например, у ATtiny2313) до 4—8 кбайт у старших моделей Mega.

Адресное пространство статической памяти данных (SRAM) условно делится на несколько областей, показанных на рис. 18.10. К собственно встроенной SRAM относится лишь затемненная часть, до нее по порядку адресов распо­ложено адресное пространство регистров, где первые 32 байта занимает мас­сив регистров общего назначения (РОН), еще 64 — регистров ввода-вывода (РВВ).

Для некоторых моделей Mega (ATmega8515, ATmegal62, ATmegal28, AT-mega2560 и др.) предусмотрена возможность подключения внешней памяти объемом до 64 кбайт.

Отметим, что адресные пространства РОН и РВВ не отнимают пространство у ОЗУ данньпс: так, если в конкретной модели МК имеется 512 байт SRAM, а пространство регистров занимает первые 96 байт (до адреса $60), то адреса SRAM займут адресное пространство от $0060 до $025F (то есть от 96 до 607 ячейки включительно). Конец встроенной памяти данных обозначается константой ramend. Следует учесть, что последние ад­реса SRAM, как минимум, на четыре—шесть ячеек от конца (в зависимости от количества вложенных вызовов процедур, для надежности лучше принять это число равным десяти или даже более) занимать данными не следует, так как они при использовании подпрограмм и прерываний заняты под стек.

Рис. 18.10. Адресное пространство статической памяти данных (SRAM) микроконтроллеров AVR

Операции чтения/записи в память одинаково работают с любыми адресами из доступного пространства, и потому при работе с SRAM нужно быть вни­мательным: вместо записи в память вы легко можете «попасть» в какой-нибудь регистр.

Для обращения к РОН, как к ячейкам памяти, можно в каче­стве адреса подставлять номер регистра, а вот при обращении к РВВ таким же способом к номеру последнего нужно прибавлять $20.

Следует также помнить, что по умолчанию при включении питания все РВВ устанавливают­ся в нулевое состояние во всех битах (единичные исключения все же имеют­ся, поэтому в критичных случаях надо смотреть документацию), а вот РОН и ячейки SRAM могут принимать произвольные значения.

Энергонезависимая память данных (EEPROM)

Все модели МК AVR (кроме снятого с производства ATtinyl 1) имеют встро­енную EEPROM для хранения констант и данных при отключении питания. В разных моделях объем ее варьируется от 64 байт (ATtinylх) до 4 кбайт (старшие модели Mega). Число циклрв перепрограммирования EEPROM мо­жет достигать 100 тыс.

Напомним, что EEPROM отличается от flash-памяти возможностью выбо­рочного программирования побайтно (в принципе, даже побитно, но эта воз­можность скрыта от пользователя).

Чтение из EEPROM осуществляется с такой же скоростью, как и чтение из РОН — в течение одного машинного цикла (правда, на практике оно растягивается на 4 цикла, но программисту следить за этим специально не требуется).

А вот запись в EEPROM протекает значительно медленнее, и к тому же с не точно определенной скоростью: цикл записи одного байта может занимать от 2 до 4 и более миллисекунд.

Процесс записи регулируется встроенным RC-генератором, частота которого нестабильна (при низком напряжении питания можно ожидать, что время записи будет больше). За такое время при обычных тактовых частотах МК успевает выполнить несколь^со тысяч команд, потому программирование процедуры записи требует аккуратности: например, нужно следить, чтобы в момент записи не «вклинилось» прерывание (подробнее об этом далее).

Главная же сложность при использовании EEPROM — то, что при недоста­точно быстром снижении напряжения питания в момент выключения содер­жимое ее может быть испорчено.

Обусловлено это тем, что при снижении напряжения питания ниже некоторого порога (ниже порога стабильной рабо­ты, но недостаточного для полного выключения) и вследствие его дребезга МК начинает выполнять произвольные команды, в том числе может выпол­нить и процедуру записи в EEPROM, если она имеется в программе. Если учесть, что типовая команда МК AVR выполняется за десятые доли микросе­кунды, то ясно, что никакой реальный источник питания не может обеспе­чить снижение напряжения до нуля за нужное время. По опыту автора при питании от обычного стабилизатора типа LM7805 с рекомендованными зна­чениями емкости конденсаторов на входе и на выходе содержимое EEPROM будет испорчено примерно в половине случаев.

Этой проблемы не должно существовать, если запись констант в EEPROM производится при программировании МК, а процедура записи в программе отсутствует.

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

Встроенный детектор падения на­пряжения (Brown-Out Detection, BOD), имеющийся практически во всех моделях Tiny и Mega, обычно с этим не справляется. Наиболее кардинальной из таких мер является установка внешнего монитора питания, удерживающе­го МК при снижении напряжения питания ниже пороговой величины в со­стоянии сброса (см. главу 21).

Источник: http://nauchebe.net/2010/06/mikrokontrollery-atmel-avr-chast-1/

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

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

Вопрос: Что такое микроконтроллер?

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

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

В микроконтроллере имеются различные периферийные устройства, это: порты вводавывода или IO (inputoutput), таймеры, интерфейсы связи и т.д.

Микроконтроллер имеет три вида памяти, это RAM (оперативная память), FlashROM (Flash память), EEPROM (энергонезависимая память).

Вопрос: Что такое AVR микроконтроллер?

Ответ: AVR микроконтроллер – это 8-битный микроконтроллер с RISC архитектурой и различными периферийными устройствами. Есть огромное количество разных AVR микроконтроллеров в DIP, SOIC, TQFP и PLCC корпусах.

В AVR микроконтроллерах есть область (4 байта) которую называют Fuse Bits (фьюз биты), в которой хранится конфигурация микроконтроллера. У каждого AVR микроконтроллера есть свой набор Fuse Bits. Более подробно о фьюзах вы можете почитать в данной статье: фьюзы микроконтроллеров AVR – как и с чем их едят.

Большинство МК имеют SPI интерфейс связи, по которому можно программировать (прошивать) микроконтроллер.

Вопрос: Какие есть компиляторы для AVR микроконтроллера?

Ответ:  Для AVR микроконтроллеров существует множество компиляторов, например:

BASCOM-AVR (Basic компилятор), Code Vision AVR (C (си) компилятор), WinAVR (компилятор C (си) и ассемблера) и т.д.

В данном курсе по микроконтроллерам AVR будет использоваться компилятор BASCOM-AVR.

Вопрос: Как запрограммировать (прошить) AVR микроконтроллер?

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

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

Урок 2. Программатор AVR микроконтроллеров

Источник: http://shemopedia.ru/urok-1-chto-takoe-avr-mikrokontroller.html

Обзор микроконтроллеров AVR

AVR — семейство восьмибитных микроконтроллеров компании Atmel. Год разработки — 1996.

Содержание

История создания архитектуры AVR

Идея разработки нового RISC-ядра принадлежит двум студентам Norwegian University of Science and Technology (NTNU) из норвежского города Тронхейма (Trondheim) — Альфу Богену (Alf-Egil Bogen) и Вегарду Воллену (Vegard Wollen).

В 1995 году Боген и Воллен решили предложить американской корпорации Atmel, которая была известна своими чипами с Flash-памятью, выпускать новый 8-битный RISC-микроконтроллер и снабдить его Flash-памятью для программ на одном кристалле с вычислительным ядром.

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

Новое ядро было запатентовано и получило название AVR. Существует несколько трактовок данной аббревиатуры. Кто-то утверждает, что это Advanced Virtual RISC, другие полагают, что не обошлось здесь без Alf Egil Bogen Vegard Wollan RISC.

Описание архитектуры

Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC. Процессор AVR имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл. В отличие от «идеального» RISC, регистры не абсолютно ортогональны:

  • три «сдвоенных» 16-битных регистра-указателя X (r26:r27), Y (r28:r29) и Z (r30:r31);
  • некоторые команды работают только с регистрами r16..r31;
  • результат умножения (в тех моделях, в которых есть модуль умножения) всегда помещается в r0:r1.

Система команд

Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций. Большинство команд занимает только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт.

Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:

  • команды логических операций;
  • команды арифметических операций и команды сдвига;
  • команды операции с битами;
  • команды пересылки данных;
  • команды передачи управления;
  • команды управления системой.

Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.

Семейства микроконтроллеров

Стандартные семейства:

  • tinyAVR:
    • флеш-память 16 Кб, SRAM 512 б, EEPROM 512 б;
    • число линий ввод-вывода 4-18 (общее количество выводов 6-32);
    • ограниченный набор периферийных устройств;
  • megaAVR:
    • флеш-память 256 Кб, SRAM 8 Кб, EEPROM 4 Кб;
    • число линий ввода-вывода 23-86 (общее количество выводов 20-100);
    • аппаратный умножитель;
    • расширенная система команд и периферийных устройств;
  • XMEGA AVR:
    • флеш-память 384 Кб, SRAM 32 Кб, EEPROM 4 Кб;
    • четырёхканальный DMA-контроллер;
    • Инновационная система обработки событий.

Примечание: здесь приведены максимальные значения объёмов памяти.

На основе стандартных семейств выпускаются микроконтроллеры, адаптированные под конкретные приложения:

  • со встроенными интерфейсами USB, CAN, контроллером LCD;
  • со встроенным радиоприёмо-передатчиком — серии ATAхxxx, ATAMxxx;
  • для управления электродвигателями — серия AT90PWMxxxx;
  • для автомобильной электроники;
  • для осветительной техники.

Версии контроллеров

ATmega/tinyXXXБазовая версия.ATXXXLВерсии контроллеров, работающих на пониженном (Low) напряжении питания, обычно 1,8 или 2,7 В.ATXXXPМалопотребляющие версии (до 100 нА в режиме Power-down), применена технология picoPower (анонсированы в июле 2007), повыводно и функционально совместимы с предыдущими версиями.

ATXXXAУменьшен ток потребления, перекрывается весь диапазон тактовых частот и напряжений питания двух предыдущих версий (также, в некоторых моделях, добавлены новые возможности и новые регистры, но сохранена полная совместимость с предыдущими версиями).

Микроконтроллеры «А» и «не-А» с точки зрения программатора ничем не отличаются.АТmegaXXX-PIКорпус DIP.АТmegaXXX-PUКорпус DIP, бессвинцовый (Pb-free) припой.АТmegaXXX-AIКорпус TQFP.АТmegaXXX-AUКорпус TQFP, бессвинцовый (Pb-free) припой.

Цифры 8/10/16/20 перед индексом означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания.

Устройства ввода/вывода МК

МК AVR имеют развитую периферию:

  • многофункциональные, двунаправленные GPIO порты ввода/вывода со встроенными подтягивающими резисторами. Конфигурация портов в/в задаётся программно;
  • в качестве источника тактовых импульсов может быть выбран:
    • кварцевый резонатор;
    • внешний тактовый сигнал;
    • внутренний RC-генератор (частота 1, 2, 4, 8 МГц);
  • внутренняя флеш-память команд до 256 KБ (не менее 10 000 циклов перезаписи);
  • отладка программ осуществляется с помощью интерфейсов JTAG или debugWIRE:
    • сигналы JTAG (TMS, TDI, TDO, и TCK) мультиплексированы на порт ввода/вывода. Режим работы — JTAG или порт — задаётся соответствующим битом в регистре fuses. МК AVR поставляются с включённым интерфейсом JTAG;
  • внутренняя EEPROM данных до 4 КБ (100 000 циклов);
  • внутренняя SRAM до 8 KБ время доступа 1 такт;
  • внешняя память объёмом до 64 КБ (Mega8515 и Mega162);
  • таймеры c разрядностью 8, 16 бит;
  • ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный;
  • аналоговые компараторы;
  • АЦП (ADC) с дифференциальными входами, разрядность 10 бит (12 для XMEGA AVR):
    • программируемый коэффициент усиления перед АЦП 1, 10 и 200;
    • опорное напряжение 2,56 В;
  • различные последовательные интерфейсы, включая:
    • двухпроводной интерфейс TWI, совместимый с I²C;
    • универсальный синхронно/асинхронный приёмопередатчик UART/USART;
    • синхронный последовательный порт Serial Peripheral Interface (SPI);
  • USB серия AT90USBxxxx;
  • CAN серия AT90CANxxx;
  • LCD серии ATmega169 и ATmega329;
  • Датчики температуры ATtiny25, ATtiny45, ATtiny85;

Примечание: не все периферийные устройства могут быть включены программно. Бит в регистре fuses может быть изменён только программатором.

AVR-GCCПорт GCC (компилятор) для AVR. Есть возможность интеграции с AVR Studio и Eclipse (AVR Eclipse Plugin).SimulAVRСимулятор ядра микроконтроллера AVRKontrollerLabIDE + работа с RS-232 + отладчик.Code::BlocksIDE.AVR-GDBПорт GDB (отладчик) для AVR.DDDГрафический интерфейс к avr-gdb.WinAVRКомплект разработки, включающий в себя: Programmers Notepad — программистский блокнот, компиляторный комплект AVR-GCC , avrdude для прошивки и avr-gdb для отладки (раздел на RadioProg.RU).AvrdudeПопулярное средство для прошивки микроконтроллеров.V-USBПрограммная реализация протокола USB для микроконтроллеров AVR.Загрузчики (bootloader) для микроконтроллеров AVRТехнология, позволяющая использовать стандартные интерфейсы (RS-232, CAN, USB, I2C и проч.) для загрузки программы в кристалл AVR.PonyProgУниверсальный программатор, подключение через COM-порт, LPT-порт (подерживается и USB эмулятор COM-порта) поддерживает МК AVR, PIC и др.AVR StudioIDE + ассемблер + отладчик. Freeware.CodeVisionAVRКомпилятор C и программатор — CVAVR + генератор начального кода.ICC AVRКомпилятор C + генератор начального кода.AtmanAvrКомпилятор C + отладчик + генератор начального кода.IAR AVRIDE C/C++. сайт разработчика.VMLABСимулятор AVR.ProteusМощнейший симулятор электрических цепей, компонентов, включая различные МК и др. периферийное оборудование.Bascom AVRКомпилятор Basic + отладчик + программатор.E-LAB AVRcoКомпилятор Pascal.MikroEМожество компиляторов для разных языков.Algorithm BuilderВизуальная среда разработки программ для AVR в виде блок-схем включает также эмулятор и программатор. Используемый язык программирования — псевдоассемблер. Freeware.ForthInc Forth-CompilerКомпилятор языка Forth.MPE Forth-CompilerКомпилятор языка Forth.AVRealПрограмматор, подключение LPT (практически любой адаптер, в том числе совместим с программатором в CodeVisionAVR) либо USB (адаптеры на основе FT2232C/L/D, FT2232H, FT4232H). Freeware.

Также архитектура AVR позволяет применять операционные системы при разработке приложений, например FreeRTOS, uOS, scmRTOS, ChibiOS/RT, AvrX (ядро реального времени).

Источники:

Источник: https://radioprog.ru/post/5

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}