[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Addbot (обговорення | внесок)
м Вилучення 26 інтервікі, відтепер доступних на Вікіданих: d:q216651
м оформлення, доповнення, прибрано закільцьоване перенаправлення на себе через atmega8
Рядок 1:
'''AVR''' — сімействородина восьмибітових [[мікроконтролер]]ів фірми [[Atmel]].
[[Файл:AVR group.jpg|right|thumb|400px|<div style='text-align: center;'>
Мікроконтролери сімейства AVR
</div>]]
Мікроконтролери AVR мають [[Гарвардська архітектура|гарвардську архітектуру]] (програма і дані знаходяться в різних адресних просторах) і систему команд, близьку до ідеології [[RISC]]. ПроцесорПроцесори AVR маємають 32 8-[[Біт|бітових]] [[Регістр_процесора|регістрарегістри]]. Управліннязагального мікроконтролером, по суті, є управління цими регістрамипризначення. НаМаксимальна відмінутактова відчастота&nbsp;— «ідеального»20 [[RISCгерц|мегагерц]], регістри не абсолютно ортогональні: Деякікороткі команди працюють тільки з регістрами r16…r31. Результат множення (у тих моделях, в яких є модуль множення) завжди розміщується в r0:r1. Для непрямої адресації пам’яті даних використовуються три «здвоєні» 16-бітові регістри-[[Вказівник|вказівники]] X (r26:r27), Y (r28:r29) та Z (r30:r31). В командах роботи з пам’яттю програм LPM, SPM використовується лише регістровавиконуються параза Zодин (r30:r31)такт.
 
== Особливості ==
Управління периферійними пристроями здійснюється через адресний простір даних. Для зручності з першими 64-ма адресами периферійних пристроїв можна працювати за допомогою «скорочених» команд IN/OUT доступу до простору вводу-виводу (I/O&nbsp;– Input/Output). Роботу з окремими бітами периферійних пристроїв у просторі I/O забезпечують команди SBI, CBI, SBIS, SBIC. Втім, ці команди працюють лише з першими 32-ма адресами простору.
На відміну від «ідеального» [[RISC]], регістри не абсолютно ортогональні:
* Деякі команди працюють тільки з регістрами <code>r16—r31</code>;
* 16-бітний результат множення (у тих моделях, в яких є модуль множення) завжди розміщується в регістровій парі <code>r0:r1</code>;
* Для непрямої адресації пам'яті даних використовуються три «здвоєні» 16-бітові регістри-[[Вказівник|вказівники]] <code>X&nbsp;(r26:r27)</code>, <code>Y&nbsp;(r28:r29)</code> та <code>Z&nbsp;(r30:r31)</code>;
* В командах <code>ADIW, SBIW</code> додавання та віднімання короткої константи від 16-бітного аргумента можуть використовуватися лише вказані вище пари <code>X, Y, Z</code> та пара <code>(r24:r25)</code>;
* В командах роботи з пам'яттю програм <code>LPM</code>, <code>SPM</code> використовується лише регістрова пара <code>Z&nbsp;(r30:r31)</code>;
* Команди напрямого переходу та виклику підпрограм <code>ICALL, IJMP</code> також можуть використовувати лише регістрову пару <code>Z</code>.
 
УправлінняРобота з периферійними пристроями здійснюється через адресний простір даних. Для зручності з першими 64-ма адресами периферійних пристроїв можна працювати за допомогою «скорочених» команд <code>IN/OUT</code> доступу до простору вводу-виводу (I/O&nbsp; Input/Output). Роботу з окремими бітами периферійних пристроїв у просторі I/O забезпечують команди <code>SBI</code>, <code>CBI</code>, <code>SBIS</code>, <code>SBIC</code>. Втім, ці команди працюють лише з першими 32-ма адресами простору.
Окрім фірмових засобів розробки (IAR, CODEVISION і ін.), існує [[GNU]] порт [[GCC]] для AVR. Крім того, архітектура AVR дозволяє застосовувати [[Операційна система|операційні системи]] при розробці застосувань, основними з яких є написані на мові [[C_(мова_програмування)|C]] системи [[FREERTOS]] та [[uOS]]. Також існує написана на мові програмування [[C%2B%2B|C++]] система [http://scmrtos.sourceforge.net/ScmRTOS scmRTOS]
 
== Основні сімействародини ==
Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший [[Програматор|програматор]], пристрій за допомогою якого персональний комп'ютер записує програму у [[Флеш-пам'ять|flash]]-пам'ять мікроконтролера, складається з п'яти провідників та вилки порта [[IEEE_1284|LPT]]. Це дозволяє з успіхом використовувати мікроконтролери AVR новачками, що хочуть отримати знання з мікроелектроніки.
 
== Основні сімейства ==
* tinyAVR
** 0.5–16,5—16 [[Кілобайт|кБ]] пам'яті програм
** 32-102432—1024 байти оперативної пам’ятіпам'яті
** 0-5120—512 байтів енергонезалежної пам’ятіпам'яті даних [[EEPROM]]
** 6–326—32-вивідний корпус
** Обмежений набір внутрішніх периферійних пристроїв
 
* megaAVR
** 4–2564—256 [[Кілобайт|кБ]] пам'яті програм
** 0.25-8,25—8 [[Кілобайт|кБ]] оперативної пам’ятіпам'яті
** 0.25-4,25—4 [[Кілобайт|кБ]] енергонезалежної пам’ятіпам'яті даних EEPROM
** 28–10028—100-вивідний корпус
** Розширений набір команд (команди множення, розширені методи адресації в командах LPM, SPM)
** Розширений набір внутрішніх периферійних пристроїв
 
* XMEGA
** 16–38416—384 [[Кілобайт|кБ]] пам'яті програм
** 2–322—32 [[Кілобайт|кБ]] оперативної пам’ятіпам'яті
** 1–41—4 [[Кілобайт|кБ]] енергонезалежної пам’ятіпам'яті даних EEPROM
** 44–64–10044—64—100-вивідний корпус (A4, A3, A1)
** Підвищена продуктивність за рахунок таких особливостей, як ПДП (Прямий Доступ до Пам'яті), підтримка криптографії, "«Система подій"».
** Розширений набір внутрішніх периферійних пристроїв ([[ЦАП]])
 
== Засоби розробки ==
== Дивіться також ==
Окрім [[Комерційне програмне забезпечення|комерційних]] засобів розробки (IAR, CODEVISION і ін.), існують також [[Вільне програмне забезпечення|вільні]], наприклад, [[GNU]] порт [[GNU Compiler Collection|GCC]] для AVR. В якості вільного [[Інтегроване середовище розробки|середовища]] для avr-gcc можна використовувати [[Code::Blocks]].
 
Окрім фірмових засобів розробки (IAR, CODEVISION і ін.), існує [[GNU]] порт [[GCC]] для AVR. Крім того, архітектура AVR дозволяє застосовувати [[Операційна система|операційні системи]] при розробці застосувань, основними з яких є написані на мові [[C_(мова_програмування)|C]] системи [[FREERTOS]] та [[uOS]]. Також існує написана на мові програмування [[C%2B%2B|C++]] система [http://scmrtos.sourceforge.net/ScmRTOS scmRTOS]
 
Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший [[Програматор|програматор]], пристрій за допомогою якого персональний комп'ютер записує програму у [[Флеш-пам'ять|flash]]-пам'ять мікроконтролера, складається з п'яти провідників та вилки порта [[IEEE_1284|LPT]]. Це дозволяє з успіхом використовувати мікроконтролери AVR новачками, що хочуть отримати знання з мікроелектроніки.
 
== ДивітьсяДив. також ==
* [[Вбудована система]]
* [[Мікроконтролер]]
* [[Atmega8]]
* [[Arduino]]
 
== Посилання ==
* [http://www.atmel.com/products/avr/ Домашня сторінка Atmel AVR Homepage]{{lang-en|}}
* [http://www.avrfreaks.net Спільнота AVR Freaks community]{{lang-en|}}
* [http://www.iar.com/en/Products/IAR-Embedded-Workbench/AVR/ IAR Embedded Workbench for Atmel AVR]&nbsp;— Компілятор С/С++ [[Інтегроване середовище розробки|IDE]] ([[Комерційне програмне забезпечення|комерційне ПЗ]])
* [http://www.mikroe.com/mikropascal/avr/ microPascal]{{lang-en|}}&nbsp;— реалізація мови [[Pascal|Паскаль]] для AVR (комерційна)
* [http://www.lancos.com/prog.html PonyProg]{{lang-en|}}&nbsp;— програматор ([[Вільне програмне забезпечення|вільне ПЗ]])
* [http://real.kiev.ua/avreal/?langswitch_lang=uk AVReAl]&nbsp;— програматор ([[Безплатне програмне забезпечення|безплатне ПЗ]])
* [http://myrobot.ru/ Роботи, мікроконтролери]{{Lang-ru|}}
* [http://vesoftua.te.ua/microkontrolerprograming/127------avr-.html Засоби розробки програмного забезпечення для AVR мікроконтролерів]{{Lang-ua|}}
 
[[Категорія:Процесори]]