Мікроконтролери AVR мають гарвардську архітектуру[1] (програма і дані розташовані в різних адресних просторах) і систему команд, близьку до ідеології RISC. Процесори AVR мають 32 8-бітовихрегістри загального призначення. Максимальна тактова частота — 20 мегагерц (XMEGA AVR — до 32 МГц), короткі команди виконуються за один такт.
Особливості
На відміну від «ідеального» RISC, регістри не абсолютно ортогональні:
Деякі команди працюють тільки з регістрами r16—r31;
16-бітний результат множення (у тих моделях, в яких є модуль множення) завжди розміщується в регістровій парі r0:r1;
Для непрямої адресації пам'яті даних використовуються три «здвоєні» 16-бітові регістри-вказівникиX (r26:r27), Y (r28:r29) та Z (r30:r31);
В командах ADIW, SBIW додавання та віднімання короткої константи від 16-бітного аргумента можуть використовуватися лише вказані вище пари X, Y, Z та пара (r24:r25);
В командах роботи з пам'яттю програм LPM, SPM використовується лише регістрова пара Z (r30:r31);
Команди напрямого переходу та виклику підпрограм ICALL, IJMP також можуть використовувати лише регістрову пару Z.
Робота з периферійними пристроями здійснюється через адресний простір даних. Для зручності з першими 64-ма адресами периферійних пристроїв можна працювати за допомогою «скорочених» команд IN/OUT доступу до простору вводу-виводу (I/O — Input/Output). Роботу з окремими бітами периферійних пристроїв у просторі I/O забезпечують команди SBI, CBI, SBIS, SBIC. Втім, ці команди працюють лише з першими 32-ма адресами простору.
Підвищена продуктивність за рахунок таких особливостей, як ПДП , підтримка криптографії, «Система подій».
Розширений набір внутрішніх периферійних пристроїв (ЦАП)
Напруга живлення 1,6—3,6 В
Версії контролерів
AT (mega/tiny)xxx — базова версія.
ATxxxL — версії контролерів, що працюють при пониженій (Low) напрузі живлення (2,7 В).
ATxxxV — версії контролерів, що працюють при низькій напрузі живлення (1,8 В).
ATxxxP — версії з малим енергоспоживанням (до 100 нА в режимі Power-down), застосована технологія picoPower (анонсовані у липні 2007), повивідно та функціонально сумісні з попередніми версіями.
ATxxxA — зменшений струм споживання, перекривається увесь діапазон тактових частот і напруг живлення двох попередніх версій (також, у деяких моделях, додані нові можливості та нові регістри, але збережена повна сумісність із попередніми версіями). Мікроконтролери «А» і «не-А» зазвичай мають однакову сигнатуру, що викликає деякі труднощі, оскільки Fuse-bit'и відрізняються.
Номер моделі доповнюється індексом, що вказує варіант виготовлення. Цифри (8, 10, 16, 20) перед індексом означають максимальну частоту, на якій мікроконтролер може стабільно працювати при нормальній для нього напрузі живлення.
Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший програматор, пристрій за допомогою якого персональний комп'ютер записує програму у flash-пам'ять мікроконтролера, складається з п'яти провідників та вилки порту LPT. Це дозволяє з успіхом використовувати мікроконтролери AVR новачками, що хочуть отримати знання з мікроелектроніки.
Апаратні засоби розробки
Офіційні засоби розробки для AVR від Atmel:
STK600 starter kit
STK500 starter kit
STK200 starter kit
AVRISP and AVRISP mkII
AVR Dragon
JTAGICE mkI
JTAGICE mkII
JTAGICE3
AVR ONE!
Butterfly demonstration board
AT90USBKey
Raven wireless kit
Також існує багато сторонніх засобів розробки, особливо аматорських.
Ревич Ю. В. Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера. — 2-е изд., испр. — СПб. : БХВ-Петербург, 2011. — 352 с. — ISBN 978-5-9775-0657-1.(рос.)
Евстифеев А. В. Микроконтроллеры AVR семейства Tiny. Руководство пользователя. — М. : Издательский дом «Додэка-XXI», 2007. — 432 с. — (Программируемые системы) — ISBN 978-5-94120-116-7.(рос.)
Евстифеев А. В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. — М. : Издательский дом «Додэка-XXI», 2007. — 592 с. — (Программируемые системы) — ISBN 978-5-94120-090-0.(рос.)