AVR: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
Addbot (обговорення | внесок) |
ReAl (обговорення | внесок) м оформлення, доповнення, прибрано закільцьоване перенаправлення на себе через atmega8 |
||
Рядок 1:
'''AVR''' —
[[Файл:AVR group.jpg|right|thumb|400px|<div style='text-align: center;'>
Мікроконтролери сімейства AVR
</div>]]
Мікроконтролери AVR мають [[Гарвардська архітектура|гарвардську архітектуру]] (програма і дані знаходяться в різних адресних просторах) і систему команд, близьку до ідеології [[RISC]].
== Особливості ==
Управління периферійними пристроями здійснюється через адресний простір даних. Для зручності з першими 64-ма адресами периферійних пристроїв можна працювати за допомогою «скорочених» команд IN/OUT доступу до простору вводу-виводу (I/O – Input/Output). Роботу з окремими бітами периферійних пристроїв у просторі I/O забезпечують команди SBI, CBI, SBIS, SBIC. Втім, ці команди працюють лише з першими 32-ма адресами простору.▼
На відміну від «ідеального» [[RISC]], регістри не абсолютно ортогональні:
* Деякі команди працюють тільки з регістрами <code>r16—r31</code>;
* 16-бітний результат множення (у тих моделях, в яких є модуль множення) завжди розміщується в регістровій парі <code>r0:r1</code>;
* Для непрямої адресації пам'яті даних використовуються три «здвоєні» 16-бітові регістри-[[Вказівник|вказівники]] <code>X (r26:r27)</code>, <code>Y (r28:r29)</code> та <code>Z (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 (r30:r31)</code>;
* Команди напрямого переходу та виклику підпрограм <code>ICALL, IJMP</code> також можуть використовувати лише регістрову пару <code>Z</code>.
▲
Окрім фірмових засобів розробки (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
**
**
**
** Обмежений набір внутрішніх периферійних пристроїв
* megaAVR
**
** 0
** 0
**
** Розширений набір команд (команди множення, розширені методи адресації в командах LPM, SPM)
** Розширений набір внутрішніх периферійних пристроїв
* XMEGA
**
**
**
**
** Підвищена продуктивність за рахунок таких особливостей, як ПДП (Прямий Доступ до Пам'яті), підтримка криптографії,
** Розширений набір внутрішніх периферійних пристроїв ([[ЦАП]])
== Засоби розробки ==
== Дивіться також ==▼
Окрім [[Комерційне програмне забезпечення|комерційних]] засобів розробки (IAR, CODEVISION і ін.), існують також [[Вільне програмне забезпечення|вільні]], наприклад, [[GNU]] порт [[GNU Compiler Collection|GCC]] для AVR. В якості вільного [[Інтегроване середовище розробки|середовища]] для avr-gcc можна використовувати [[Code::Blocks]].
▲
▲Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший [[Програматор|програматор]], пристрій за допомогою якого персональний комп'ютер записує програму у [[Флеш-пам'ять|flash]]-пам'ять мікроконтролера, складається з п'яти провідників та вилки порта [[IEEE_1284|LPT]]. Це дозволяє з успіхом використовувати мікроконтролери AVR новачками, що хочуть отримати знання з мікроелектроніки.
* [[Вбудована система]]
* [[Мікроконтролер]]
* [[Arduino]]
== Посилання ==
* [http://www.atmel.com/products/avr/ Домашня сторінка Atmel AVR
* [http://www.avrfreaks.net Спільнота AVR Freaks
* [http://www.iar.com/en/Products/IAR-Embedded-Workbench/AVR/ IAR Embedded Workbench for Atmel AVR] — Компілятор С/С++ [[Інтегроване середовище розробки|IDE]] ([[Комерційне програмне забезпечення|комерційне ПЗ]])
* [http://www.mikroe.com/mikropascal/avr/ microPascal]{{lang-en|}} — реалізація мови [[Pascal|Паскаль]] для AVR (комерційна)
* [http://www.lancos.com/prog.html PonyProg]{{lang-en|}} — програматор ([[Вільне програмне забезпечення|вільне ПЗ]])
* [http://real.kiev.ua/avreal/?langswitch_lang=uk AVReAl] — програматор ([[Безплатне програмне забезпечення|безплатне ПЗ]])
* [http://myrobot.ru/ Роботи, мікроконтролери]{{Lang-ru|}}
* [http://vesoftua.te.ua/microkontrolerprograming/127------avr-.html Засоби розробки програмного забезпечення для AVR мікроконтролерів]
[[Категорія:Процесори]]
|