AVR

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 25 decembrie 2015; verificarea necesită 41 de modificări .

AVR este o familie de microcontrolere  pe opt biți , fabricate anterior de Atmel , apoi de Microchip . An de dezvoltare - 1996 .

Istoria arhitecturii AVR

Ideea dezvoltării unui nou RISC - nucleu aparține a doi studenți ai Universității Norvegiene de Știință și Tehnologie (NTNU) din orașul norvegian Trondheim - Alf-Egil Bogen și Vegard Wollen. În 1995, Bogen și Wollen au decis să propună corporației americane Atmel , care era cunoscută pentru cipurile sale de memorie Flash , să lanseze un nou microcontroler RISC pe 8 biți și să-i ofere memorie Flash pentru programe pe un singur cip cu un nucleu de calcul.

Ideea a fost aprobată de Atmel Corp., și s-a decis să se investească imediat în această dezvoltare. La sfârșitul anului 1996, a fost lansat un microcontroler experimental AT90S1200, iar în a doua jumătate a anului 1997, Atmel Corporation a început producția în masă a unei noi familii de microcontrolere, publicitatea și suportul tehnic.

Noul nucleu a fost brevetat și numit AVR . Există mai multe interpretări ale acestei abrevieri. Cineva susține că acesta este A dvanced Virtual R ISC, alții cred că A lf Egil Bogen V egard Wollan R ISC nu ar fi putut fi aici.

Descrierea arhitecturii

Microcontrolerele AVR au o arhitectură Harvard (programul și datele sunt în spații de adrese diferite) și un sistem de comandă apropiat de ideologia RISC . Procesorul AVR are 32 de registre de uz general pe 8 biți combinate într-un fișier de registru. Spre deosebire de RISC „ideal”, registrele nu sunt absolut ortogonale:

Sistem de comandă

Sistemul de comandă al microcontrolerelor AVR este foarte dezvoltat și include de la 90 la 135 [1] instrucțiuni diferite în diferite modele.

Majoritatea instrucțiunilor ocupă doar 1 locație de memorie (16 biți).

Majoritatea comenzilor sunt executate într-un singur ciclu .

Întregul set de comenzi pentru microcontrolerul AVR poate fi împărțit în mai multe grupuri:

Dispozitivele periferice sunt controlate prin intermediul spațiului de adrese de date. Pentru comoditate, există „comenzi abreviate” IN / OUT.

Familii de microcontrolere

Familii standard:

De regulă, numerele de după prefix indică cantitatea de memorie flash încorporată (în KB) și modificarea controlerului. Și anume, puterea maximă a doi după prefix indică cantitatea de memorie, iar numerele rămase determină modificarea (de exemplu, ATmega128 - 128 KB memorie; ATmega168 - 16 KB memorie, modificarea 8; ATtiny44 și ATtiny45 - 4 KB memorie, modificările 4 și, respectiv, 5).

Pe baza familiilor standard, sunt produse microcontrolere, adaptate pentru sarcini specifice:

În plus față de familiile de mai sus, ATMEL produce microcontrolere pe 32 de biți din familia AVR32 , care include subfamiliile AT32UC3 (frecvență de ceas până la 66 MHz) și AT32AP7000 (frecvență de ceas până la 150 MHz).

Versiuni controler

AT (mega/tiny)xxx este versiunea de bază.
ATxxx L  - versiuni de controlere care funcționează la o tensiune de alimentare redusă (scăzută) (2,7 V).
ATxxx V  - versiuni de controlere care funcționează la tensiune de alimentare scăzută (1,8 V).
ATxxx P  - versiuni cu putere redusă (până la 100 nA în modul Power-down), se utilizează tehnologia picoPower (anunțată în iulie 2007), pin-out și compatibil funcțional cu versiunile anterioare.
ATxxx A  - se reduce consumul de curent, se acoperă întreaga gamă de frecvențe de ceas și tensiuni de alimentare ale celor două versiuni anterioare (de asemenea, la unele modele se adaugă noi caracteristici și registre noi, dar se păstrează compatibilitatea deplină cu versiunile anterioare). Microcontrolerele „A” și „non-A” au de obicei aceeași semnătură, ceea ce provoacă unele dificultăți, deoarece biții Fuse sunt diferiți.

Numărul modelului este urmat de un index care indică versiunea. Numerele (8, 10, 16, 20) dinaintea indexului indică frecvența maximă la care microcontrolerul poate funcționa stabil la tensiunea de alimentare normală).

Prima literă a indexului indică varianta carenei:

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





Următoarea literă înseamnă intervalul de temperatură și caracteristicile de fabricație:

ATxxx-x C  - interval de temperatură comercial (0 °C - 70 °C)
ATxxx-x A  - interval de temperatură -20 °C - +85 °C, folosind lipire fără plumb
ATxxx-x I  - interval de temperatură industrial (-40 °C C - +85 °C)
ATxxx-x U  - Interval de temperatură industrial (-40 °C - +85 °C), folosind lipire fără plumb
ATxxx-x H  - Interval de temperatură industrial (-40 °C - +85 °C), folosind NiPdAu
ATxxx-x N  - interval de temperatură extins (-40 °C - +105 °C), folosind lipire fără plumb
ATxxx-x F  - interval de temperatură extins (-40 °C - +125 °C)
ATxxx-x Z  - interval de temperatură auto (-40 °C - +125 °C)
ATxxx-x D  - interval extins de temperatură auto (-40 °C - +150 °C)

ultima literă R reprezintă ambalajul Tape & Reel pentru sisteme de asamblare automate.

Dispozitive I/O MK

MK AVR au o periferie dezvoltată:

Notă: Nu toate perifericele pot fi activate de software. Unele dintre ele trebuie mai întâi activate prin biți din registrele Fuses, care pot fi modificate doar de programator.

Instrumente de dezvoltare

Hardware de dezvoltare

Instrumente oficiale de dezvoltare AVR Atmel:

Există, de asemenea, multe instrumente de la terți, în special cele pentru amatori.

Software de dezvoltare

Gratuit
  • Algorithm Builder  este un mediu de dezvoltare software algoritmică pentru microcontrolere cu arhitectură AVR (ultima actualizare în 2010).
  • AVR-Eclipse este un plug-in pentru mediul de dezvoltare Eclipse care vă permite să dezvoltați programe în C/C++ și controlere de asamblare, program și depanare folosind un lanț de instrumente extern (Atmel AVR Toolchain, WinAVR)
  • avra este un asamblator de macroconsolă pentru Linux/MacOS.
  • Avrdude este un instrument pentru intermiterea microcontrolerelor.
  • AVRDUDE_PROG 3.1 - editor vizual.
  • Code::Blocks  este un mediu de dezvoltare multiplatformă.
  • DDD  este o interfață grafică pentru avr-gdb.
  • eXtreme Burner - AVR este o interfață grafică pentru programatorii USB AVR bazați pe USBasp.
  • Khazama AVR Programmer este o interfață grafică Windows pentru USBasp și avrdude.
  • PonyProg  este un programator universal prin portul LPT, portul COM (este acceptat și emulatorul USB al portului COM).
  • V-USB este o implementare software a protocolului USB pentru microcontrolere AVR.
  • WinAVR este un pachet software pentru Windows care include un compilator, un asamblator, un linker și alte instrumente.
  • Zadig 2.3
Proprietar
  • Atmel Studio  este un IDE gratuit de la Atmel însuși
  • IAR AVR  - mediu de dezvoltare comercială pentru microcontrolere AVR
  • Bascom-avr  este un mediu de dezvoltare bazat pe un limbaj de programare de tip Basic .
  • CodeVisionAVR -  compilator și programator C - CVAVR, generator inițial de cod.
  • Proteus  este un simulator de circuite electrice, componente, inclusiv diverse MK și alte echipamente periferice.

Arhitectura AVR permite, de asemenea, utilizarea sistemelor de operare în dezvoltarea aplicațiilor, de exemplu, FreeRTOS , uOS , ChibiOS / RT , scmRTOS ( C ++ ), TinyOS , Femto OS și altele, precum și Linux pe AVR32 . [2]

Vezi și

Link -uri

Note

  1. Copie arhivată . Preluat la 28 ianuarie 2021. Arhivat din original la 6 mai 2021.
  2. AVR32737: AVR32 AP7 Linux Noțiuni introductive (februarie 2008). Consultat la 24 aprilie 2017. Arhivat din original pe 29 martie 2017.