Mikrokontroléry AVR - AVR microcontrollers

Logo AVR
Různé starší mikrokontroléry AVR: ATmega8 v 28pólovém úzkém dvojitém řadovém balení ( DIP -28N), ATxmega128A1 ve 100kolíkovém tenkém čtyřpásmovém balení ( TQFP -100), ATtiny45 v 8pólovém malém obrysu ( SO -8) balík.
ATmega328 P v 28pólovém úzkém duálním řadovém balení ( DIP -28N). Běžně se vyskytuje na deskách Arduino .

AVR je rodina mikrokontrolérů vyvinutých od roku 1996 společností Atmel , získanou společností Microchip Technology v roce 2016. Jedná se o modifikované 8bitové jednočipové mikrokontroléry RISC s architekturou Harvard . AVR byla jednou z prvních rodin mikrokontrolérů, které pro ukládání programů používaly flash paměť na čipu , na rozdíl od jednorázových programovatelných ROM , EPROM nebo EEPROM, které v té době používaly jiné mikrokontroléry.

Mikrokontroléry AVR nacházejí mnoho aplikací jako vestavěné systémy . Oni jsou obzvláště obyčejné v fandy a vzdělávací embedded aplikace, popularizovaných jejich zahrnutí v mnoha Arduino řady open hardwarových vývojových desek.

Dějiny

Architekturu AVR navrhli dva studenti Norského technologického institutu (NTH), Alf-Egil Bogen a Vegard Wollan.

Atmel říká, že název AVR není zkratka a nic konkrétního nestojí. Tvůrci AVR neposkytují žádnou definitivní odpověď na to, co znamená výraz „AVR“. Je však obecně přijímáno, že AVR znamená procesor R ISC A lf a V egard . Všimněte si, že použití "AVR" v tomto článku obecně odkazuje na 8bitovou řadu RISC mikrokontrolérů Atmel AVR.

Původní AVR MCU byl vyvinut v místním domě ASIC v norském Trondheimu, v té době nazývaném Nordic VLSI, nyní Nordic Semiconductor , kde Bogen a Wollan pracovali jako studenti. Byl známý jako μRISC (Micro RISC) a byl k dispozici jako silikonový IP/stavební blok od společnosti Nordic VLSI. Když byla technologie prodána společnosti Atmel ze společnosti Nordic VLSI , byla vnitřní architektura dále rozvíjena společnostmi Bogen a Wollan v Atmel Norway, dceřiné společnosti společnosti Atmel. Konstruktéři úzce spolupracoval s kompilátor spisovatelů v IAR Systems , aby zajistily, že množina AVR instrukce za předpokladu efektivní kompilace z jazyků na vysoké úrovni .

Mezi první z řady AVR patřil AT90S8515, který má v 40pólovém DIP balíčku stejný vývod jako mikrokontrolér 8051 , včetně externí multiplexované adresy a datové sběrnice. Polarita linky RESET byla opačná (8051 má aktivní-vysoký RESET, zatímco AVR má aktivní-nízký RESET ), ale jiný než ten pinout byl identický.

8bitová architektura mikrokontroléru AVR byla představena v roce 1997. Do roku 2003 Atmel dodal 500 milionů flash mikrokontrolérů AVR. Platforma Arduino , vyvinutá pro jednoduché projekty elektroniky, byla vydána v roce 2005 a představovala mikrokontroléry ATmega8 AVR.

Přehled zařízení

AVR je upravený stroj Harvardské architektury , kde jsou program a data uložena v samostatných fyzických paměťových systémech, které se objevují v různých adresních prostorech, ale mají schopnost číst datové položky z programové paměti pomocí speciálních instrukcí.

Základní rodiny

AVR se obecně dělí na následující:

tinyAVR - řada ATtiny

Velikost blesku Frekvence
[MHz]
Balík SRAM EEPROM Rok vydání
0,5 - 32 kB 1,6 - 20 Balíček 6-32 pinů 64-3072 bajtů 64 - 256 bajtů 2016

Řada ATtiny je vybavena malým balíčkem mikrokontrolérů s omezenou sadou periferií. To však zahrnuje:

  • Periferie stejné nebo vyšší než řada megaAVR 0
  • Systém událostí
  • Vylepšená sada instrukcí AVRxt, násobení hardwaru


megaAVR - řada ATmega

Velikost blesku Frekvence
[MHz]
Balík SRAM EEPROM Rok vydání
4 - 256 kB 1,6 - 20 Balíček 28-100 pinů 256 - 8192 bajtů 256 - 4096 bajtů 2016

Řada ATmega je vybavena mikrokontrolérem, který poskytuje solidní množství programové paměti, a také širokou škálou dostupných pinů. Má také funkce, jako například:

  • Rozšířená sada instrukcí (znásobte instrukce a instrukce pro manipulaci s většími pamětí programu)
  • Rozsáhlá periferní sada '
  • Systém událostí
  • Nové periferie s vylepšenými funkcemi
  • Vylepšená sada instrukcí AVRxt


AVR Dx - Řada AVR Dx nabízí řadu mikrořadičů zaměřených na HCI , úpravu analogového signálu a funkční bezpečnost.

Velikost blesku Frekvence
[MHz]
Balík SRAM EEPROM Rok vydání
16 - 128 kB 20 - 24 při 1,8-5,5V Balíček 14 - 64 pinů 4 - 16 KB 512 bajtů 2020

Čísla dílů jsou formátována jako AVRffDxpp, kde ff je velikost blesku, x je rodina a pp je počet pinů. Příklad: AVR128DA64-64pinová řada DA se 128k bleskem Mezi všechna zařízení patří tato rodina:

  • časovač Async typu D, který může běžet rychleji než CPU
  • 12bitový ADC
  • 10bitový DAC


  • Řada AVR DA (začátek roku 2020)-Díky vysoké hustotě paměti jsou tyto MCU vhodné pro funkce náročné na kabelovou i bezdrátovou komunikaci.
    • integrované senzory pro kapacitní dotykové měření ( HCI )
    • nabízí nejnovější CIP a robustní integrované analogové portfolio
    • žádný externí vysokofrekvenční krystal
  • Řada AVR DB (polovina konce roku 2020)-dědí mnoho funkcí z rodiny DA a přidává vlastní;
    • Přidá 2 nebo 3 operační čipy
    • MultiVoltage IO (MVIO) na PORTC
    • Podporuje externí HF krystal
  • Řada AVR DD (dosud nevydána od září 2021)-malé mikrokontroléry navržené tak, aby přinášely ovládání v reálném čase a provoz s více napětími do průmyslového řízení aplikací, produktů pro domácí spotřebiče, automobilového průmyslu a internetu věcí (IoT).
    • Podpora MVIO na 3 nebo 4 pinech
  • Řada AVR EA (dosud nevydána od září 2021)
    • 8-64k blesk
    • Balíček 28-48 pinů


XMEGA

Velikost blesku Frekvence
[MHz]
Balík SRAM EEPROM Rok vydání
16 - 256 kB 32 Balíček 44-100 pinů 1 - 32 KB 512 - 2048 bajtů -

řada ATxmega nabízí širokou škálu periferií a funkcí, jako je;

  • Rozšířené funkce výkonu, jako je DMA, „Event System“ a podpora kryptografie
  • Rozsáhlá periferní sada s ADC


Aplikačně specifický AVR

  • megaAVR se speciálními funkcemi, které se nenacházejí u ostatních členů rodiny AVR, jako je LCD řadič, USB řadič, pokročilý PWM, CAN atd.

FPSLIC (AVR s FPGA)

  • FPGA brány 5k až 40k
  • SRAM pro kód programu AVR, na rozdíl od všech ostatních AVR
  • Jádro AVR může pracovat až na frekvenci 50 MHz

32bitové AVR

  • V roce 2006 Atmel vydal mikrokontroléry založené na 32bitové architektuře AVR32 . Jednalo se o zcela odlišnou architekturu nesouvisející s 8bitovým AVR, která měla konkurovat procesorům založeným na ARM . Měl 32bitovou datovou cestu, instrukce SIMD a DSP spolu s dalšími funkcemi pro zpracování zvuku a videa. Soubor instrukcí byl podobný ostatním RISC jádrům, ale nebyl kompatibilní s původním AVR (ani žádným z různých jader ARM). Od té doby byla podpora AVR32 z Linuxu od jádra 4.12 zrušena; podpora překladače pro architekturu v GCC nebyla nikdy začleněna do centrálního úložiště zdrojového kódu kompilátoru a byla k dispozici především ve vidlici podporované prodejcem. V době, kdy byl AVR32 představen, byl Atmel již držitelem licence architektury ARM , přičemž mikrokontroléry ARM7 a ARM9 byly vydány před a souběžně s AVR32; později Atmel zaměřil většinu vývojového úsilí na 32bitové čipy s jádry ARM Cortex-M a Cortex-A .

Architektura zařízení

Flash , EEPROM a SRAM jsou integrovány do jednoho čipu, takže ve většině aplikací není potřeba externí paměť. Některá zařízení mají možnost paralelní externí sběrnice umožňující přidání další datové paměti nebo zařízení mapovaných na paměť. Téměř všechna zařízení (kromě nejmenších čipů TinyAVR) mají sériová rozhraní, která lze použít k připojení větších sériových EEPROM nebo flash čipů.

Programová paměť

Programové instrukce jsou uloženy v energeticky nezávislé flash paměti . Přestože jsou MCU 8bitové, každá instrukce trvá jedno nebo dvě 16bitová slova.

Velikost paměti programu je obvykle uvedena v pojmenování samotného zařízení (např. Řada ATmega64x má 64 KB flash, zatímco řada ATmega32x má 32 KB).

Neexistuje paměť pro programovou paměť mimo čip; veškerý kód spuštěný jádrem AVR musí být uložen v blesku na čipu. Toto omezení však neplatí pro čipy AT94 FPSLIC AVR/FPGA.

Interní datová paměť

Datový adresní prostor se skládá ze souboru registru , I/O registrů a SRAM . Některé malé modely také mapují ROM programu do datového adresního prostoru, ale větší modely nikoli.

Interní registry

Atmel ATxmega128A1 ve 100pólovém balíčku TQFP

AVR mají 32 jednobajtových registrů a jsou klasifikovány jako 8bitová zařízení RISC.

Ve variantách architektury AVR tinyAVR a megaAVR jsou pracovní registry mapovány jako prvních 32 paměťových adres (0000 16 –001F 16 ), následovaných 64 I/O registry (0020 16 –005F 16 ). V zařízeních s mnoha periferiemi následuje po těchto registrech 160 registrů „rozšířených I/O“, přístupných pouze jako I/O mapované v paměti (0060 16 –00FF 16 ).

Skutečný SRAM začíná po těchto sekcích registru, na adrese 0060 16 nebo v zařízeních s „rozšířeným I/O“ na 0100 16 .

I když existují samostatná schémata adresování a optimalizované operační kódy pro přístup k souboru registru a prvních 64 I/O registrů, všechny lze také adresovat a manipulovat s nimi, jako by byly v SRAM.

Úplně nejmenší varianta tinyAVR používá redukovanou architekturu s pouhými 16 registry (r0 až r15 jsou vynechány), které nejsou adresovatelné jako paměťová místa. Paměť I/O začíná na adrese 0000 16 , následuje SRAM. Tato zařízení mají navíc mírné odchylky od standardní sady instrukcí AVR. Nejpozoruhodnější je, že pokyny pro přímé načítání/ukládání (LDS/STS) byly sníženy ze 2 slov (32 bitů) na 1 slovo (16 bitů), což omezuje celkovou přímou adresovatelnou paměť (součet I/O a SRAM) na 128 bajtů. Naopak 16bitový adresový prostor instrukce nepřímého zatížení (LD) je rozšířen tak, aby zahrnoval také energeticky nezávislou paměť, jako je Flash a konfigurační bity; instrukce LPM (Load Program Memory) je proto zbytečná a je vynechána. (Podrobné informace najdete v instrukční sadě Atmel AVR .)

Ve variantě XMEGA není soubor pracovního registru mapován do datového adresového prostoru; jako takový není možné zacházet s žádným z pracovních registrů XMEGA, jako by byly SRAM. Místo toho jsou I/O registry mapovány do datového adresního prostoru počínaje úplně na začátku adresního prostoru. Kromě toho se objem datového adresového prostoru vyhrazeného pro I/O registry podstatně zvýšil na 4096 bajtů (0000 16 –0FFF 16 ). Stejně jako u předchozích generací však instrukce pro rychlou manipulaci I/O mohou dosáhnout pouze prvních 64 umístění I/O registru (prvních 32 umístění pro bitové instrukce). Po I/O registrech řada XMEGA vyčleňuje 4096 bajtů rozsahu datového adresního prostoru, který lze volitelně použít pro mapování interní EEPROM do datového adresního prostoru (1000 16 –1FFF 16 ). Skutečný SRAM se nachází za těmito rozsahy, počínaje od 2000 16 .

Porty GPIO

Každý port GPIO na malém nebo velkém AVR pohání až osm pinů a je řízen třemi 8bitovými registry: DDR x , PORT x a PIN x , kde x je identifikátor portu.

  • DDR x : Data Direction Register, konfiguruje piny jako vstupy nebo výstupy.
  • PORT x : Register výstupního portu. Nastavuje výstupní hodnotu na pinech nakonfigurovaných jako výstupy. Povolí nebo zakáže pull-up odpor na pinech nakonfigurovaných jako vstupy.
  • PIN x : Vstupní registr, slouží ke čtení vstupního signálu. Na některých zařízeních lze tento registr použít pro přepínání pinů: zápis logické jedničky do bitu PIN x přepíná odpovídající bit v PORT x , bez ohledu na nastavení bitu DDR x .

Novější ATtiny AVR, stejně jako ATtiny817 a jeho sourozenci, mají své registry řízení portů definovány poněkud odlišně. xmegaAVR má další registry pro konfiguraci push/pull, totem-pole a pullup.

EEPROM

Téměř všechny mikrokontroléry AVR mají interní EEPROM pro semipermanentní ukládání dat. Stejně jako flash paměť, EEPROM může zachovat svůj obsah, když je odpojeno elektrické napájení.

Ve většině variant architektury AVR není tato interní paměť EEPROM mapována do adresovatelného paměťového prostoru MCU. Lze k němu přistupovat pouze stejným způsobem jako k externímu perifernímu zařízení pomocí speciálních registrů ukazatelů a instrukcí pro čtení/zápis, díky čemuž je přístup do EEPROM mnohem pomalejší než u jiné vnitřní paměti RAM.

Některá zařízení z rodiny SecureAVR (AT90SC) však v závislosti na konfiguraci používají speciální mapování EEPROM do datové nebo programové paměti. Rodina XMEGA také umožňuje mapování EEPROM do datového adresního prostoru.

Protože je počet zápisů do EEPROM omezený - Atmel ve svých listech uvádí 100 000 cyklů zápisu - dobře navržená rutina zápisu EEPROM by měla porovnat obsah adresy EEPROM s požadovaným obsahem a provést skutečný zápis pouze v případě, že je třeba obsah změnit.

Pamatujte, že mazání a zápis lze v mnoha případech provádět samostatně, bajt po bajtu, což může také pomoci prodloužit životnost, když bity stačí nastavit pouze na 1 s (vymazat) nebo selektivně vymazat na 0 s (zápis).

Spuštění programu

AVR společnosti Atmel mají dvoustupňový, jednostupňový design potrubí . To znamená, že další strojová instrukce je načtena při provádění aktuální. Většina instrukcí zabere jen jeden nebo dva hodinové cykly, takže AVR jsou mezi osmibitovými mikrokontroléry relativně rychlé .

Procesory AVR byly navrženy s ohledem na efektivní provedení zkompilovaného kódu C a mají pro tento úkol několik vestavěných ukazatelů.

Instrukční sada

Set AVR výuka je kolmý než většina osmibitových mikrořadičů, zejména 8051 klony a PIC , s nimiž AVR dnes konkuruje. Není to však zcela pravidelné:

  • Registry ukazatelů X, Y a Z mají možnosti adresování, které se navzájem liší.
  • Registrace míst R0 až R15 mají omezenější možnosti adresování než umístění registrů R16 až R31.
  • I/O porty 0 až 31 lze bitově adresovat, na rozdíl od I/O portů 32 až 63.
  • CLR (vymazat všechny bity na nulu) ovlivňuje příznaky, zatímco SER (nastavit všechny bity na jednu) nikoli, přestože se jedná o doplňkové instrukce. (CLR je pseudo-opce pro EOR R, R; zatímco SER je zkratka pro LDI R, $ FF. Aritmetické operace, jako je EOR, upravují příznaky, zatímco pohyby/načítání/obchody/větve jako LDI nikoli.)
  • Přístup k datům pouze pro čtení uloženým v paměti programu (flash) vyžaduje speciální instrukce LPM; sběrnice flash je jinak vyhrazena pro paměť instrukcí.

Generování kódu navíc ovlivňují některé rozdíly specifické pro čip. Ukazatele kódu (včetně návratových adres v zásobníku) jsou dva bajty dlouhé na čipech s až 128 kB flash paměti, ale tři bajty dlouhé u větších čipů; ne všechny čipy mají multiplikátory hardwaru; čipy s více než 8 kB flash mají pokyny pro větve a volání s delšími rozsahy; a tak dále.

Většinou pravidelná sada instrukcí umožňuje programování pomocí kompilátorů C (nebo dokonce Ada) poměrně jednoduše. GCC již nějakou dobu zahrnuje podporu AVR a tato podpora je široce používána. LLVM má také základní podporu AVR. Ve skutečnosti si Atmel vyžádal vstup od hlavních vývojářů kompilátorů pro malé mikrokontroléry, aby určil funkce sady instrukcí, které byly v kompilátoru pro jazyky na vysoké úrovni nejužitečnější.

Rychlost MCU

Linka AVR může normálně podporovat rychlosti hodin od 0 do 20 MHz, přičemž některá zařízení dosahují 32 MHz. Provoz s nižším výkonem obvykle vyžaduje sníženou rychlost hodin. Všechny nejnovější AVR (Tiny, Mega a Xmega, ale ne 90S) jsou vybaveny oscilátorem na čipu, což eliminuje potřebu externích hodin nebo obvodů rezonátoru. Některé AVR mají také systémový časovač předvoleb, který dokáže rozdělit systémové hodiny až na 1024. Tento předzměňovač lze znovu konfigurovat softwarem během běhu, což umožňuje optimalizaci rychlosti hodin.

Protože všechny operace (s výjimkou násobení a 16bitového sčítání/odečítání) na registrech R0 – R31 jsou jednokolové, AVR může dosáhnout až 1 MIPS na MHz, tj. 8 MHz procesor může dosáhnout až 8 MIPS. Zatížení a ukládání do/z paměti trvá dva cykly, větvení trvá dva cykly. Pobočky v nejnovějších částech „3bajtového počítače PC“, jako je ATmega2560, jsou o jeden cyklus pomalejší než na předchozích zařízeních.

Rozvoj

AVR mají velkou sledovanost díky dostupným bezplatným a levným vývojovým nástrojům, včetně vývojových desek za rozumnou cenu a bezplatného vývojového softwaru. AVR se prodávají pod různými názvy, které sdílejí stejné základní jádro, ale s různými kombinacemi periferií a paměti. Kompatibilita mezi čipy v každé rodině je poměrně dobrá, i když funkce řadiče I/O se mohou lišit.

Viz externí odkazy na stránky týkající se vývoje AVR.

Funkce

AVR nabízejí širokou škálu funkcí:

  • Multifunkční, obousměrné univerzální I/O porty s konfigurovatelnými, vestavěnými výsuvnými odpory
  • Více interních oscilátorů, včetně RC oscilátoru bez vnějších částí
  • Interní, programovatelná instrukční flash paměť až 256 KB (384 KB na XMega)
    • V systému programovatelné pomocí sériových/paralelních nízkonapěťových proprietárních rozhraní nebo JTAG
    • Volitelná sekce spouštěcího kódu s nezávislými bity zámku pro ochranu
  • Podpora ladění na čipu (OCD) prostřednictvím JTAG nebo debugWIRE na většině zařízení
    • Signály JTAG (TMS, TDI, TDO a TCK) jsou na GPIO multiplexovány . Tyto piny lze nakonfigurovat tak, aby fungovaly jako JTAG nebo GPIO v závislosti na nastavení pojistkového bitu, který lze naprogramovat prostřednictvím ISP nebo HVSP. Ve výchozím nastavení jsou AVR s JTAG vybaveny povoleným rozhraním JTAG.
    • debugWIRE používá pin /RESET jako obousměrný komunikační kanál pro přístup k ladicím obvodům na čipu. Je k dispozici na zařízeních s nižším počtem pinů, protože vyžaduje pouze jeden pin.
  • Interní data EEPROM až 4 kB
  • Interní paměť SRAM až 16 KB (32 kB na XMega)
  • Externí 64 kB malý datový prostor endian u určitých modelů, včetně Mega8515 a Mega162.
    • Externí datový prostor je překryt interním datovým prostorem tak, že se na externí sběrnici neobjeví plný adresní prostor o velikosti 64 kB a přístupy např. Na adresu 0100 16 budou mít přístup k vnitřní paměti RAM, nikoli k externí sběrnici.
    • U některých členů řady XMega byl externí datový prostor vylepšen tak, aby podporoval SRAM i SDRAM. Rovněž byly rozšířeny režimy adresování dat, aby bylo možné přímo adresovat až 16 MB datové paměti.
  • 8bitové a 16bitové časovače
    • Výstup PWM (některá zařízení mají vylepšenou periferii PWM, která obsahuje generátor mrtvého času)
    • Zachycení vstupu, které zaznamenává časové razítko spuštěné hranou signálu
  • Analogový komparátor
  • 10 nebo 12bitové A/D převodníky , s multiplexem až 16 kanálů
  • 12bitové D/A převodníky
  • Řada sériových rozhraní, včetně
  • Detekce Brownout
  • Watchdog timer (WDT)
  • Několik úsporných režimů spánku
  • Modely regulátorů osvětlení a řízení motoru ( specifické pro PWM )
  • Podpora řadiče CAN
  • Podpora řadiče USB
    • Správný vysokorychlostní (12 Mbit/s) hardware a řadič Hub s integrovaným AVR.
    • Také volně dostupné emulace softwaru s nízkou rychlostí (1,5 Mbit/s) ( HID ) bitbanging
  • Podpora ethernetového řadiče
  • Podpora řadiče LCD
  • Nízkonapěťová zařízení pracující až do 1,8 V (až 0,7 V pro díly s vestavěným DC-DC upconverterem)
  • zařízení picoPower
  • Řadiče DMA a periferní komunikace „systému událostí“.
  • Rychlá podpora kryptografie pro AES a DES

Programovací rozhraní

Existuje mnoho způsobů, jak načíst programový kód do čipu AVR. Metody programování AVR čipů se liší rodina AVR od rodiny. Většina níže popsaných metod používá pro vstup do programovacího režimu řádek RESET . Aby se zabránilo náhodnému vstupu čipu do takového režimu, doporučujeme připojit vývodový odpor mezi pin RESET a kladný napájecí zdroj.

ISP

6- a 10pinové diagramy záhlaví ISP

Metoda programování v systému (ISP) je funkčně prováděna prostřednictvím SPI , plus nějaké přeškrtnutí řádku Reset. Dokud nejsou SPI piny AVR připojeny k ničemu rušivému, může AVR čip zůstat pájený na DPS při přeprogramování. Stačí 6pinový konektor a programovací adaptér. Toto je nejběžnější způsob vývoje s AVR.

Zařízení Atmel-ICE nebo AVRISP mkII (starší zařízení) se připojuje k portu USB počítače a provádí programování v systému pomocí softwaru Atmel.

AVRDUDE (AVR Downloader/UploadaDEr) běží na Linuxu , FreeBSD , Windows a Mac OS X a podporuje celou řadu hardwaru pro programování v systému, včetně Atmel AVRISP mkII, Atmel JTAG ICE, starších programátorů založených na sériovém portu Atmel a různých programátoři třetích stran a „udělej si sám“.

PDI

Program and Debug Interface (PDI) je patentované rozhraní společnosti Atmel pro externí programování a ladění zařízení XMEGA na čipu. PDI podporuje vysokorychlostní programování všech prostorů energeticky nezávislé paměti (NVM); flash, EEPROM, pojistky, lock-bity a řádek podpisu uživatele. To se provádí přístupem k řadiči XMEGA NVM prostřednictvím rozhraní PDI a prováděním příkazů ovladače NVM. PDI je 2kolíkové rozhraní využívající resetovací pin pro hodinový vstup (PDI_CLK) a vyhrazený datový pin (PDI_DATA) pro vstup a výstup.

UPDI

Unified Program and Debug Interface (UPDI) je jednovodičové rozhraní pro externí programování a ladění na čipu novějších zařízení ATtiny a ATmega. Atmel-ICE a PICkit 4 jsou schopné programovat UPDI čipy. Díky jtag2updi je také možné použít Arduino.

Vysokonapěťový seriál

Sériové programování vysokého napětí (HVSP) je většinou režim zálohy na menších AVR. 8pinový balíček AVR nezanechává mnoho jedinečných kombinací signálů pro umístění AVR do programovacího režimu. Signál 12 voltů je však něco, co by AVR měl vidět pouze během programování a nikdy během normálního provozu. Režim vysokého napětí lze použít také v některých zařízeních, kde byl resetovací kolík deaktivován pojistkami.

Paralelní vysokonapěťové

Paralelní programování vysokého napětí (HVPP) je považováno za „konečné řešení“ a může být jediným způsobem, jak opravit špatná nastavení pojistky na čipu AVR.

Zavaděč

Většina modelů AVR si může rezervovat oblast bootloaderu od 256 bajtů do 4 kB, kde se může nacházet kód pro přeprogramování. Při resetu se nejprve spustí bootloader a provede nějaké uživatelsky naprogramované určení, zda přeprogramovat nebo přejít na hlavní aplikaci. Kód lze přeprogramovat prostřednictvím jakéhokoli dostupného rozhraní nebo může číst šifrovaný binární soubor prostřednictvím ethernetového adaptéru, jako je PXE . Atmel má aplikační poznámky a kód týkající se mnoha sběrnicových rozhraní.

ROM

Řada AVR AT90SC je k dispozici s programovou pamětí ROM namísto tovární paměti pro programovou paměť. Vzhledem k velkým počátečním nákladům a minimálnímu množství objednávky je maskovací ROM efektivní pouze u vysoce produkčních sérií.

drát

aWire je nové jednovodičové ladicí rozhraní dostupné na nových zařízeních UC3L AVR32.

Rozhraní ladění

AVR nabízí několik možností ladění, většinou zahrnující ladění na čipu, když je čip v cílovém systému.

debugWIRE

debugWIRE je řešení společnosti Atmel, které poskytuje možnosti ladění na čipu prostřednictvím jediného pinu mikrokontroléru. Je to zvláště užitečné pro díly s nižším počtem pinů, které nemohou poskytnout čtyři „náhradní“ kolíky potřebné pro JTAG. JTAGICE mkII, mkIII a AVR Dragon podporují debugWIRE. debugWIRE byl vyvinut po původním vydání JTAGICE a nyní jej podporují klony.

JTAG

Funkce Joint Test Action Group ( JTAG ) poskytuje přístup k funkcím ladění na čipu, když je čip spuštěn v cílovém systému. JTAG umožňuje přístup k interní paměti a registrům, nastavení zarážek na kódu a jednokrokové provádění za účelem sledování chování systému.

Atmel poskytuje řadu adaptérů JTAG pro AVR:

  1. Atmel-ICE je nejnovější adaptér. Podporuje rozhraní JTAG, debugWire, aWire, SPI, TPI a PDI.
  2. JTAGICE 3 je debugger středního rozsahu v rodině JTAGICE (JTAGICE mkIII). Podporuje rozhraní JTAG, aWire, SPI a PDI.
  3. JTAGICE mkII nahrazuje JTAGICE a má podobnou cenu. Rozhraní JTAGICE mkII je k počítači připojeno přes USB a podporuje jak JTAG, tak novější rozhraní debugWIRE. Poté, co Atmel uvolnil komunikační protokol, se začalo dodávat mnoho klonů třetích stran zařízení Atmel JTAGICE mkII.
  4. AVR Dragon je levná (přibližně 50 $) náhrada za JTAGICE mkII pro určité cílové části. AVR Dragon poskytuje v systému sériové programování, vysokonapěťové sériové programování a paralelní programování, stejně jako emulaci JTAG nebo debugWIRE pro součásti s 32 kB programové paměti nebo méně. ATMEL změnil funkci ladění AVR Dragon pomocí nejnovějšího firmwaru AVR Studio 4 - AVR Studio 5 a nyní podporuje zařízení s více než 32 kB programové paměti.
  5. Adaptér JTAGICE je připojen k počítači prostřednictvím standardního sériového portu. Přestože byl adaptér JTAGICE společností Atmel prohlášen za „ konec životnosti “, v AVR Studio a dalších nástrojích je stále podporován.

JTAG lze také použít k provedení testu hraničního skenování , který testuje elektrická spojení mezi AVR a jinými čipy schopnými hraničního skenování v systému. Hraniční skenování se dobře hodí pro výrobní linku, zatímco fandy se pravděpodobně lépe testuje pomocí multimetru nebo osciloskopu.

Vývojové nástroje a hodnotící sady

Vývojová deska Atmel STK500

Oficiální vývojové nástroje a vyhodnocovací sady Atmel AVR obsahují řadu startovacích sad a ladicích nástrojů s podporou většiny zařízení AVR:

Startovací sada STK600

Startovací sada a vývojový systém STK600 je aktualizací STK500. STK600 používá základní desku, desku pro směrování signálu a cílovou desku.

Základní deska je podobná STK500 v tom, že poskytuje napájení, hodiny, programování v systému, port RS-232 a port CAN (Controller Area Network, automobilový standard) prostřednictvím konektorů DE9 a kolíkové kolíky pro všechny GPIO signály z cílového zařízení.

Cílové desky mají zásuvky ZIF pro balíčky DIP , SOIC , QFN nebo QFP , v závislosti na desce.

Deska směrování signálu je umístěna mezi základní deskou a cílovou deskou a směruje signály na správný kolík na desce zařízení. Existuje mnoho různých desek pro směrování signálu, které lze použít s jedinou cílovou deskou, v závislosti na tom, jaké zařízení je v zásuvce ZIF.

STK600 umožňuje programování v systému z počítače přes USB, takže pro cílový mikrokontrolér je k dispozici port RS-232. A 4 kolíková lišta na STK600 označen ‚RS-232 náhradní‘ lze připojit jakoukoliv úroveň TTL USART port na čipu, aby palubní MAX232 čip překládat signály s úrovní RS-232. Signály RS-232 jsou připojeny k pinům RX, TX, CTS a RTS na konektoru DB-9.

Startovací sada STK500

Startovací sada a vývojový systém STK500 obsahuje ISP a programování vysokého napětí (HVP) pro všechna zařízení AVR, a to buď přímo, nebo prostřednictvím rozšiřujících desek. Deska je vybavena zásuvkami DIP pro všechny AVR dostupné v balíčcích DIP.

Rozšiřující moduly STK500: Pro desku STK500 je k dispozici několik rozšiřujících modulů:

  • STK501-Přidává podporu pro mikrokontroléry v 64pólových balících TQFP.
  • STK502-Přidává podporu pro LCD AVR v 64pólových balících TQFP.
  • STK503-Přidává podporu pro mikrokontroléry ve 100kolíkových balících TQFP.
  • STK504-Přidává podporu pro LCD AVR ve 100kolíkových balících TQFP.
  • STK505-Přidává podporu pro 14 a 20kolíkové AVR.
  • STK520-Přidává podporu pro 14 a 20 a 32pinové mikrokontroléry z rodiny AT90PWM a ATmega.
  • STK524-Přidává podporu pro 32kolíkovou CAN/LIN/Motor Control skupinu ATmega32M1/C1.
  • STK525-Přidává podporu pro mikrokontroléry AT90USB v 64pólových balících TQFP.
  • STK526-Přidává podporu pro mikrokontroléry AT90USB v 32pólových balících TQFP.

Startovací sada STK200

Startovací sada a vývojový systém STK200 má zásuvku DIP, která může obsahovat čip AVR ve 40, 20 nebo 8pólovém balení. Deska má taktovací zdroj 4 MHz , 8 světelných diod (LED), 8 vstupních tlačítek, port RS-232 , zásuvku pro 32k SRAM a řadu obecných I/O. Čip lze naprogramovat pomocí hardwarového klíče připojeného k paralelnímu portu.

Podporované mikrokontroléry (podle manuálu)
Čip Velikost blesku EEPROM SRAM Frekvence
[MHz]
Balík
AT90S1200 1k 64 0 12 PDIP-20
AT90S2313 2k 128 128 10 PDIP-20
AT90S/LS2323 2k 128 128 10 PDIP-8
AT90S/LS2343 2k 128 128 10 PDIP-8
AT90S4414 4k 256 256 8 PDIP-40
AT90S/LS4434 4k 256 256 8 PDIP-40
AT90S8515 8k 512 512 8 PDIP-40
AT90S/LS8535 8k 512 512 8 PDIP-40

AVRISP a AVRISP mkII

AVRISP mkII

AVRISP a AVRISP mkII jsou levné nástroje, které umožňují programování všech AVR přes ICSP .

AVRISP se připojuje k počítači přes sériový port a odebírá energii z cílového systému. AVRISP umožňuje použít buď „standardní“ piny ICSP, buď 10pinový nebo 6pinový konektor.

AVRISP mkII se připojuje k počítači přes USB a odebírá energii z USB. LED diody viditelné skrz průsvitné pouzdro indikují stav cílového výkonu.

Protože AVRISP mkII postrádá integrované obvody ovladače/vyrovnávací paměti, může mít potíže s programováním cílových desek s více zátěžemi na linkách SPI. V takových případech je vyžadován programátor schopný získávat větší proud. Alternativně lze AVRISP mkII stále použít, pokud lze na vedení SPI před každé periferní zařízení umístit odpory omezující zátěž s nízkou hodnotou (~ 150 ohmů).

AVRISP i AVRISP mkII jsou nyní ukončeny a stránky produktů odstraněny z webových stránek Microchip. V červenci 2019 je AVRISP mkII stále skladem u řady distributorů. K dispozici je také řada klonů třetích stran.

AVR Dragon

AVR Dragon s ISP programovacím kabelem a připojenou, modrozelenou ZIF zásuvkou

Atmel Dragon je levný nástroj, který se připojuje k počítači přes USB. Dragon může naprogramovat všechny AVR pomocí JTAG, HVP, PDI nebo ICSP. Dragon také umožňuje ladění všech AVR pomocí JTAG, PDI nebo debugWire; v AVR Studio 4.18 bylo odstraněno předchozí omezení na zařízení s pamětí programu 32 kB nebo méně. Dragon má malou prototypovou oblast, která pojme 8, 28 nebo 40pinový AVR, včetně připojení k napájecím a programovacím kolíkům. Neexistuje žádný prostor pro žádné další obvody, i když to může poskytnout produkt třetí strany s názvem „Dragon Rider“.

JTAGICE

JTAG V emulátor (JTAGICE) ladění nástroj podporuje on-chip ladění (OCD), z AVR s rozhraním JTAG. Původní JTAGICE (někdy zpětně označovaná jako JTAGICE mkI) používá k počítači rozhraní RS-232 a může programovat pouze AVR s rozhraním JTAG. JTAGICE mkI se již nevyrábí, ale byl nahrazen JTAGICE mkII.

JTAGICE mkII

Ladicí nástroj JTAGICE mkII podporuje on-chip debugging (OCD) AVR s rozhraními SPI, JTAG, PDI a debugWIRE. Rozhraní debugWire umožňuje ladění pomocí pouze jednoho pinu (resetovací kolík), což umožňuje ladění aplikací běžících na mikrořadičích s nízkým počtem pinů.

JTAGICE mkII se připojuje pomocí USB, ale existuje alternativní připojení přes sériový port, které vyžaduje použití samostatného napájecího zdroje. Kromě JTAG podporuje mkII programování ISP (pomocí 6kolíkových nebo 10kolíkových adaptérů). USB i sériové propojení používají variantu protokolu STK500.

JTAGICE3

JTAGICE3 aktualizuje mkII o pokročilejší možnosti ladění a rychlejší programování. Připojuje se přes USB a podporuje rozhraní JTAG, aWire, SPI a PDI. Sada obsahuje několik adaptérů pro použití s ​​většinou vývodů rozhraní.

AVR ONE!

AVR ONE! je profesionální vývojový nástroj pro všechna 8bitová a 32bitová zařízení AVR Atmel s funkcí On-Chip Debug. Podporuje režimy programování SPI, JTAG, PDI a aWire a ladění pomocí rozhraní debugWIRE, JTAG, PDI a aWire.

Demonstrační tabule motýlů

Atmel ATmega169 v 64- padovém balení MLF na zadní straně desky Atmel AVR Butterfly

Velmi oblíbená předváděcí deska AVR Butterfly je samostatný počítač napájený bateriemi s mikrokontrolérem Atmel AVR ATmega169V. Byl postaven tak, aby předvedl rodinu AVR, zejména tehdy nové vestavěné rozhraní LCD. Deska obsahuje LCD obrazovku, joystick, reproduktor, sériový port, hodiny v reálném čase (RTC), paměťový čip flash a snímače teploty a napětí. Dřívější verze AVR Butterfly také obsahovaly CdS fotorezistor ; není přítomen na deskách Butterfly vyrobených po červnu 2006, aby umožňovaly shodu s RoHS . Malá deska má na zádech košile, takže ji lze nosit jako odznak se jménem.

AVR Butterfly je dodáván s předinstalovaným softwarem, který demonstruje schopnosti mikrokontroléru. Tovární firmware může posouvat vaše jméno, zobrazovat údaje ze senzorů a ukazovat čas. AVR Butterfly má také piezoelektrický měnič, který lze použít k reprodukci zvuků a hudby.

AVR Butterfly předvádí řízení LCD pomocí 14segmentového displeje se šesti alfanumerickými znaky. Rozhraní LCD však spotřebovává mnoho I/O pinů.

CPU Butmefly ATmega169 je schopen dosáhnout rychlosti až 8 MHz, ale je továrně nastaven softwarem na 2 MHz, aby byla zachována životnost knoflíkové baterie. Předinstalovaný program bootloaderu umožňuje přeprogramování desky pomocí standardního sériového konektoru RS-232 s novými programy, které uživatelé mohou psát pomocí bezplatných nástrojů Atmel IDE.

AT90USB Klíč

Tato malá deska, zhruba poloviční než vizitka, má cenu o něco vyšší než AVR Butterfly. Obsahuje AT90USB1287 s podporou USB On-The-Go (OTG), 16 MB DataFlash , LED diody, malý joystick a teplotní senzor. Deska obsahuje software, který ji umožňuje fungovat jako velkokapacitní paměťové zařízení USB (její dokumentace je dodávána na DataFlash), joystick USB a další. Aby byla podporována schopnost USB hostitele, musí být provozována z baterie, ale když běží jako USB periferie, potřebuje pouze napájení poskytované přes USB.

Pouze port JTAG používá konvenční vývod 2,54 mm. Všechny ostatní I/O porty AVR vyžadují kompaktnější záhlaví 1,27 mm.

AVR Dragon může programovat i ladit, protože v AVR Studio 4.18 bylo odstraněno omezení 32 kB, a JTAGICE mkII dokáže programovat i ladit procesor. Procesor lze také naprogramovat přes USB z hostitele Windows nebo Linux pomocí protokolů USB „Device Firmware Update“. Atmel dodává se zařízením proprietární (včetně zdrojového kódu, ale distribuce je omezena) ukázkové programy a zásobník protokolů USB.

LUFA je sada protokolů USB bezplatného softwaru ( licence MIT ) třetích stran pro USBKey a další 8bitové USB AVR.

Bezdrátová sada Raven

Sada RAVEN podporuje bezdrátový vývoj pomocí čipových sad IEEE 802.15.4 společnosti Atmel pro ZigBee a další bezdrátové komíny. Připomíná dvojici bezdrátových výkonnějších karet Butterfly plus bezdrátový USBKey; a stojí asi tolik (pod 100 USD). Všechny tyto desky podporují vývoj založený na JTAG.

Sada obsahuje dvě desky AVR Raven, každá s vysílačem 2,4 GHz podporujícím IEEE 802.15.4 (a volně licencovaným ZigBee stackem). Rádia jsou poháněna procesory ATmega1284p, které jsou podporovány vlastním segmentovaným LCD displejem poháněným procesorem ATmega3290p. Periferní zařízení Raven připomínají Butterfly: piezo reproduktor, DataFlash (větší), externí EEPROM, senzory, krystal 32 kHz pro RTC atd. Ty jsou určeny k použití při vývoji vzdálených senzorových uzlů, k ovládání relé nebo čehokoli, co je potřeba.

USB klíč používá AT90USB1287 pro připojení k USB hostiteli a bezdrátovým linkám 2,4 GHz. Ty jsou určeny k monitorování a ovládání vzdálených uzlů, spoléhající se spíše na napájení hostitele než na místní baterie.

Programátoři třetích stran

Pro AVR je k dispozici široká škála nástrojů pro programování a ladění třetích stran. Tato zařízení používají různá rozhraní, včetně RS-232, paralelního portu PC a USB.

Využití

Atmel AVR ATmega328 28pinový DIP na desce Arduino Duemilanove
Atmel AVR ATmega8 28pinový DIP na vlastní vývojové desce

AVR byly použity v různých automobilových aplikacích, jako jsou bezpečnostní, bezpečnostní, pohonné a zábavní systémy. Společnost Atmel nedávno spustila novou publikaci „Atmel Automotive Compilation“, která má pomoci vývojářům s automobilovými aplikacemi. Některá současná použití jsou v BMW, Daimler-Chrysler a TRW.

Arduino fyzické computing platforma je založena na ATMEGA328 mikroprocesoru (ATmega168 nebo ATmega8 u deskových verzích starších než Diecimila). ATmega1280 a ATmega2560 s více možnostmi pinoutu a paměti byly také použity k vývoji platformy Arduino Mega . Desky Arduino lze použít s jazykem a IDE nebo s konvenčnějšími programovacími prostředími ( C , assembler atd.) Jako standardizované a široce dostupné platformy AVR.

V ručních ovladačích Microsoft Xbox byly použity AVR na bázi USB. Spojení mezi ovladači a Xboxem je USB.

Mnoho společností vyrábí desky mikrokontrolérů na bázi AVR určené pro fandy, stavitele robotů, experimentátory a vývojáře malých systémů včetně: Cubloc, gnusb, BasicX , Oak Micros, ZX Microcontrollers a myAVR. Existuje také velká komunita desek kompatibilních s Arduino podporujících podobné uživatele.

Společnost Schneider Electric vyráběla motorový a pohybový čip M3000 s integrovaným jádrem Atmel AVR a pokročilým ovladačem pohybu pro použití v různých pohybových aplikacích, ale toto bylo zrušeno.

Klony FPGA

S rostoucí popularitou FPGA mezi open source komunitou začali lidé vyvíjet open source procesory kompatibilní s instrukční sadou AVR. Web OpenCores uvádí následující hlavní projekty klonů AVR:

  • pAVR, napsaný ve VHDL , je zaměřen na vytvoření nejrychlejšího a maximálně funkčního AVR procesoru implementací technik, které se v původním AVR procesoru nenacházejí, jako je hlubší pipeline.
  • avr_core, napsaný ve VHDL , je klon, jehož cílem je být co nejblíže ATmega103.
  • Navré, napsaný v Verilog , které provádí veškeré Classic Core instrukce a je zaměřena na vysoký výkon a nízké využití systémových prostředků. Nepodporuje přerušení.
  • softavrcore, napsaný v Verilog , implementuje instrukci AVR nastaven do AVR5 podporuje přerušení a některé rozhraní (jako je UART , SPI a časovače), který ukazuje, jak externí periferní zařízení jsou připojeny k a nakonfigurován pro tohoto jádra.
  • Přednáška CPU opencores napsaná ve VHDL Dr. Jürgenem Sauermannem podrobně vysvětluje, jak navrhnout kompletní systém založený na AVR na čipu (SoC).

Ostatní prodejci

Kromě čipů vyráběných společností Atmel jsou klony k dispozici od společnosti LogicGreen Technologies. Tyto části nejsou přesné klony - mají několik funkcí, které se nenacházejí v čipech, jejichž jsou „klony“, a vyšší maximální rychlosti hodin, ale k programování používají místo ISP SWD, takže je nutné použít různé programovací nástroje.

Mikrokontroléry využívající architekturu ATmega vyrábí společnost NIIET ve Voroněži v Rusku jako součást řady integrovaných obvodů 1887. To zahrnuje ATmega128 pod označením 1887VE7T ( rusky : 1887ВЕ7Т ).

Reference

Další čtení

  • Programování AVR: Naučit se psát software pro hardware ; Elliot Williams; Maker Media; 474 stran; 2014; ISBN  978-1449355784
  • Arduino: Stručný průvodce ; Maik Schmidt; Pragmatická knihovna; 276 stran; 2011; ISBN  978-1-934356-66-1 .
  • Je vyžadováno určité sestavení: Programování jazyka sestavy pomocí mikrokontroléru AVR ; Timothy S Margush; CRC Press; 643 stran; 2011; ISBN  978-1439820643
  • Mikrokontrolér AVR a vestavěné systémy: Použití sestavy a C ; Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi; Pearson; 792 stran; 2010; ISBN  978-0138003319 .

externí odkazy

Oficiální webové stránky
Oficiální komunita
Diagramy vývodů