
AVR – это семейство 8 — битных микроконтроллеров от компании Atmel. Популярность данного семейства, в основном, заключается:
- в дешевизне микроконтроллеров ;
- в возможности их использовать в большинстве случаях проектирования как любительских, так и коммерческих радиотехнических устройств;
- в совместимости микроконтроллеров вверх по модельному ряду с незначительным изменением кода;
- в общедоступности на любом радиорынке;
- большое количество примеров использования и литературы;
- поддержка современными симуляторами, с которыми отладку можно произвести без покупки самого чипа.
Пожалуй, это основные параметры, которые определяют успех любого производителя микроконтроллеров, чем ATMEL с семейством AVR и отличается. Конечно, есть конкуренты у данного семейста – PIC от Microchip, которые держат свою нишу малобюджетных дешевых микроконтроллеров на все случаи радио – жизни.
Чем же характеризуются технические возможности микроконтроллеров семейства AVR? Если кратко, то характеристики такие:
- производительность порядка 1 MIPS(Million of Instruction Per Sets) при тактовой частоте генератора в 1Мгц. Это позволяет выполнять 1 млн операций за 1 такт тактового генератора. Такая производительность обусловлена RISC архитектурой микроконтроллера и тщательно проработанной системой команд ;
- усовершенствованная архитектура RISC (Reducing Instruction Set Computing – вычисления с сокращенным набором команд) – предполагает набор компактных и быстро исполняющихся команд вычисления;
- наличие 32-х регистров общего назначения (РОН). РОН нужны для быстрой операции чтения и записи, после операции с данными без обращения к памяти. Так как обращение к памяти занимает больше тактов, чем к РОН, то это дает преимущество в скорости выполнения кода;
- отдельные шины команд и данных. Данный поход отвечает Гарвардской архитектуре и отличается от классической модели хранения команд и данных в ПК по принципу фон Неймана, когда одна шина для одной памяти, где хранятся и команды и данные. Гарвардская архитектура позволяет ускорить процесс выполнения команд и операции с данными, так как раздельная шина позволяет выполнять все эти действия параллельно, в большинстве случаях, за один такт;
- Flash – память программы. Дает возможность прямо в готовом изделии перепрограммировать (перепрошить) кристалл через внутрисистемный последовательный канал. Flash – память AVR позволяет выполнять, в пределах, 10 000 циклов стирания/записи;
- возможность сохранять сторонние данные в энергонезависимой памяти EEPROM. Данная память использует, как дополнительный накопитель для хранения пользовательских данных программы. На уровне готового устройства это могут быть настройки, текст, данные датчиков и т.д. Запись в данную память можно произвести как программно, так и через внешний интерфейс обмена данных SPI. EEPROM в AVR позволяет выполнять, в пределах, 100 000 циклов стирания/записи;
- сторожевой таймер. Нужен для автоматизации выполнения операций через определенные промежутки времени;
- периферия для работы с аналоговыми сигналами. К ним можно отнести 10-ти разрядный, многоканальный АЦП и аналоговый компаратор;
- таймеры – счетчики для подсчитывания как внутренних, так и внешних импульсов. В AVR может быть как минимум быть 16-ти разрядный и один или два 8-ми разрядных таймеров-счетчиков, которые могут работать в режиме 8-ми, 9-ти, 10-ти и 16-ти битовой широтно-импульсной модуляции (PWM);
- набор модулей последовательной передачи информации , такие как SPI, TWI(I2C), UART(USART);
- имеет внутренний тактовый генератор, позволяющий работать без внешнего тактового генератора. Пределы использования внешнего тактового генератора : от 0Гц до 16 – 20 МГц
- встроенный детектор питания, реагирующий на падение напряжения;
- большое количество режимов энергосбережения с возможностью выхода из спящего режима, как по внешнему прерыванию, так и по сторожевому таймеру.
- диапазон напряжений от 2.7 до 5.5 В. В критических случаях заработает и при диапазоне 1.6 до 6.0 В;