AVR

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 25. december 2015; verifikation kræver 41 redigeringer .

AVR  er en familie af otte-bit mikrocontrollere , tidligere fremstillet af Atmel , derefter af Microchip . Udviklingsår - 1996 .

Historien om AVR-arkitekturen

Ideen om at udvikle en ny RISC - kerne tilhører to studerende fra det norske universitet for naturvidenskab og teknologi (NTNU) fra den norske by Trondheim - Alf-Egil Bogen og Vegard Wollen. I 1995 besluttede Bogen og Wollen at foreslå det amerikanske selskab Atmel , som var kendt for sine Flash-hukommelseschips , at frigive en ny 8-bit RISC-mikrocontroller og forsyne den med Flash-hukommelse til programmer på en enkelt chip med en computerkerne.

Idéen blev godkendt af Atmel Corp., og det blev besluttet straks at investere i denne udvikling. I slutningen af ​​1996 blev en eksperimentel AT90S1200 mikrocontroller frigivet, og i anden halvdel af 1997 begyndte Atmel Corporation masseproduktion af en ny familie af mikrocontrollere, deres reklame og teknisk support.

Den nye kerne blev patenteret og fik navnet AVR . Der er flere fortolkninger af denne forkortelse. Nogen hævder, at dette er A avanceret Virtual R ISC, andre mener, at A lf Egil Bogen V egard Wollan R ISC ikke kunne have været her.

Beskrivelse af arkitektur

AVR-mikrocontrollere har en Harvard-arkitektur (programmet og data er i forskellige adresserum) og et kommandosystem tæt på RISC -ideologien . AVR-processoren har 32 8-bit generelle registre kombineret til en registerfil. I modsætning til den "ideelle" RISC er registrene ikke absolut ortogonale:

Kommandosystem

Kommandosystemet for AVR-mikrocontrollere er højt udviklet og inkluderer fra 90 til 135 [1] forskellige instruktioner i forskellige modeller.

De fleste instruktioner fylder kun 1 hukommelsesplacering (16 bit).

De fleste kommandoer udføres i 1 cyklus .

Hele sættet af AVR-mikrocontroller-kommandoer kan opdeles i flere grupper:

Perifere enheder styres via dataadresserummet. For nemheds skyld er der "forkortede kommandoer" IN / OUT.

Familier af mikrocontrollere

Standard familier:

Som regel angiver tallene efter præfikset mængden af ​​indbygget flashhukommelse (i KB) og ændringen af ​​controlleren. Nemlig den maksimale effekt på to efter præfikset angiver mængden af ​​hukommelse, og de resterende tal bestemmer modifikationen (for eksempel ATmega128 - 128 KB hukommelse; ATmega168 - 16 KB hukommelse, modifikation 8; ATtiny44 og ATtiny45 - 4 KB hukommelse, modifikation 4 og 5, henholdsvis).

På basis af standardfamilier produceres mikrocontrollere, tilpasset til specifikke opgaver:

Ud over ovennævnte familier producerer ATMEL 32-bit mikrocontrollere af AVR32 -familien , som inkluderer AT32UC3 (clockfrekvens op til 66 MHz) og AT32AP7000 (clockfrekvens op til 150 MHz) underfamilierne.

Controllerversioner

AT (mega/tiny)xxx er den grundlæggende version.
ATxxx L  - versioner af controllere, der arbejder ved en reduceret (lav) forsyningsspænding (2,7 V).
ATxxx V  - versioner af controllere, der arbejder på lav forsyningsspænding (1,8 V).
ATxxx P  - versioner med lavt strømforbrug (op til 100 nA i Power-down-tilstand), picoPower- teknologi bruges (annonceret i juli 2007), pin-out og funktionelt kompatibel med tidligere versioner.
ATxxx A  - strømforbrug reduceres, hele spektret af clockfrekvenser og forsyningsspændinger fra de to tidligere versioner er dækket (også i nogle modeller tilføjes nye funktioner og nye registre, men fuld kompatibilitet med tidligere versioner er bevaret). Mikrocontrollere "A" og "non-A" har normalt den samme signatur, hvilket forårsager nogle vanskeligheder, da Fuse-bits er forskellige.

Modelnummeret efterfølges af et indeks, der angiver versionen. Tallene (8, 10, 16, 20) før indekset angiver den maksimale frekvens, ved hvilken mikrocontrolleren kan fungere stabilt ved sin normale forsyningsspænding).

Det første bogstav i indekset angiver skrogvarianten:

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





Følgende bogstav betyder temperaturområdet og produktionsegenskaber:

ATxxx-x C  - kommercielt temperaturområde (0 °C - 70 °C)
ATxxx-x A  - temperaturområde -20 °C - +85 °C, ved brug af blyfrit loddemiddel
ATxxx-x I  - industrielt temperaturområde (-40 °C C - +85 °C)
ATxxx-x U  - Industrielt temperaturområde (-40 °C - +85 °C), ved brug af blyfrit loddemiddel
ATxxx-x H  - Industrielt temperaturområde (-40 °C - +85 °C) , ved hjælp af NiPdAu
ATxxx-x N  - udvidet temperaturområde (-40 °C - +105 °C), ved brug af blyfrit lodning
ATxxx-x F  - udvidet temperaturområde (-40 °C - +125 °C)
ATxxx-x Z  - biltemperaturområde (-40 °C - +125 °C)
ATxxx-x D  - udvidet biltemperaturområde (-40 °C - +150 °C)

det sidste bogstav R står for Tape & Reel-emballage til automatiserede montagesystemer.

I/O-enheder MK

MK AVR har en udviklet periferi:

Bemærk: Ikke alle eksterne enheder kan aktiveres af software. Nogle af dem skal først aktiveres af bits i sikringsregistrene, som kun kan ændres af programmøren.

Udviklingsværktøjer

Udviklingshardware

Atmels officielle AVR-udviklingsværktøjer:

Der er også mange tredjepartsværktøjer, især amatørværktøjer.

Udviklingssoftware

Gratis
  • Algorithm Builder  er et algoritmisk softwareudviklingsmiljø til mikrocontrollere med AVR-arkitektur (sidst opdateret i 2010).
  • AVR-Eclipse er et plug-in til Eclipse udviklingsmiljøet, der giver dig mulighed for at udvikle programmer i C/C++ og assembler, programmere og fejlfinde controllere ved hjælp af en ekstern værktøjskæde (Atmel AVR Toolchain, WinAVR)
  • avra er en konsol makro assembler til Linux/MacOS.
  • Avrdude er et værktøj til at blinke mikrocontrollere.
  • AVRDUDE_PROG 3.1 - visuel editor.
  • Code::Blocks  er et udviklingsmiljø på tværs af platforme.
  • DDD  er en grafisk grænseflade til avr-gdb.
  • eXtreme Burner - AVR er et grafisk interface til USBasp-baserede USB AVR-programmører.
  • Khazama AVR Programmer er en Windows GUI til USBasp og avrdude.
  • PonyProg  er en universel programmør via LPT-port, COM-port (USB-emulator af COM-port er også understøttet).
  • V-USB er en softwareimplementering af USB-protokollen til AVR-mikrocontrollere.
  • WinAVR er en softwarepakke til Windows , der inkluderer en compiler, assembler, linker og andre værktøjer.
  • Zadig 2.3
Proprietær
  • Atmel Studio  er en gratis IDE fra Atmel selv
  • IAR AVR  - kommercielt udviklingsmiljø for AVR mikrocontrollere
  • Bascom-avr  er et udviklingsmiljø baseret på et Basic - lignende programmeringssprog.
  • CodeVisionAVR - C  compiler og programmør - CVAVR, indledende kodegenerator.
  • Proteus  er en simulator af elektriske kredsløb, komponenter, herunder forskellige MK og andet perifert udstyr.

AVR-arkitekturen tillader også brug af operativsystemer i applikationsudvikling, for eksempel FreeRTOS , uOS , ChibiOS / RT , scmRTOS ( C ++ ), TinyOS , Femto OS og andre, samt LinuxAVR32 . [2]

Se også

Links

Noter

  1. Arkiveret kopi . Hentet 28. januar 2021. Arkiveret fra originalen 6. maj 2021.
  2. AVR32737: AVR32 AP7 Linux Kom godt i gang (februar 2008). Hentet 24. april 2017. Arkiveret fra originalen 29. marts 2017.