AVR

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 december 2015; verifiering kräver 41 redigeringar .

AVR  är en familj av åttabitars mikrokontroller , tidigare tillverkade av Atmel , sedan av Microchip . Utvecklingsår - 1996 .

Historien om AVR-arkitekturen

Idén om att utveckla en ny RISC - kärna tillhör två studenter vid Norges tekniska universitet (NTNU) från den norska staden Trondheim - Alf-Egil Bogen och Vegard Wollen. 1995 beslutade Bogen och Wollen att föreslå det amerikanska företaget Atmel , som var känt för sina Flash -minneschips , att släppa en ny 8-bitars RISC-mikrokontroller och förse den med Flash-minne för program på ett enda chip med en datorkärna.

Idén godkändes av Atmel Corp., och det beslutades att omedelbart investera i denna utveckling. I slutet av 1996 släpptes en experimentell AT90S1200 mikrokontroller, och under andra halvan av 1997 började Atmel Corporation massproduktion av en ny familj av mikrokontroller, deras reklam och teknisk support.

Den nya kärnan patenterades och fick namnet AVR . Det finns flera tolkningar av denna förkortning. Någon hävdar att detta är A dvanced Virtual R ISC, andra tror att A lf Egil Bogen V egard Wollan R ISC inte kunde ha varit här.

Beskrivning av arkitektur

AVR-mikrokontroller har en Harvard-arkitektur (programmet och data finns i olika adressutrymmen) och ett kommandosystem nära RISC- ideologin . AVR-processorn har 32 8-bitars allmänna register kombinerade till en registerfil. Till skillnad från den "ideala" RISC är registren inte absolut ortogonala:

Kommandosystem

Kommandosystemet för AVR-mikrokontroller är högt utvecklat och innehåller från 90 till 135 [1] olika instruktioner i olika modeller.

De flesta instruktioner tar bara upp en minnesplats (16 bitar).

De flesta kommandon exekveras i en cykel .

Hela uppsättningen av AVR-mikrokontrollerkommandon kan delas in i flera grupper:

Kringutrustning styrs via dataadressutrymmet. För enkelhetens skull finns "förkortade kommandon" IN / OUT.

Familjer av mikrokontroller

Standardfamiljer:

Som regel indikerar siffrorna efter prefixet mängden inbyggt flashminne (i KB) och modifieringen av styrenheten. Den maximala effekten av två efter prefixet indikerar nämligen mängden minne, och de återstående siffrorna bestämmer modifieringen (till exempel ATmega128 - 128 KB minne; ATmega168 - 16 KB minne, modifiering 8; ATtiny44 och ATtiny45 - 4 KB minne, modifieringar 4 respektive 5).

På basis av standardfamiljer produceras mikrokontroller, anpassade för specifika uppgifter:

Utöver ovanstående familjer producerar ATMEL 32-bitars mikrokontroller av AVR32 -familjen , som inkluderar underfamiljerna AT32UC3 (klockfrekvens upp till 66 MHz) och AT32AP7000 (klockfrekvens upp till 150 MHz).

Kontrollerversioner

AT (mega/tiny)xxx är grundversionen.
ATxxx L  - versioner av styrenheter som arbetar med en reducerad (låg) matningsspänning (2,7 V).
ATxxx V  - versioner av styrenheter som arbetar på låg matningsspänning (1,8 V).
ATxxx P  - lågeffektversioner (upp till 100 nA i Power-down-läge), picoPower- teknik används (tillkännagiven i juli 2007), pin-out och funktionellt kompatibel med tidigare versioner.
ATxxx A  - strömförbrukningen minskar, hela området av klockfrekvenser och matningsspänningar för de två tidigare versionerna täcks (även i vissa modeller läggs nya funktioner och nya register till, men full kompatibilitet med tidigare versioner bevaras). Mikrokontroller "A" och "icke-A" har vanligtvis samma signatur, vilket orsakar vissa svårigheter, eftersom säkringsbitarna är olika.

Modellnumret följs av ett index som anger versionen. Siffrorna (8, 10, 16, 20) före indexet indikerar den maximala frekvensen vid vilken mikrokontrollern kan arbeta stabilt vid sin normala matningsspänning).

Den första bokstaven i indexet indikerar skrovvarianten:

ATxxx- P  - DIP-paket
ATxxx- A  - TQFP-
paket ATxxx - J  - PLCC-paket
ATxxx- M  - MLF
-paket ATxxx- MA  - UDFN/USON-paket
ATxxx- C  - CBGA- paket ATxxx- CK -  LGA -paket ATxxx- S  - EIAJ-paket SOIC ATxxx- SS  - JEDEC SOIC smalt paket ATxxx- T  - TSOP -paket ATxxx- TS  - SOT-23- paket (ATtiny4/5/9/10) ATxxx- X  - TSSOP- paket





Följande bokstav betyder temperaturintervall och tillverkningsegenskaper:

ATxxx-x C  - kommersiellt temperaturområde (0 °C - 70 °C)
ATxxx-x A  - temperaturområde -20 °C - +85 °C, med blyfritt lod
ATxxx-x I  - industriellt temperaturområde (-40 °C C - +85 °C)
ATxxx-x U  - Industriellt temperaturområde (-40 °C - +85 °C), med blyfritt lod
ATxxx-x H  - Industrielt temperaturområde (-40 °C - +85) °C) , med NiPdAu
ATxxx-x N  - utökat temperaturområde (-40 °C - +105 °C), med blyfritt lod
ATxxx-x F  - utökat temperaturområde (-40 °C - +125 °C)
ATxxx-x Z  - biltemperaturområde (-40 °C - +125 °C)
ATxxx-x D  - utökat temperaturområde för bilar (-40 °C - +150 °C)

den sista bokstaven R står för Tape & Reel packaging för automatiserade monteringssystem.

I/O-enheter MK

MK AVR har en utvecklad periferi:

Obs! Alla kringutrustning kan inte aktiveras av programvara. Vissa av dem måste först aktiveras av bitar i säkringsregistren, som endast kan ändras av programmeraren.

Utvecklingsverktyg

Utvecklingshårdvara

Atmel officiella AVR-utvecklingsverktyg:

Det finns också många tredjepartsverktyg, särskilt amatörverktyg.

Utvecklingsprogram

Gratis
  • Algorithm Builder  är en algoritmisk mjukvaruutvecklingsmiljö för mikrokontroller med AVR-arkitektur (senast uppdaterad 2010).
  • AVR-Eclipse är en plug-in för Eclipse utvecklingsmiljö som låter dig utveckla program i C/C++ och assembler, programmera och felsöka kontroller med hjälp av en extern verktygskedja (Atmel AVR Toolchain, WinAVR)
  • avra är en konsolmakrosamlare för Linux/MacOS.
  • Avrdude är ett verktyg för att blinka mikrokontroller.
  • AVRDUDE_PROG 3.1 - visuell redigerare.
  • Code::Blocks  är en plattformsoberoende utvecklingsmiljö.
  • DDD  är ett grafiskt gränssnitt till avr-gdb.
  • eXtreme Burner - AVR är ett grafiskt gränssnitt för USBasp-baserade USB AVR-programmerare.
  • Khazama AVR Programmer är ett Windows GUI för USBasp och avrdude.
  • PonyProg  är en universell programmerare via LPT-port, COM-port (USB-emulator av COM-port stöds också).
  • V-USB är en mjukvaruimplementering av USB-protokollet för AVR-mikrokontroller.
  • WinAVR är ett mjukvarupaket för Windows som innehåller en kompilator, assembler, länkare och andra verktyg.
  • Zadig 2.3
Proprietär
  • Atmel Studio  är en gratis IDE från Atmel själv
  • IAR AVR  - kommersiell utvecklingsmiljö för AVR-mikrokontroller
  • Bascom-avr  är en utvecklingsmiljö baserad på ett Basic - liknande programmeringsspråk.
  • CodeVisionAVR - C -  kompilator och programmerare - CVAVR, initial kodgenerator.
  • Proteus  är en simulator av elektriska kretsar, komponenter, inklusive olika MK och annan kringutrustning.

AVR-arkitekturen tillåter också användning av operativsystem i applikationsutveckling, till exempel FreeRTOS , uOS , ChibiOS / RT , scmRTOS ( C ++ ), TinyOS , Femto OS och andra, samt LinuxAVR32 . [2]

Se även

Länkar

Anteckningar

  1. Arkiverad kopia . Hämtad 28 januari 2021. Arkiverad från originalet 6 maj 2021.
  2. AVR32737: AVR32 AP7 Linux Komma igång (februari 2008). Hämtad 24 april 2017. Arkiverad från originalet 29 mars 2017.