AVR
AVR — родина восьмибітових мікроконтролерів фірми Atmel.
Мікроконтролери 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
- megaAVR
- XMEGA
- 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
- ATxxx-TS — корпус SOT-23 (ATtiny4/5/9/10)
- ATxxx-X — корпус TSSOP
Наступна літера означає температурний діапазон і особливості виготовлення:
- ATxxx-xC — комерційний температурний діапазон (0 °C — 70 °C)
- ATxxx-xA — температурний діапазон −20 °C — +85 °C, з використанням безсвинцевого припою
- 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.
Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший програматор, пристрій за допомогою якого персональний комп'ютер записує програму у 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
Також існує багато сторонніх засобів розробки, особливо аматорських.
Вільні
- 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 — симулятор електричних ланцюгів, компонентів, включаючи різноманітні МК.
Див. також
Примітки
- Ревич, 2011, с. 19.
Посилання
- Домашня сторінка Atmel AVR(англ.)
- Спільнота AVR Freaks(англ.)
- IAR Embedded Workbench for Atmel AVR — Компілятор С/С++ IDE (комерційне ПЗ)
- microPascal(англ.) — реалізація мови Паскаль для AVR (комерційна)
- PonyProg(англ.) — програматор (вільне ПЗ)
- AVReAl — програматор (безплатне ПЗ)
- Роботи, мікроконтролери(рос.)
- Засоби розробки програмного забезпечення для AVR мікроконтролерів
- Навчальний курс AVR
Література
- Ревич Ю. В. Практическое программирование микроконтроллеров 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. (рос.)