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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Basio (обговорення | внесок)
Рядок 105: Рядок 105:
* [http://articles.greenchip.com.ua/1-0-0-1.html Навчальний курс AVR]
* [http://articles.greenchip.com.ua/1-0-0-1.html Навчальний курс AVR]
{{мікроконтролери}}
{{мікроконтролери}}
{{Без джерел|дата=травень 2013}}


[[Категорія:Процесори]]
[[Категорія:Процесори]]

Версія за 05:10, 4 грудня 2015

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 — симулятор електричних ланцюгів, компонентів, включаючи різноманітні МК.

Див. також

Посилання