Architektúru mikrokontroléra AVR vyvinula spoločnosť Atmel v roku 1996. Je založená na harvardskej architektúre mikrokontrolérov, čo znamená, že má oddelené zbernice pre inštrukcie (programovú pamäť) a pre dáta (pamäť SRAM). AVR bol jednou z prvých rodín mikrokontrolérov, ktoré na ukladanie programov používali pamäť flash priamo na čipe, na rozdiel od jednorazovo programovateľných pamätí ROM, EPROM alebo EEPROM, ktoré v tom čase používali iné mikrokontroléry. Použitie flash pamäte umožnilo jednoduché a opakovateľné programovanie zariadení bez výmeny čipov a zjednodušilo vývoj i výrobu.

Mnoho ľudí si myslí, že skratka AVR vznikla z anglického spojenia „Alf and Vegard RISC“ — podľa mien tvorcov Alf-Egil Bogen a Vegard Wollan. Hoci existujú rôzne interpretácie názvu, autori zohrali kľúčovú úlohu pri návrhu tejto rodiny procesorov.

AVR predstavuje 8-bitové RISC jadro s niekoľkými typickými vlastnosťami, ktoré ho odlišujú od starších 8-bitových architektúr, napríklad MCS-51. Staršia architektúra MCS-51 mala strojový cyklus trvajúci 12 taktov a väčšina inštrukcií sa vykonala v jednom takomto cykle. Mikrokontroléry AVR (MCU) dokážu vykonať veľkú časť inštrukcií v jednom strojovom cykle, pričom jeden strojový cyklus zodpovedá jednému taktovému pulzu CPU, čo prináša podstatne vyšší výkon na jeden takt. Niektoré inštrukcie alebo operácie (napr. prístup do niektorých periférií alebo programovej pamäte) však môžu vyžadovať viac cyklov.

Základné vlastnosti jadra

Jadro AVR má 32 všeobecných 8-bitových registrov priamo pripojených k ALU. Toto usporiadanie umožňuje rýchly prístup k operandom — ALU môže v rámci jednej inštrukcie čítať dve nezávislé registre a vykonať operáciu v jednom cykle. Niektoré dôležité body:

  • Registrové páry (X, Y, Z) umožňujú 16-bitové operácie a adresovanie pamäte.
  • Inštrukčná sada je prevažne 16-bitová (väčšina inštrukcií), pričom niektoré inštrukcie sú 32-bitové pre zložitejšie operácie.
  • Oddelené zbernice pre inštrukcie a dáta (Harvard) umožňujú súbežné čítanie inštrukcie a dátových operandov, čo zlepšuje výkon.

Periférie a funkcie na čipe

AVR mikrokontroléry obsahujú širokú škálu periférií integrovaných na čipe, v závislosti od konkrétnej rodiny a modelu. Medzi bežné patria:

  • Timer/Counter moduly s PWM
  • Analógovo-digitálne prevodníky (ADC)
  • Sériové rozhrania: USART/UART, SPI, I2C (TWI)
  • Watchdog timer, interné oscilátory, externé hodinové vstupy
  • Porty a prerušenia s maskovateľnými úrovňami

Vyššie modely (napr. XMEGA) pridávajú pokročilé funkcie, ako DMA, rozšírené riadenie napájania, event systém a ďalšie hardvérové periférie pre náročnejšie aplikácie.

Rodiny a použitie

AVR rodina zahŕňa niekoľko hlavných skupín, ktoré sa líšia veľkosťou pamäte, počtom pinov a dostupnými perifériami:

  • tinyAVR – malé a úsporné MCU pre jednoduché aplikácie a spotrebnú elektroniku.
  • megaAVR – populárne modely s väčšou flash pamäťou a množstvom periférií (napr. ATmega328P použitý v Arduino Uno).
  • XMEGA – vyšší výkon a rozšírené periférie (DMA, viac ADC kanálov, rozšírené časovače).
  • AVR32 – 32-bitová rodina od Atmelu, ktorá je odlišná od klasického 8-bitového AVR.

AVR mikrokontroléry sú obľúbené v hobby komunite aj pri priemyselných aplikáciách vďaka jednoduchému programovaniu, dobrej podpore nástrojov a dostupnosti — výrazne ich preslávil aj ekosystém Arduino, ktorý používa primárne AVR čipy.

Nástroje a programovanie

Pre vývoj a programovanie AVR existuje bohatá sada nástrojov:

  • Vývojové prostredia: Atmel Studio (teraz Microchip/Microchip Studio), textové editory a Makefile workflow s avr-gcc.
  • Programátory: ISP (SPI), JTAG, UPDI (novšie tinyAVR), debugWIRE — rôzne hardvérové rozhrania závislé od modelu.
  • Softvér na nahrávanie: avrdude a iné nástroje pre záznam do flash pamäte a nastavenie fuse/lock bitov.

Na čipe sú často k dispozícii EEPROM (na ukladanie nastavení), konfiguračné fuse bity (nastavenie vstupného hodinového režimu, bootloaderu a ochrany pamäte) a lock bity na ochranu kódu pred čítaním.

Záver

AVR architektúra priniesla v 90. rokoch prelomové zlepšenie výkonu a použiteľnosti vďaka kombinácii RISC princípov, oddelených zberníc (Harvard) a zabudovanej flash pamäte. Dodnes zostáva populárnou vo vzdelávaní, hobby projektoch a v mnohých priemyselných riešeniach vďaka svojej jednoduchosti, spoľahlivosti a širokej softvérovej a hardvérovej podpore.