AVR (Atmel) mikrokontroléry – co je to? Architektura, historie a vlastnosti

Objevte AVR (Atmel) mikrokontroléry: historie, harvardská architektura, flash paměť, 32 registrů, vysoký výkon na takt a praktické vlastnosti pro rychlé a úsporné projekty.

Autor: Leandro Alegsa

Architektura mikrokontroléru AVR byla vyvinuta společností Atmel v roce 1996. Jedná se o harvardskou architekturu s oddělenými programovou a datovou pamětí a AVR byla jednou z prvních rodin mikrokontrolérů, které používaly na čipu paměť flash pro ukládání programu místo jednorázově programovatelných pamětí ROM, EPROM nebo EEPROM, jež tehdy běžně využívaly jiné mikrokontroléry. Díky flash paměti bylo možné programy snadno mazat a přepisovat během vývoje i v cílových zařízeních. AVR často doprovází odkazy a příklady v komunitě hobby elektroniky, především díky platformě Arduino (např. ATmega328P).

Krátká historie a původ názvu

AVR byly vyvinuty inženýry Alf‑Egil Bogenem a Vegardem Wollanem v týmu Atmel Norway. Často se uvádí, že zkratka AVR vznikla z počátečních písmen jmen autorů a zkratky RISC (Alf‑Vegard RISC), i když společnost Atmel oficiálně uvádí pouze označení architektury. První komerční produkty se objevily uprostřed 90. let a rychle si získaly popularitu pro svou jednoduchost, rychlost a nízkou spotřebu.

Architektura a principy

AVR je 8bitová RISC architektura s následujícími klíčovými rysy:

  • Harvardská architektura: oddělená paměť pro instrukce a data, což umožňuje současný přístup k obojímu.
  • 32 8bitových registrů všeobecného určení (R0–R31) přímo připojených k ALU — to výrazně zrychluje operace, protože mnoho instrukcí pracuje přímo s registry bez potřeby přístupu do pomalejší SRAM.
  • Jedno‑taktní vykonávání většiny instrukcí díky dvoustupňovému pipeline (fetch + execute) — většina instrukcí je provedena během jednoho hodinového taktu, což v porovnání s klasickým 8051 (MCS‑51), kde jeden strojový cyklus zabíral 12 taktů oscilátoru, znamená výrazné zlepšení výkonu na takt.
  • Programová paměť v podobě vnitřní flash, datová paměť SRAM a malá vnitřní EEPROM pro uchování parametrů i po odpojení napájení.
  • Instrukční sada optimalizovaná pro rychlé operace nad registry a jednoduché adresování — přehledná a relativně malá sada instrukcí.

Vlastnosti a periferie

AVR mikrokontroléry obvykle nabízejí široké spektrum integrovaných periferií, které usnadňují použití v reálných aplikacích:

  • čítače/timery s PWM (pulzně šířková modulace) pro řízení motorů a výkonových prvků,
  • analogově‑digitální převodníky (ADC) pro snímání analogových signálů,
  • komunikační rozhraní UART (USART), SPI, I²C (TWI) pro připojení k dalším čipům nebo modulům,
  • watchdog timer pro zotavení z chyb,
  • více režimů nízké spotřeby (sleep modes) pro bateriově napájená zařízení,
  • programovací a ladicí rozhraní — ISP (In‑System Programming), JTAG, debugWire a další.

Některé varianty obsahují i hardware pro násobení, DMA nebo pokročilejší analogové bloky (komparátory, referenční napětí apod.).

Rodiny AVR

Hlavní rodiny AVR zahrnují:

  • tinyAVR (ATtiny) – malé a úsporné typy vhodné pro jednoduché aplikace,
  • megaAVR (ATmega) – běžně používané, vybavené více pamětí a periferiemi (např. ATmega328P v Arduino Uno),
  • XMEGA – vyšší výkon, více periferií a lepší ADC/DAC,
  • AVR32 – 32bitová rodina od Atmelu (odlišná architektura než 8bitové AVR),
  • další varianty optimalizované pro nízkou spotřebu nebo pro specifické průmyslové aplikace.

Nástroje pro vývoj a programování

Ekosystém kolem AVR je velmi rozsáhlý a dostupný:

  • Oficiální vývojové prostředí Atmel Studio (nyní Microchip Studio) pro Windows,
  • avr‑gcc toolchain (kompilátor) a avrdude pro nahrávání programu — populární v open‑source komunitě,
  • hardware: ISP programátory, USBasp, Atmel‑ICE a další debug adaptér,
  • mnoho knihoven a příkladů — velká komunita, tutoriály a platformy jako Arduino výrazně usnadňují vstup do světa mikrokontrolérů.

Použití a oblasti nasazení

AVR mikrokontroléry jsou běžně používány v hobby projektech, výuce, průmyslové automatizaci, spotřební elektronice a kdekoliv, kde je potřeba řízení periferií s nízkou až střední složitostí. Díky dostupnosti, nízké ceně a snadnému vývoji jsou jednou z nejoblíbenějších volb pro prototypování i sériovou výrobu menších zařízení.

Souhrn

AVR představuje rychlou, efektivní a dobře zdokumentovanou 8bitovou RISC architekturu s bohatou sadou periferií a širokou uživatelskou základnou. Díky flash paměti, 32 registrům přístupným přímo pro ALU a jednoduchému pipeline jsou AVR čipy vhodné tam, kde je potřeba dobrý výkon na jeden takt, nízká spotřeba a snadný vývoj.

Atmel AVR ATmega8 v 28pinovém DIPu.Zoom
Atmel AVR ATmega8 v 28pinovém DIPu.

Základní rodiny

tinyAVR

  • 0,5-8 kB programové paměti
  • až 0,5 kB SRAM
  • až 0,5 kB EEPROM
  • do 20 MHz
  • 6-32kolíkové pouzdro


megaAVR

  • 4-256 kB programové paměti
  • 0,5-16kB SRAM
  • 0,5-4 kB EEPROM
  • do 20 MHz
  • 20-100 pinové balení


XMEGA

  • 16-384 kB programové paměti
  • 2-32 kB SRAM
  • externí sběrnicové rozhraní pro až 16M bajtů paměti SRAM SDRAM
  • 1-4 kB EEPROM
  • až 32 MHz
  • 44-100 pinové balení

 

Funkce

Každý AVR má několik vstupních/výstupních portů. Port má na svém obalu až 8 fyzických pinů. Každý pin může být nakonfigurován jako vstupní nebo výstupní. Pokud je pin použit jako vstup, může prostřednictvím registru PORTx zapnout vestavěné pull-up rezistory. Pokud je pin nakonfigurován jako výstupní, může zvládnout až 40mA zátěž na pin a max. 100mA pro všechny piny na portu.

A/D převodník

  • 10bitové (tinyAVR, megaAVR) s multiplexem až 8 kanálů
  • 12bitový (XMEGA) s multiplexem až 16 kanálů

Časovače/počítače (8bitové nebo 16bitové)

  • Uživatelé jej mohou nakonfigurovat jako PWM, čítač nebo časovač.
  • V jednoduchém režimu PWM běží počítací registr bez zastavení a je porovnáván s jiným registrem. Pokud je počítací registr vyšší než druhý registr, je pin Ocx nastaven na "1". V opačném případě je pin Ocx nastaven na "0".
  • Počítadlo má nějaký externí zdroj, například fotosenzor, a může počítat počet osob, které projdou kolem fotosenzoru.
  • Časovač dává impulsy v přesném čase. Používá se pro programování hodinových aplikací.

TWI - dvouvodičové rozhraní Používá stejný protokol jako 2IC a lze jej použít jako rozhraní 2IC.

UART/USART UART lze použít pro komunikaci RS232/RS485.

SPI - sériové periferní rozhraní

  • velmi rychlá sériová sběrnice, která se používá pro přenos dat při komunikaci se zařízeními.
  • přes tuto sběrnici můžete vypalovat/číst program do/z programové paměti nebo EEPROM.

USI - univerzální sériové rozhraní

  • používá se pro dvouvodičový nebo třívodičový synchronní přenos dat.

JTAG

  • rozhraní pro online ladění

D/A převodník

  • 12bitový (pouze XMEGA) s multiplexem až 2 kanálů

Související stránky

  • Arduino

Otázky a odpovědi

Otázka: Kdy byla vyvinuta architektura mikrokontroléru AVR?


Odpověď: Architektura mikrokontrolérů AVR byla vyvinuta v roce 1996 společností Atmel.

Otázka: Na jaké architektuře je založen mikrokontrolér AVR?


A: Mikrokontrolér AVR je založen na harvardské architektuře mikrokontroléru.

Otázka: Co odlišuje mikrokontrolér AVR od ostatních mikrokontrolérů v době jeho vývoje?


Odpověď: Mikrokontrolér AVR používá pro ukládání programu paměť flash na čipu, na rozdíl od jednorázově programovatelných pamětí ROM, EPROM nebo EEPROM, které v té době používaly jiné mikrokontroléry.

Otázka: Jaký je obecně rozšířený význam zkratky AVR?


A: Mnoho lidí se domnívá, že AVR je zkratka pro procesor Risc Alf (Egil Bogen) a Vegard (Wollan).

Otázka: Jakou architekturu nahradil mikrokontrolér AVR?


Odpověď: Mikrokontrolér AVR nahradil starší architekturu MCS-51.

Otázka: Kolik taktů trvá jeden strojový cyklus MCS-51?


Odpověď: Jeden strojový cyklus MCS-51 trvá 12 hodinových cyklů.

Otázka: Jaká je výhoda mikrokontrolérů AVR oproti MCS-51 z hlediska výkonu na jeden takt?


Odpověď: Výkon na jeden takt je u mikrokontrolérů AVR 12krát vyšší.


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3