Микроконтроллер AVR¶
Микроконтроллер AVR — это семейство 8-битных и 32-битных микроконтроллеров, разработанных норвежской компанией Atmel (ныне подразделение Microchip Technology). Архитектура AVR была создана в 1996 году группой инженеров под руководством Альфа-Эгиля Богена и Вегарда Воллена. Микроконтроллеры AVR получили широкое распространение благодаря оптимальному сочетанию производительности, энергоэффективности и простоты разработки, став одной из самых популярных платформ для встраиваемых систем, образовательных проектов и любительской электроники.
¶История
¶Разработка и первые модели
Проект AVR стартовал в 1996 году в норвежском городе Тронхейм. Разработчики ставили цель создать микроконтроллер с гарвардской архитектурой, использующий RISC-набор команд (Reduced Instruction Set Computer). Первые коммерческие образцы — AT90S1200 и AT90S8515 — были выпущены в 1997 году. Название «AVR» официально не расшифровывается, однако существует версия, что это аббревиатура от фамилий создателей: Альф-Эгиль Боген (A), Вегард Воллен (V) и сотрудник по имени Риск (R).
¶Поглощение Atmel компанией Microchip
В 2016 году корпорация Microchip Technology завершила сделку по приобретению компании Atmel за 3,56 миллиарда долларов США. С этого момента линейка AVR перешла под управление Microchip, что обеспечило продолжение производства и развитие семейства, включая выпуск новых серий (например, AVR-DA и AVR-DB).
¶Архитектура
¶Гарвардская структура
Микроконтроллеры AVR построены по гарвардской архитектуре: память программ (Flash) и память данных (SRAM) разделены, что позволяет одновременно обращаться к обоим типам памяти. Это повышает производительность по сравнению с фон-неймановской архитектурой, где память программ и данных объединена.
¶RISC-ядро
AVR использует RISC-концепцию с небольшим набором команд (обычно около 130 инструкций). Большинство команд выполняются за один тактовый цикл. Ядро включает 32 8-битных регистра общего назначения (R0–R31), объединённых в регистровый файл. Некоторые регистры имеют специальные функции (например, X, Y, Z — для косвенной адресации).
¶Память
- Flash-память программ: от 1 КБ (младшие модели) до 256 КБ (старшие 8-битные модели) и до 1 МБ (32-битные AVR32). Программируется внутрисистемно (ISP) через интерфейс SPI.
- SRAM (статическая память с произвольным доступом): от 64 байт до 16 КБ для 8-битных моделей.
- EEPROM (электрически стираемое программируемое ПЗУ): от 64 байт до 4 КБ, используется для хранения данных при отключённом питании.
¶Периферия
Типовой набор периферийных модулей включает:
- Таймеры/счётчики (8- и 16-битные) с режимами ШИМ (широтно-импульсная модуляция).
- Аналого-цифровой преобразователь (АЦП) с разрядностью 10 или 12 бит.
- Цифро-аналоговый преобразователь (ЦАП) (в некоторых моделях).
- Интерфейсы: USART (универсальный синхронно-асинхронный приёмопередатчик), SPI (последовательный периферийный интерфейс), I²C (Inter-Integrated Circuit), USB (в некоторых сериях).
- Компараторы, сторожевой таймер (Watchdog Timer), модули захвата/сравнения.
- Контроллеры прерываний, система тактирования (внутренние RC-генераторы, внешние кварцевые резонаторы).
¶Классификация
¶По разрядности
- 8-битные AVR (AVR8): наиболее распространённое семейство. Включает серии tinyAVR (малые корпуса, минимальная периферия), megaAVR (средняя производительность, богатая периферия) и AVR XMEGA (расширенные возможности, DMA-контроллеры, криптографические модули).
- 32-битные AVR (AVR32): выпускались с 2006 года, основаны на 32-битном RISC-ядре. Использовались в некоторых промышленных и мультимедийных устройствах, но не получили массового распространения из-за конкуренции с ARM-архитектурой. Производство AVR32 в основном прекращено.
¶По сериям (на примере 8-битных)
| Серия | Примеры моделей | Flash-память | Особенности |
|---|---|---|---|
| tinyAVR | ATtiny13, ATtiny85 | 1–8 КБ | Малые корпуса (8–20 выводов), низкое энергопотребление |
| megaAVR | ATmega8, ATmega328P | 8–256 КБ | Широкая периферия, популярны в Arduino |
| AVR XMEGA | ATxmega128A1 | 16–384 КБ | Высокая производительность, DMA, AES-шифрование |
¶Применение
¶Промышленная автоматика
AVR используются в контроллерах систем управления, датчиках, исполнительных механизмах. Благодаря широкому диапазону напряжений питания (1,8–5,5 В) и низкому энергопотреблению они подходят для автономных устройств.
¶Потребительская электроника
Микроконтроллеры AVR встречаются в бытовых приборах (стиральные машины, микроволновые печи), пультах дистанционного управления, игрушках, электронных термометрах.
¶Образовательные проекты и хобби
Платформа Arduino (организация Arduino LLC, в РФ деятельность не запрещена, но отдельные проекты могут использовать компоненты, подпадающие под ограничения) базируется на микроконтроллерах ATmega (например, ATmega328P в Arduino Uno) и ATtiny. Благодаря открытой среде разработки Arduino IDE и большому сообществу AVR стали стандартом для обучения программированию встраиваемых систем.
¶Автомобильная электроника
AVR применяются в блоках управления двигателем (вспомогательные функции), системах контроля давления в шинах, панелях приборов.
¶Средства разработки
¶Программное обеспечение
- AVR Studio (Atmel Studio) — интегрированная среда разработки (IDE) от Atmel/Microchip, основанная на Visual Studio. Поддерживает компиляторы AVR-GCC (GNU Compiler Collection) и IAR Embedded Workbench.
- Arduino IDE — упрощённая среда, использующая библиотеки Wiring и компилятор AVR-GCC. Популярна среди начинающих.
- AVRDUDE — утилита для прошивки микроконтроллеров через программаторы (USBasp, STK500, Atmel-ICE).
¶Программаторы
Для загрузки прошивки в AVR используются внутрисхемные программаторы, подключаемые по SPI или JTAG. Распространённые модели: USBasp (бюджетный, на базе ATmega8), Atmel-ICE (профессиональный, с отладкой), STK500 (оригинальный программатор Atmel).
¶Преимущества и недостатки
¶Преимущества
- Энергоэффективность: некоторые модели (picoPower) потребляют менее 100 нА в режиме сна.
- Простота программирования: RISC-архитектура с однотактовыми командами упрощает написание кода на ассемблере и C.
- Широкая доступность: дешёвые и распространённые компоненты (ATmega328P стоит около 2–3 долларов США).
- Документация: полные даташиты и application notes от производителя.
¶Недостатки
- Ограниченная производительность: 8-битные AVR уступают 32-битным ARM-микроконтроллерам по тактовой частоте (до 20 МГц) и объёму памяти.
- Устаревшая архитектура: отсутствие аппаратной поддержки некоторых современных протоколов (Ethernet, CAN FD) в базовых моделях.
- Конкуренция: ARM Cortex-M (STM32, NXP LPC) и ESP32 (Xtensa) предлагают более высокую производительность за сопоставимую цену.
¶Интересные факты
- Название «AVR» иногда шутливо расшифровывают как «Alf and Vegard’s RISC processor» (процессор RISC Альфа и Вегарда).
- Микроконтроллер ATmega328P, используемый в Arduino Uno, является одним из самых продаваемых 8-битных микроконтроллеров в мире — по оценкам, выпущено более 100 миллионов экземпляров.
- В 2019 году Microchip выпустила серию AVR-DA, которая поддерживает напряжение питания до 5,5 В и имеет встроенный 12-битный АЦП, что расширило применение в автомобильной и промышленной электронике.
¶Источники
- Atmel Corporation. AVR Instruction Set Manual. Microchip Technology, 2020.
- Microchip Technology. 8-bit AVR Microcontrollers: Technical Reference Manual. 2022.
- Барретт С. Программирование микроконтроллеров AVR: от Arduino к профессиональной разработке. — СПб.: БХВ-Петербург, 2019.
- Данные официального сайта Microchip Technology (microchip.com) по линейке AVR.
- Статистика продаж и применения из отраслевых обзоров Embedded Systems Market (2021–2023).
