AVR-mikrocontroller-arkitekturen blev udviklet af Atmel i 1996 og er baseret på en Harvard-arkitektur, hvor program- og data-hukommelse er fysisk adskilt. Et af de vigtigste innovationstræk ved AVR var anvendelsen af on-chip flash-hukommelse til programlagring i stedet for de datidige løsninger med engangsprogrammerbar ROM og de mere langsomme EPROM- eller EEPROM-teknologier. Flash-hukommelsen muliggjorde bl.a. in-system programming (ISP) og lettere opdatering af firmware i felten.
Arkitektur og ydeevne
AVR er en RISC-baseret 8-bit mikrocontrollerfamilie med en effektiv to-trins pipeline (fetch + execute). Det betyder, at de fleste instruktioner kan gennemføres i én clockcyklus, hvor traditionelle 8051-baserede design (MCS-51) ofte brugte 12 clockcyklusser pr. maskincyklus. I praksis giver dette en betydeligt højere ydelse pr. clockcyklus — teoretisk op til 12 gange højere sammenlignet med MCS-51 — selvom den faktiske gevinst afhænger af instruktionstypen og kodeblokken.
Registerfil og instruktionssæt
Kernen indeholder 32 generelle 8-bit registre, som er direkte forbundet med ALU'en. Det gør det muligt at hente to operander fra registret i samme cyklus og udføre aritmetiske eller logiske instruktioner hurtigt. Instruktionssættet er designet til at være kompakt og effektivt, hvilket også gør det velanbefalet for kompilerede sprog som C.
- Instruktionstyper: aritmetik, logik, bitmanipulation, branche, ind-/udgangenheder, og porte til periferi.
- Hukommelsestyper: on-chip flash til program, SRAM til data og ofte en lille mængde EEPROM til vedvarende data.
- Pipeline: to trin (fetch & execute), hvilket understøtter enkel-cyklus-udførelse af mange instruktioner.
Periferiudstyr og energistyring
AVR-familien leveres med et bredt udvalg af indbyggede periferifunktioner, afhængig af serie og model. Typiske perifere enheder omfatter:
- Timer/Counter og PWM
- ADC (analog-til-digital konverter)
- USART, SPI og TWI/I²C kommunikation
- Watchdog-timer og hardware-bootloader-støtte
- Analoge comparatorer og forskellige lavenergi-dvaleformer
Der er også veldesignede lavstrømsfunktioner, som gør AVR velegnet til batteridrevne applikationer.
Familier og anvendelser
AVR-familien omfatter flere undergrupper, f.eks. tinyAVR (meget små og simple enheder), megaAVR (mellemklasse med flere perifere enheder) og XMEGA (avancerede enheder med højere performance og flere funktioner). AVR-mikrocontrollere har fundet bred anvendelse inden for indlejrede systemer, industrielt udstyr, forbrugerelektronik og i hobby- og uddannelsesmiljøer — især fordi ATmega-serien er kernen i mange Arduino-kort, som har øget populariteten.
Historie og navnetolkning
Navnet "AVR" forbindes ofte med navnene Alf‑Egil Bogen og Vegard Wollan, de to ingeniører, som stod bag det oprindelige design, og derfor omtales det nogle gange uformelt som "Alf og Vegard's RISC". Det er dog værd at bemærke, at forkortelsens officielle betydning ikke altid er entydigt formaliseret af Atmel, og betegnelsen bruges primært historisk/umuligt i fællesskabet.
AVR voksede i udbredelse i løbet af 2000'erne, blev et standardvalg i mange små og mellemstore indlejrede projekter, og i 2016 blev Atmel opkøbt af Microchip Technology — en udvikling som har ført til fortsat support og integration i Microchips produktfamilie.
Sammenfatning
AVR-mikrocontrolleren er kendetegnet ved en enkel og effektiv RISC-arkitektur med on-chip flash, en stor registerfil direkte tilknyttet ALU'en og et rigt udvalg af periferi. Dens evne til at udføre mange instruktioner i en enkelt clockcyklus, sammen med gode udviklingsværktøjer og populær støtte i community-projekter som Arduino, gør AVR til et attraktivt valg for både industrielle og hobbyprojekter.

