AVR — родина восьмибітових мікроконтролерів фірми Atmel.

Мікроконтролери родини AVR

Мікроконтролери 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-ма адресами простору.

Основні родини

ред.

tinyAVR

ред.
  • 0,5—16 кБ пам'яті програм
  • 32—1024 байти оперативної пам'яті
  • 0—512 байтів енергонезалежної пам'яті даних EEPROM
  • 6—32-вивідний корпус
  • Обмежений набір внутрішніх периферійних пристроїв
  • Напруга живлення 1,8—5,5 В

megaAVR

ред.
  • 4—256 кБ пам'яті програм
  • 0,25—8 кБ оперативної пам'яті
  • 0,25—4 кБ енергонезалежної пам'яті даних EEPROM
  • 28—100-вивідний корпус
  • Розширений набір команд (команди множення, розширені методи адресації в командах LPM, SPM)
  • Розширений набір внутрішніх периферійних пристроїв
  • Напруга живлення 1,8—5,5 В
  • 16—384 кБ пам'яті програм
  • 2—32 кБ оперативної пам'яті
  • 1—4 кБ енергонезалежної пам'яті даних EEPROM
  • 44—64—100-вивідний корпус (A4, A3, A1)
  • Підвищена продуктивність за рахунок таких особливостей, як ПДП , підтримка криптографії, «Система подій».
  • Розширений набір внутрішніх периферійних пристроїв (ЦАП)
  • Напруга живлення 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) перед індексом означають максимальну частоту, на якій мікроконтролер може стабільно працювати при нормальній для нього напрузі живлення.

Перша літера індексу означає варіант корпуса:

  • ATxxx-P — корпус DIP
  • ATxxx-A — корпус TQFP
  • ATxxx-J — корпус PLCC
  • ATxxx-M — корпус MLF
  • ATxxx-MA — корпус UDFN/USON
  • ATxxx-C — корпус CBGA
  • ATxxx-CK — корпус LGA
  • ATxxx-S — корпус EIAJ SOIC
  • ATxxx-SS — вузький корпус JEDEC SOIC
  • ATxxx-T — корпус TSOP[en]
  • ATxxx-TS — корпус SOT-23 (ATtiny4/5/9/10)
  • ATxxx-X — корпус TSSOP

Наступна літера означає температурний діапазон і особливості виготовлення:

  • ATxxx-xC — комерційний температурний діапазон (0 °C — 70 °C)
  • ATxxx-xA — температурний діапазон −20 °C — +85 °C, з використанням безсвинцевого припою[ru]
  • ATxxx-xI — індустріальний температурний діапазон (-40 °C — +85 °C)
  • ATxxx-xU — індустріальний температурний діапазон (-40 °C — +85 °C), з використанням безсвинцевого припою
  • ATxxx-xH — індустріальний температурний діапазон (-40 °C — +85 °C), з використанням NiPdAu
  • ATxxx-xN — розширений температурний діапазон (-40 °C — +105 °C), з використанням безсвинцевого припою
  • ATxxx-xF — розширений температурний діапазон (-40 °C — +125 °C)
  • ATxxx-xZ — автомобільний температурний діапазон (-40 °C — +125 °C)
  • ATxxx-xD — розширений автомобільний температурний діапазон (-40 °C — +150 °C)

Остання літера R означає упаковку в стрічки (Tape & Reel) для автоматизованих систем збірки.

Засоби розробки

ред.

Окрім комерційних засобів розробки (IAR, CodeVisionAVR та ін.), існують також вільні, наприклад, WinAVR - GNU порт GCC для AVR. Як вільне середовища для avr-gcc можна використовувати Code::Blocks.

Крім того, архітектура AVR дозволяє застосовувати операційні системи при розробці застосувань, основними з яких є написані на мові C системи FreeRTOS, ChibiOS/RT та uOS. Також існує написана на мові програмування C++ система scmRTOS [Архівовано 3 вересня 2013 у Wayback Machine.].

Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший програматор, пристрій за допомогою якого персональний комп'ютер записує програму у flash-пам'ять мікроконтролера, складається з п'яти провідників та вилки порту LPT. Це дозволяє з успіхом використовувати мікроконтролери AVR новачками, що хочуть отримати знання з мікроелектроніки.

Апаратні засоби розробки

ред.
 
Плата розробника Atmel STK500
 
AVR Dragon с внутрішньосхемнним програмуванням, а також доданою ZIF панелькою під ІМС у DIP-корпусі.
 
AVRISP mkII-ISP-Programmer від Atmel

Офіційні засоби розробки для 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

Також існує багато сторонніх засобів розробки, особливо аматорських.

Програмні засоби розробки

ред.
  • WinAVR — програмний пакет під Windows, який включає до себе компілятор C, ассемблер, компоновник та інші інструменти.
  • Algorithm Builder — середовище розробки програмного забезпечення для микроконтролерів з архітектурою AVR.
  • Code::Blocks — кросплатформенне середовище розробки програмного забезпечення.
  • DDDграфічний інтерфейс до avr-gdb.
  • V-USB — програмна реалізація протоколу USB для микроконтролерів AVR.
  • Avrdude — засіб для програмування постійної пам'яті микроконтролерів.
  • PonyProg — універсальний програматор через LPT-порт, COM-порт (підтримує USB-емулятор COM-порту).
  • AVR Studio — безкоштовне офіційне IDE від Atmel
  • IAR AVR — комерційне середовище розробки для микроконтролерів AVR
  • Bascom-avr — середовище розробки з Basic-подібною мовою програмування.
  • CodeVisionAVR — компілятор C та програматор — CVAVR, генератор початкового коду.
  • Proteus — симулятор електричних ланцюгів, компонентів, включаючи різноманітні МК.

Див. також

ред.

Примітки

ред.
  1. Ревич, 2011, с. 19.

Посилання

ред.

Література

ред.
  • Ревич Ю. В. Практическое программирование микроконтроллеров 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. (рос.)