AVR: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
м RLuts перейменував сторінку з Мікроконтролери AVR на AVR: зайве уточнення
Bot Gluck (обговорення | внесок)
Тлумачення посилань на сторінки значень, replaced: RISCRISC (2) за допомогою AWB
Рядок 4: Рядок 4:
Мікроконтролери родини AVR
Мікроконтролери родини AVR
</div>]]
</div>]]
Мікроконтролери AVR мають [[Гарвардська архітектура|гарвардську архітектуру]] (програма і дані розташовані в різних адресних просторах) і систему команд, близьку до ідеології [[RISC]]. Процесори AVR мають 32 8-[[Біт|бітових]] [[Регістр процесора|регістри]] загального призначення. Максимальна тактова частота&nbsp;— 20 [[герц|мегагерц]] (XMEGA AVR&nbsp;— до 32&nbsp;МГц), короткі команди виконуються за один такт.
Мікроконтролери AVR мають [[Гарвардська архітектура|гарвардську архітектуру]] (програма і дані розташовані в різних адресних просторах) і систему команд, близьку до ідеології [[RISC (процесор)|RISC]]. Процесори AVR мають 32 8-[[біт]]ових [[Регістр процесора|регістри]] загального призначення. Максимальна тактова частота&nbsp;— 20 [[герц|мегагерц]] (XMEGA AVR&nbsp;— до 32&nbsp;МГц), короткі команди виконуються за один такт.


== Особливості ==
== Особливості ==
На відміну від «ідеального» [[RISC]], регістри не абсолютно ортогональні:
На відміну від «ідеального» [[RISC (процесор)|RISC]], регістри не абсолютно ортогональні:
* Деякі команди працюють тільки з регістрами <code>r16—r31</code>;
* Деякі команди працюють тільки з регістрами <code>r16—r31</code>;
* 16-бітний результат множення (у тих моделях, в яких є модуль множення) завжди розміщується в регістровій парі <code>r0:r1</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>;
* Для непрямої адресації пам'яті даних використовуються три «здвоєні» 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>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>LPM</code>, <code>SPM</code> використовується лише регістрова пара <code>Z&nbsp;(r30:r31)</code>;
Рядок 25: Рядок 25:
** Обмежений набір внутрішніх периферійних пристроїв
** Обмежений набір внутрішніх периферійних пристроїв
** Напруга живлення 1,8—5,5 В
** Напруга живлення 1,8—5,5 В

* megaAVR
* megaAVR
** 4—256 [[Кілобайт|кБ]] пам'яті програм
** 4—256 [[Кілобайт|кБ]] пам'яті програм
Рядок 34: Рядок 33:
** Розширений набір внутрішніх периферійних пристроїв
** Розширений набір внутрішніх периферійних пристроїв
** Напруга живлення 1,8—5,5 В
** Напруга живлення 1,8—5,5 В

* XMEGA
* XMEGA
** 16—384 [[Кілобайт|кБ]] пам'яті програм
** 16—384 [[Кілобайт|кБ]] пам'яті програм
Рядок 54: Рядок 52:
[[File:Atmel STK 500 DSC00557 wp.jpg|thumb|Плата розробника Atmel STK500]]
[[File:Atmel STK 500 DSC00557 wp.jpg|thumb|Плата розробника Atmel STK500]]
[[Image:AvrDragon.png|thumb||AVR Dragon с [[Внутрішньосхемне програмування|внутрішньосхемнного програмувания]] , а також доданою [[ZIF|ZIF панелькою]] під ІМС у DIP-корпусі.]]
[[Image:AvrDragon.png|thumb||AVR Dragon с [[Внутрішньосхемне програмування|внутрішньосхемнного програмувания]] , а також доданою [[ZIF|ZIF панелькою]] під ІМС у DIP-корпусі.]]
[[File:AVRISP_mkII.jpg|thumb| AVRISP mkII-ISP-Programmer від Atmel]]
[[File:AVRISP_mkII.jpg|thumb|AVRISP mkII-ISP-Programmer від Atmel]]


Офіційні засоби розробки для AVR від Atmel:
Офіційні засоби розробки для AVR від Atmel:

Версія за 03:49, 28 серпня 2016

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

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

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

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

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

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

Суттєвий вплив на поширеність мікроконтролерів має те, що програмування цих мікроконтролерів здійснюється досить легко. Найпростіший програматор, пристрій за допомогою якого персональний комп'ютер записує програму у 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 — симулятор електричних ланцюгів, компонентів, включаючи різноманітні МК.

Див. також

Посилання