Mikrokontrolery AVR - AVR microcontrollers

Logo AVR
Różne starsze mikrokontrolery AVR: ATmega8 w 28-pinowej wąskiej obudowie dual-in-line ( DIP -28N), ATxmega128A1 w 100-pinowej cienkiej poczwórnej płaskiej obudowie ( TQFP -100), ATtiny45 w 8-pinowej małej obudowie ( SO -8) pakiet.
ATmega328 P w 28-pinowej wąskiej obudowie dual-in-line ( DIP -28N). Jest powszechnie spotykany na płytkach Arduino .

AVR to rodzina mikrokontrolerów rozwijana od 1996 roku przez firmę Atmel , przejęta przez Microchip Technology w 2016 roku. Są to mikrokontrolery jednoukładowe 8-bit RISC o zmodyfikowanej architekturze Harvarda . AVR był jedną z pierwszych rodzin mikrokontrolerów wykorzystujących wbudowaną pamięć flash do przechowywania programów, w przeciwieństwie do jednorazowych programowalnych ROM , EPROM lub EEPROM używanych w tym czasie przez inne mikrokontrolery.

Mikrokontrolery AVR znajdują wiele zastosowań jako systemy wbudowane . Są one szczególnie powszechne w aplikacjach wbudowanych dla hobbystów i edukacyjnych, spopularyzowane przez ich włączenie do wielu linii Arduino z otwartymi płytami rozwojowymi sprzętu .

Historia

Architektura AVR została opracowana przez dwóch studentów z Norweskiego Instytutu Technologicznego (NTH), Alf-Egil Bogen i Vegard Wollan.

Atmel mówi, że nazwa AVR nie jest akronimem i nie oznacza niczego szczególnego. Twórcy AVR nie dają ostatecznej odpowiedzi, co oznacza termin „AVR”. Jednak to jest powszechnie przyjęte, że AVR oznacza A LF i V egard za R procesor ISC. Zwróć uwagę, że użycie „AVR” w tym artykule ogólnie odnosi się do 8-bitowej linii RISC mikrokontrolerów Atmel AVR.

Oryginalny AVR MCU został opracowany w lokalnym domu ASIC w Trondheim w Norwegii , zwanym wówczas Nordic VLSI, obecnie Nordic Semiconductor , gdzie Bogen i Wollan pracowali jako studenci. Był znany jako μRISC (Micro RISC) i był dostępny jako krzemowy moduł IP/element konstrukcyjny firmy Nordic VLSI. Kiedy technologia została sprzedana firmie Atmel z Nordic VLSI , wewnętrzna architektura została dalej rozwinięta przez Bogen i Wollan w Atmel Norway, spółce zależnej Atmel. Projektanci ściśle współpracowali z autorami kompilatorów w IAR Systems, aby zapewnić, że zestaw instrukcji AVR zapewnia wydajną kompilację języków wysokiego poziomu .

Wśród pierwszych z linii AVR był AT90S8515, który w 40-pinowej obudowie DIP ma takie same wyprowadzenia jak mikrokontroler 8051 , w tym zewnętrzny adres multipleksowany i magistralę danych. Polaryzacja linii RESET była odwrotna (8051 ma aktywny-wysoki RESET, podczas gdy AVR ma aktywny-niski RESET ), ale poza tym pinout był identyczny.

8-bitowa architektura mikrokontrolera AVR została wprowadzona w 1997 roku. Do 2003 roku Atmel dostarczył 500 milionów mikrokontrolerów AVR flash. Arduino platformy, opracowany dla projektów prostych elektronicznych, został wydany w 2005 roku i zawierał mikrokontrolerów AVR ATmega8.

Przegląd urządzenia

AVR jest maszyną o zmodyfikowanej architekturze Harvarda , w której program i dane są przechowywane w oddzielnych systemach pamięci fizycznej, które pojawiają się w różnych przestrzeniach adresowych, ale mają możliwość odczytywania elementów danych z pamięci programu za pomocą specjalnych instrukcji.

Podstawowe rodziny

AVR ogólnie dzieli się na:

tinyAVR – seria ATtiny

Rozmiar lampy błyskowej Częstotliwość
[MHz]
Pakiet SRAM EEPROM Rok wydania
0,5 - 32 kB 1,6 - 20 Pakiet pinów 6-32 64-3072 bajtów 64 - 256 bajtów 2016

Seria ATtiny zawiera mikrokontroler o niewielkich rozmiarach z ograniczonym zestawem urządzeń peryferyjnych. Obejmuje to jednak:

  • Urządzenia peryferyjne równe lub większe od megaAVR serii 0
  • System zdarzeń
  • Ulepszony zestaw instrukcji AVRxt, mnożenie sprzętowe


megaAVR – seria ATmega

Rozmiar lampy błyskowej Częstotliwość
[MHz]
Pakiet SRAM EEPROM Rok wydania
4 - 256 kB 1,6 - 20 Pakiet 28-100 pinów 256-8192 bajtów 256 - 4096 bajtów 2016

Seria ATmega wyposażona jest w mikrokontroler, który zapewnia dużą ilość pamięci programu, a także szeroką gamę dostępnych pinów. Posiada również funkcjonalności takie jak:

  • Rozszerzony zestaw instrukcji (liczba instrukcji i instrukcji obsługi większych pamięci programu)
  • Obszerny zestaw urządzeń peryferyjnych
  • System zdarzeń
  • Nowe urządzenia peryferyjne o zwiększonej funkcjonalności
  • Ulepszony zestaw instrukcji AVRxt


AVR Dx – Rodzina AVR Dx obejmuje wiele serii mikrokontrolerów, skoncentrowanych na HCI , kondycjonowaniu sygnałów analogowych i bezpieczeństwie funkcjonalnym.

Rozmiar lampy błyskowej Częstotliwość
[MHz]
Pakiet SRAM EEPROM Rok wydania
16 - 128 kB 20 - 24 przy 1,8-5,5 V 14 - 64-pinowy pakiet 4 - 16 KB 512 bajtów 2020

Numery części są sformatowane jako AVRffDxpp, gdzie ff to rozmiar pamięci flash, x to rodzina, a pp to liczba pinów. Przykład: AVR128DA64 — 64-pinowa seria DA z pamięcią flash 128k Wszystkie urządzenia z tej rodziny obejmują:

  • zegar asynchroniczny typu D, który może działać szybciej niż procesor
  • 12-bitowy przetwornik ADC
  • 10-bitowy przetwornik cyfrowo-analogowy


  • Seria AVR DA (początek 2020 r.) — Wysoka gęstość pamięci sprawia, że ​​te mikrokontrolery doskonale nadają się do obsługi funkcji wymagających intensywnej komunikacji przewodowej i bezprzewodowej.
    • zintegrowane czujniki do pojemnościowego pomiaru dotykowego ( HCI )
    • oferuje najnowsze procesory CIP i solidną, zintegrowaną ofertę analogową
    • brak zewnętrznego kryształu wysokiej częstotliwości
  • Seria AVR DB (połowa końca 2020 r.) - dziedziczy wiele funkcji z rodziny DA, jednocześnie dodając własne;
    • Dodaje 2 lub 3 opampy na chipie
    • MultiVoltage IO (MVIO) na PORTC
    • Obsługuje zewnętrzny kryształ HF
  • Seria AVR DD (jeszcze nie wydana od września 2021 r.) - mikrokontrolery o niewielkich rozmiarach zaprojektowane do sterowania w czasie rzeczywistym i pracy na wielu napięciach w aplikacjach sterowania przemysłowego, produktów AGD, motoryzacji i Internetu rzeczy (IoT).
    • Obsługa MVIO na 3 lub 4 pinach
  • Seria AVR EA (jeszcze nie wydana od września 2021 r.)
    • 8-64k flash
    • Pakiet 28-48 pinów


XMEGA

Rozmiar lampy błyskowej Częstotliwość
[MHz]
Pakiet SRAM EEPROM Rok wydania
16 - 256 kB 32 44-100 pin-pakiet 1 - 32 KB 512 - 2048 bajtów -

seria ATxmega oferuje szeroką gamę urządzeń peryferyjnych i funkcji, takich jak;

  • Rozszerzone funkcje wydajności, takie jak DMA, „System zdarzeń” i obsługa kryptografii
  • Rozbudowany zestaw urządzeń peryferyjnych z przetwornikami ADC


AVR specyficzne dla aplikacji

  • megaAVR ze specjalnymi funkcjami niespotykanymi w innych urządzeniach z rodziny AVR, takimi jak kontroler LCD, kontroler USB , zaawansowane PWM, CAN itp.

FPSLIC (AVR z FPGA)

  • FPGA 5k do 40k bramek
  • SRAM dla kodu programu AVR, w przeciwieństwie do wszystkich innych AVR
  • Rdzeń AVR może pracować z częstotliwością do 50 MHz

32-bitowe AVR

  • W 2006 roku Atmel wypuścił mikrokontrolery oparte na 32-bitowej architekturze AVR32 . Była to zupełnie inna architektura, niezwiązana z 8-bitowym AVR, mająca konkurować z procesorami opartymi na ARM . Miał 32-bitową ścieżkę danych, instrukcje SIMD i DSP , a także inne funkcje przetwarzania audio i wideo. Zestaw instrukcji był podobny do innych rdzeni RISC, ale nie był kompatybilny z oryginalnym AVR (ani z żadnym z różnych rdzeni ARM). Od tego czasu wsparcie dla AVR32 zostało usunięte z Linuksa od jądra 4.12; wsparcie kompilatora dla architektury w GCC nigdy nie było włączone do centralnego repozytorium kodu źródłowego kompilatora i było dostępne głównie w forku wspieranym przez dostawcę. W momencie wprowadzenia AVR32 Atmel był już licencjobiorcą architektury ARM , z mikrokontrolerami ARM7 i ARM9 wydanymi przed i równocześnie z AVR32; później Atmel skupił większość wysiłków rozwojowych na chipach 32-bitowych z rdzeniami ARM Cortex-M i Cortex-A .

Architektura urządzenia

Flash , EEPROM i SRAM są zintegrowane w jednym układzie, eliminując potrzebę stosowania pamięci zewnętrznej w większości aplikacji. Niektóre urządzenia mają opcję równoległej magistrali zewnętrznej, która umożliwia dodawanie dodatkowej pamięci danych lub urządzeń mapowanych w pamięci. Prawie wszystkie urządzenia (oprócz najmniejszych układów TinyAVR) mają interfejsy szeregowe, które można wykorzystać do podłączenia większych szeregowych pamięci EEPROM lub układów flash.

Pamięć programu

Instrukcje programu są przechowywane w nieulotnej pamięci flash . Chociaż MCU są 8-bitowe, każda instrukcja zajmuje jedno lub dwa 16-bitowe słowa.

Wielkość pamięci programu jest zwykle wskazywana w samym nazewnictwie urządzenia (np. linia ATmega64x ma 64 kB pamięci flash, podczas gdy linia ATmega32x ma 32 kB).

Nie ma przepisu na pamięć programu poza układem scalonym; cały kod wykonywany przez rdzeń AVR musi znajdować się we wbudowanej pamięci flash. Jednak to ograniczenie nie dotyczy układów AT94 FPSLIC AVR/FPGA.

Wewnętrzna pamięć danych

Przestrzeń adresowa danych składa się z pliku rejestru , rejestrów we/wy i SRAM . Niektóre małe modele również mapują program ROM do przestrzeni adresowej danych, ale większe modele nie.

Rejestry wewnętrzne

Atmel ATxmega128A1 w 100 sworznia TQFP pakietu

AVR mają 32 jednobajtowe rejestry i są klasyfikowane jako 8-bitowe urządzenia RISC.

W wariantach tinyAVR i megaAVR architektury AVR rejestry robocze są mapowane jako pierwsze 32 adresy pamięci (0000 16 –001F 16 ), a następnie 64 rejestry we/wy (0020 16 –005F 16 ). W urządzeniach z wieloma urządzeniami peryferyjnymi, po tych rejestrach następuje 160 rejestrów „rozszerzonych we/wy”, dostępnych tylko jako we/wy mapowane w pamięci (0060 16 –00FF 16 ).

Rzeczywista pamięć SRAM rozpoczyna się po tych sekcjach rejestru, pod adresem 0060 16 lub, w urządzeniach z „rozszerzonym we/wy”, pod adresem 0100 16 .

Mimo że istnieją oddzielne schematy adresowania i zoptymalizowane kody operacyjne dostępu do pliku rejestru i pierwszych 64 rejestrów we/wy, wszystkie można również adresować i manipulować tak, jakby były w SRAM.

Najmniejszy z wariantów tinyAVR wykorzystuje zredukowaną architekturę z tylko 16 rejestrami (pominięto od r0 do r15), które nie są adresowalne jako lokalizacje pamięci. Pamięć we/wy zaczyna się od adresu 0000 16 , po którym następuje SRAM. Ponadto urządzenia te mają niewielkie odstępstwa od standardowego zestawu instrukcji AVR. Przede wszystkim, instrukcje bezpośredniego ładowania/przechowywania (LDS/STS) zostały zredukowane z 2 słów (32 bity) do 1 słowa (16 bitów), ograniczając całkowitą bezpośrednią adresowalną pamięć (suma zarówno we/wy, jak i SRAM) do 128 bajtów. Odwrotnie, 16-bitowa przestrzeń adresowa instrukcji ładowania pośredniego (LD) jest rozszerzona tak, aby obejmowała również pamięć nieulotną, taką jak bity Flash i konfiguracyjne; dlatego instrukcja Load Program Memory (LPM) jest niepotrzebna i pominięta. (Aby uzyskać szczegółowe informacje, zobacz zestaw instrukcji Atmel AVR .)

W wariancie XMEGA plik rejestru roboczego nie jest mapowany do przestrzeni adresowej danych; w związku z tym nie można traktować żadnego z rejestrów roboczych XMEGA tak, jakby były SRAM. Zamiast tego rejestry we/wy są mapowane do przestrzeni adresowej danych, począwszy od samego początku przestrzeni adresowej. Dodatkowo ilość przestrzeni adresowej danych dedykowanej dla rejestrów I/O znacznie wzrosła do 4096 bajtów (0000 16 –0FFF 16 ). Jednak podobnie jak w przypadku poprzednich generacji, szybkie instrukcje manipulacji we/wy mogą dotrzeć tylko do pierwszych 64 lokalizacji rejestrów we/wy (pierwsze 32 lokalizacje dla instrukcji bitowych). Po rejestrach I/O seria XMEGA odkłada 4096 bajtowy zakres przestrzeni adresowej danych, który może być opcjonalnie wykorzystany do mapowania wewnętrznej pamięci EEPROM do przestrzeni adresowej danych (1000 16 –1FFF 16 ). Rzeczywista pamięć SRAM znajduje się za tymi zakresami, zaczynając od 2000 16 .

Porty GPIO

Każdy port GPIO na małym lub mega AVR obsługuje do ośmiu pinów i jest kontrolowany przez trzy 8-bitowe rejestry: DDR x , PORT x i PIN x , gdzie x to identyfikator portu.

  • DDR x : Rejestr kierunku danych, konfiguruje piny jako wejścia lub wyjścia.
  • PORT x : Rejestr portu wyjściowego. Ustawia wartość wyjściową na pinach skonfigurowanych jako wyjścia. Włącza lub wyłącza rezystor podciągający na pinach skonfigurowanych jako wejścia.
  • PIN x : Rejestr wejściowy, używany do odczytu sygnału wejściowego. W niektórych urządzeniach rejestr ten może być używany do przełączania pinów: zapisanie logicznej jedynki do bitu PIN x przełącza odpowiedni bit w PORT x , niezależnie od ustawienia bitu DDR x .

Nowsze ATtiny AVR, jak ATtiny817 i jego rodzeństwo, mają nieco inaczej zdefiniowane rejestry kontroli portów. xmegaAVR posiada dodatkowe rejestry dla konfiguracji push/pull, totem-pole i pullup.

EEPROM

Prawie wszystkie mikrokontrolery AVR mają wewnętrzną pamięć EEPROM do półtrwałego przechowywania danych. Podobnie jak pamięć flash, EEPROM może zachować swoją zawartość po odłączeniu zasilania elektrycznego.

W większości wariantów architektury AVR ta wewnętrzna pamięć EEPROM nie jest mapowana na adresowalną przestrzeń pamięci MCU. Można uzyskać do niego dostęp tylko w ten sam sposób, w jaki jest zewnętrzne urządzenie peryferyjne, używając specjalnych rejestrów wskaźnika i instrukcji odczytu/zapisu, co sprawia, że ​​dostęp do EEPROM jest znacznie wolniejszy niż do innej wewnętrznej pamięci RAM.

Jednak niektóre urządzenia z rodziny SecureAVR (AT90SC) wykorzystują specjalne mapowanie EEPROM do pamięci danych lub programu, w zależności od konfiguracji. Rodzina XMEGA umożliwia również mapowanie pamięci EEPROM w przestrzeni adresowej danych.

Ponieważ liczba zapisów do EEPROM jest ograniczona – Atmel określa w swoich arkuszach danych 100 000 cykli zapisu – dobrze zaprojektowana procedura zapisu EEPROM powinna porównywać zawartość adresu EEPROM z pożądaną zawartością i wykonywać rzeczywisty zapis tylko wtedy, gdy zawartość musi zostać zmieniona.

Zwróć uwagę, że kasowanie i zapis można w wielu przypadkach wykonywać oddzielnie, bajt po bajcie, co może również pomóc przedłużyć żywotność, gdy bity muszą być tylko ustawione na same jedynki (wymazywanie) lub selektywnie zerowane (zapis).

Wykonanie programu

AVR firmy Atmel mają dwustopniową, jednopoziomową konstrukcję rurociągu . Oznacza to, że następna instrukcja maszynowa jest pobierana w trakcie wykonywania bieżącej. Większość instrukcji zajmuje tylko jeden lub dwa cykle zegara, dzięki czemu AVR jest stosunkowo szybki wśród ośmiobitowych mikrokontrolerów.

Procesory AVR zostały zaprojektowane z myślą o wydajnym wykonywaniu skompilowanego kodu C i mają kilka wbudowanych wskaźników do zadania.

Zestaw instrukcji

Zestaw instrukcji AVR jest bardziej ortogonalny niż większość ośmiobitowych mikrokontrolerów, w szczególności klonów 8051 i mikrokontrolerów PIC, z którymi konkuruje obecnie AVR. Jednak nie jest to całkowicie regularne:

  • Rejestry wskaźników X, Y i Z mają różne możliwości adresowania.
  • Lokalizacje rejestrów R0 do R15 mają bardziej ograniczone możliwości adresowania niż lokalizacje rejestrów R16 do R31.
  • Porty we/wy od 0 do 31 mogą być adresowane bitowo, w przeciwieństwie do portów we/wy od 32 do 63.
  • CLR (wyczyść wszystkie bity na zero) wpływa na flagi, podczas gdy SER (ustaw wszystkie bity na jeden) nie, mimo że są to instrukcje komplementarne. (CLR to pseudooperacja dla EOR R, R; podczas gdy SER jest skrótem od LDI R,$FF. Operacje arytmetyczne, takie jak EOR, modyfikują flagi, podczas gdy ruchy/ładunki/przechowywanie/rozgałęzienia, takie jak LDI, nie.)
  • Dostęp do danych tylko do odczytu zapisanych w pamięci programu (flash) wymaga specjalnych instrukcji LPM; w przeciwnym razie magistrala flash jest zarezerwowana dla pamięci instrukcji.

Ponadto niektóre różnice specyficzne dla chipów wpływają na generowanie kodu. Wskaźniki kodu (w tym adresy zwrotne na stosie) mają długość dwóch bajtów w układach z maksymalnie 128 KB pamięci flash, ale długość trzech bajtów w przypadku większych układów; nie wszystkie chipy mają mnożniki sprzętowe; chipy z pamięcią flash powyżej 8 KB mają instrukcje branch i call o dłuższym zasięgu; i tak dalej.

W większości zwykły zestaw instrukcji sprawia, że ​​programowanie go przy użyciu kompilatorów C (lub nawet Ada) jest dość proste. GCC od dłuższego czasu zawiera obsługę AVR i ta obsługa jest szeroko stosowana. LLVM ma również podstawową obsługę AVR. W rzeczywistości firma Atmel poprosiła głównych programistów kompilatorów dla małych mikrokontrolerów, aby określić funkcje zestawu instrukcji, które były najbardziej przydatne w kompilatorze dla języków wysokiego poziomu.

Prędkość MCU

Linia AVR może normalnie obsługiwać częstotliwości zegara od 0 do 20 MHz, a niektóre urządzenia osiągają 32 MHz. Działanie przy niższym poborze mocy zwykle wymaga zmniejszonej częstotliwości zegara. Wszystkie najnowsze (Tiny, Mega i Xmega, ale nie 90S) AVR są wyposażone w oscylator na chipie, eliminując potrzebę stosowania zewnętrznych zegarów lub obwodów rezonatora. Niektóre AVR mają również preskaler zegara systemowego, który może podzielić zegar systemowy nawet o 1024. Ten preskaler może być rekonfigurowany przez oprogramowanie w czasie wykonywania, umożliwiając optymalizację szybkości zegara.

Ponieważ wszystkie operacje (z wyjątkiem mnożenia i 16-bitowego dodawania/odejmowania) na rejestrach R0–R31 są jednocyklowe, AVR może osiągnąć do 1 MIPS na MHz, tj. procesor 8 MHz może osiągnąć do 8 MIPS. Ładowanie i przechowywanie do/z pamięci trwa dwa cykle, rozgałęzienie zajmuje dwa cykle. Gałęzie w najnowszych częściach „3-bajtowych PC”, takich jak ATmega2560, są o jeden cykl wolniejsze niż na poprzednich urządzeniach.

Rozwój

AVR cieszą się dużą popularnością ze względu na dostępne bezpłatne i niedrogie narzędzia programistyczne, w tym niedrogie płyty programistyczne i bezpłatne oprogramowanie programistyczne. AVR są sprzedawane pod różnymi nazwami, które mają ten sam podstawowy rdzeń, ale z różnymi kombinacjami urządzeń peryferyjnych i pamięci. Kompatybilność między chipami w każdej rodzinie jest dość dobra, chociaż funkcje kontrolera I/O mogą się różnić.

Zobacz linki zewnętrzne do stron związanych z rozwojem AVR.

Cechy

AVR oferują szeroką gamę funkcji:

  • Wielofunkcyjne, dwukierunkowe porty we/wy ogólnego przeznaczenia z konfigurowalnymi, wbudowanymi rezystorami podciągającymi
  • Wiele wewnętrznych oscylatorów, w tym oscylator RC bez części zewnętrznych
  • Wewnętrzna, samoprogramowalna pamięć flash instrukcji do 256 kB (384 kB w XMega)
    • Programowalny w systemie przy użyciu własnych interfejsów szeregowych/równoległych niskonapięciowych lub JTAG
    • Opcjonalna sekcja kodu rozruchowego z niezależnymi bitami blokującymi dla ochrony
  • Obsługa debugowania na chipie (OCD) przez JTAG lub debugWIRE na większości urządzeń
    • Sygnały JTAG (TMS, TDI, TDO i TCK) są multipleksowane na GPIO . Piny te można skonfigurować tak, aby działały jako JTAG lub GPIO w zależności od ustawienia bitu bezpiecznika, który można zaprogramować za pośrednictwem ISP lub HVSP. Domyślnie AVR z JTAG mają włączony interfejs JTAG.
    • debugWIRE używa pinu /RESET jako dwukierunkowego kanału komunikacyjnego, aby uzyskać dostęp do obwodów debugowania na chipie. Jest obecny na urządzeniach z mniejszą liczbą pinów, ponieważ wymaga tylko jednego pinu.
  • Dane wewnętrzne EEPROM do 4 KB
  • Wewnętrzna pamięć SRAM do 16 KB (32 KB w XMega)
  • Zewnętrzna przestrzeń danych little endian 64 KB w niektórych modelach, w tym Mega8515 i Mega162.
    • Zewnętrzna przestrzeń danych jest nakładana na wewnętrzną przestrzeń danych, tak że pełna przestrzeń adresowa 64 KB nie pojawia się na zewnętrznej szynie, a dostęp do np. adresu 0100 16 daje dostęp do wewnętrznej pamięci RAM, a nie do zewnętrznej szyny.
    • W niektórych członkach serii XMega zewnętrzna przestrzeń danych została zwiększona, aby obsługiwać zarówno SRAM, jak i SDRAM. Również tryby adresowania danych zostały rozszerzone, aby umożliwić bezpośrednie adresowanie do 16 MB pamięci danych.
  • 8-bitowe i 16-bitowe timery
    • Wyjście PWM (niektóre urządzenia mają ulepszone urządzenie peryferyjne PWM, które obejmuje generator czasu martwego)
    • Przechwytywanie wejścia, które rejestruje znacznik czasu wyzwalany przez zbocze sygnału
  • Komparator analogowy
  • 10 lub 12-bitowe przetworniki A/D z multipleksem do 16 kanałów
  • 12-bitowe przetworniki C/A
  • Różnorodne interfejsy szeregowe, w tym
  • Wykrywanie zaciemnienia
  • Zegar nadzoru (WDT)
  • Wiele energooszczędnych trybów uśpienia
  • Modele sterowników oświetlenia i sterowania silnikiem ( specyficzne dla PWM )
  • Obsługa kontrolera CAN
  • Obsługa kontrolera USB
    • Właściwy sprzęt o pełnej prędkości (12 Mbit/s) i kontroler Hub z wbudowanym AVR.
    • Również swobodnie dostępne emulacje oprogramowania do bitbangingu o niskiej prędkości (1,5 Mbit/s) ( HID )
  • Obsługa kontrolera Ethernet
  • Obsługa kontrolera LCD
  • Urządzenia niskonapięciowe działające do 1,8 V (do 0,7 V dla części z wbudowanym konwerterem DC-DC)
  • urządzenia picoPower
  • Kontrolery DMA i komunikacja peryferyjna „systemu zdarzeń”.
  • Szybka obsługa kryptografii dla AES i DES

Interfejsy programistyczne

Istnieje wiele sposobów na załadowanie kodu programu do układu AVR. Metody programowania układów AVR różnią się w zależności od rodziny AVR. Większość opisanych poniżej metod wykorzystuje linię RESET do wejścia w tryb programowania. Aby uniknąć przypadkowego przejścia układu w taki tryb, zaleca się podłączenie rezystora podciągającego pomiędzy pin RESET a dodatni zasilacz.

ISP

Schematy 6- i 10-pinowych nagłówków ISP

Metoda programowania w systemie (ISP) jest funkcjonalnie realizowana przez SPI , plus trochę kręcenia linii Reset. Dopóki styki SPI AVR nie są podłączone do niczego zakłócającego, układ AVR może pozostać przylutowany do płytki drukowanej podczas przeprogramowania. Wystarczy 6-pinowe złącze i adapter do programowania. Jest to najczęstszy sposób tworzenia programów za pomocą amplitunera AVR.

Urządzenie Atmel-ICE lub AVRISP mkII (urządzenie starsze) łączy się z portem USB komputera i wykonuje programowanie w systemie za pomocą oprogramowania Atmel.

AVRDUDE (AVR Downloader/Uploader) działa w systemach Linux , FreeBSD , Windows i Mac OS X i obsługuje różne systemy programowania sprzętowego, w tym Atmel AVRISP mkII, Atmel JTAG ICE, starsze programatory Atmel oparte na porcie szeregowym i różne programiści zewnętrzni i „zrób to sam”.

PDI

Program and Debug Interface (PDI) to zastrzeżony interfejs firmy Atmel do zewnętrznego programowania i debugowania na chipie urządzeń XMEGA. PDI obsługuje szybkie programowanie wszystkich przestrzeni pamięci nieulotnej (NVM); flash, EEPROM, bezpieczniki, bity blokujące i wiersz podpisu użytkownika. Odbywa się to poprzez dostęp do kontrolera XMEGA NVM za pośrednictwem interfejsu PDI i wykonywanie poleceń kontrolera NVM. PDI to 2-pinowy interfejs wykorzystujący pin Reset dla wejścia zegara (PDI_CLK) oraz dedykowany pin danych (PDI_DATA) dla wejścia i wyjścia.

UPDI

Unified Program and Debug Interface (UPDI) to jednoprzewodowy interfejs do programowania zewnętrznego i debugowania na chipie nowszych urządzeń ATtiny i ATmega. Atmel-ICE i PICkit 4 są zdolne do programowania chipów UPDI. Możliwe jest również użycie Arduino dzięki jtag2updi.

Szeregowy wysokiego napięcia

Programowanie szeregowe wysokiego napięcia (HVSP) jest głównie trybem rezerwowym w mniejszych odbiornikach AVR. 8-pinowy pakiet AVR nie pozostawia wielu unikalnych kombinacji sygnałów, aby wprowadzić AVR w tryb programowania. Sygnał 12 V jest jednak czymś, co odbiornik AVR powinien widzieć tylko podczas programowania, a nigdy podczas normalnej pracy. Tryb wysokiego napięcia może być również używany w niektórych urządzeniach, w których pin resetujący został wyłączony przez bezpieczniki.

Równolegle wysokiego napięcia

Programowanie równoległe wysokiego napięcia (HVPP) jest uważane za „ostateczne rozwiązanie” i może być jedynym sposobem na poprawienie złych ustawień bezpieczników w układzie AVR.

Program rozruchowy

Większość modeli AVR może zarezerwować region bootloadera , od 256 bajtów do 4 KB, gdzie może znajdować się kod ponownego programowania. Po zresetowaniu bootloader uruchamia się jako pierwszy i wykonuje zaprogramowane przez użytkownika określenie, czy należy przeprogramować, czy przejść do głównej aplikacji. Kod można przeprogramować za pomocą dowolnego dostępnego interfejsu lub odczytać zaszyfrowany plik binarny przez adapter Ethernet, taki jak PXE . Atmel posiada uwagi aplikacyjne i kod dotyczący wielu interfejsów magistrali.

ROM

Seria AT90SC AVR jest dostępna z fabryczną maską ROM zamiast pamięci flash dla pamięci programu. Ze względu na wysokie koszty początkowe i minimalną ilość zamówienia, mask-ROM jest opłacalna tylko w przypadku dużych serii produkcyjnych.

przewód

aWire to nowy jednoprzewodowy interfejs debugowania dostępny w nowych urządzeniach UC3L AVR32.

Interfejsy debugowania

AVR oferuje kilka opcji debugowania, głównie obejmujących debugowanie na chipie, gdy chip znajduje się w systemie docelowym.

debugWIRE

debugWIRE to rozwiązanie firmy Atmel zapewniające możliwość debugowania na chipie za pomocą pojedynczego pinu mikrokontrolera. Jest to szczególnie przydatne w przypadku części o mniejszej liczbie pinów, które nie mogą zapewnić czterech "zapasowych" pinów potrzebnych do JTAG. JTAGICE mkII, mkIII i AVR Dragon obsługują debugWIRE. debugWIRE został opracowany po oryginalnym wydaniu JTAGICE, a teraz obsługują go klony.

JTAG

Funkcja Joint Test Action Group ( JTAG ) zapewnia dostęp do funkcji debugowania na chipie, gdy chip pracuje w systemie docelowym. JTAG umożliwia dostęp do pamięci wewnętrznej i rejestrów, ustawianie punktów przerwania w kodzie oraz wykonywanie w jednym kroku w celu obserwowania zachowania systemu.

Atmel dostarcza serię adapterów JTAG do AVR:

  1. Atmel-ICE to najnowszy adapter. Obsługuje interfejsy JTAG, debugWire, aWire, SPI, TPI i PDI.
  2. JTAGICE 3 to debugger średniotonowy z rodziny JTAGICE (JTAGICE mkIII). Obsługuje interfejsy JTAG, aWire, SPI i PDI.
  3. JTAGICE mkII zastępuje JTAGICE i ma podobną cenę. JTAGICE mkII łączy się z komputerem PC przez USB i obsługuje zarówno JTAG, jak i nowszy interfejs debugWIRE. Liczne klony firm trzecich urządzenia Atmel JTAGICE mkII rozpoczęły dystrybucję po wydaniu przez Atmel protokołu komunikacyjnego.
  4. AVR Dragon jest tanim (około 50 dolarów) substytutem JTAGICE mkII dla niektórych części docelowych. AVR Dragon zapewnia programowanie szeregowe w systemie, programowanie szeregowe wysokiego napięcia i programowanie równoległe, a także emulację JTAG lub debugWIRE dla części z 32 kB pamięci programu lub mniej. ATMEL zmienił funkcję debugowania AVR Dragon z najnowszym oprogramowaniem AVR Studio 4 - AVR Studio 5 i teraz obsługuje urządzenia powyżej 32 KB pamięci programu.
  5. Adapter JTAGICE łączy się z komputerem PC poprzez standardowy port szeregowy. Mimo że adapter JTAGICE został uznany przez Atmel za „ end-of-life ”, nadal jest obsługiwany w AVR Studio i innych narzędziach.

JTAG może być również użyty do wykonania testu skanowania granic , który testuje połączenia elektryczne między AVR i innymi chipami obsługującymi skanowanie granic w systemie. Skanowanie granic jest dobrze dostosowane do linii produkcyjnej, podczas gdy hobbystom prawdopodobnie lepiej będzie testować za pomocą multimetru lub oscyloskopu.

Narzędzia programistyczne i zestawy ewaluacyjne

Płytka rozwojowa Atmel STK500

Oficjalne narzędzia programistyczne i zestawy ewaluacyjne Atmel AVR zawierają szereg zestawów startowych i narzędzi do debugowania z obsługą większości urządzeń AVR:

Zestaw startowy STK600

Zestaw startowy i system rozwojowy STK600 to aktualizacja STK500. STK600 wykorzystuje płytę bazową, płytę routingu sygnału i płytę docelową.

Płyta bazowa jest podobna do STK500, ponieważ zapewnia zasilanie, zegar, programowanie w systemie, port RS-232 i port CAN (Controller Area Network, standard motoryzacyjny) przez złącza DE9 i kołki do wszystkie sygnały GPIO z urządzenia docelowego.

Płyty docelowe posiadają gniazda ZIF dla pakietów DIP , SOIC , QFN lub QFP , w zależności od płyty.

Płytka routingu sygnału znajduje się między płytą bazową a płytą docelową i kieruje sygnały do ​​odpowiedniego styku na płytce urządzenia. Istnieje wiele różnych płytek routingu sygnału, które mogą być używane z jedną płytą docelową, w zależności od tego, jakie urządzenie znajduje się w gnieździe ZIF.

STK600 umożliwia programowanie w systemie z komputera przez USB, pozostawiając port RS-232 dostępny dla docelowego mikrokontrolera. 4- pinowe złącze na STK600 oznaczone jako „zapasowy RS-232” może połączyć dowolny port USART poziomu TTL na chipie z wbudowanym układem MAX232 w celu przetłumaczenia sygnałów na poziomy RS-232. Sygnały RS-232 są podłączone do pinów RX, TX, CTS i RTS na złączu DB-9.

Zestaw startowy STK500

Zestaw startowy i system rozwojowy STK500 zawiera ISP i programowanie wysokiego napięcia (HVP) dla wszystkich urządzeń AVR, bezpośrednio lub przez karty rozszerzeń. Płytka wyposażona jest w gniazda DIP dla wszystkich AVR dostępnych w pakietach DIP.

Moduły rozszerzeń STK500: Dla płyty STK500 dostępnych jest kilka modułów rozszerzeń:

  • STK501 – Dodaje obsługę mikrokontrolerów w 64-pinowych pakietach TQFP.
  • STK502 — dodaje obsługę odbiorników AVR LCD w 64-stykowych pakietach TQFP.
  • STK503 – Dodaje obsługę mikrokontrolerów w 100-pinowych pakietach TQFP.
  • STK504 — dodaje obsługę odbiorników AVR LCD w 100-stykowych pakietach TQFP.
  • STK505 — dodaje obsługę 14- i 20-stykowych odbiorników AVR.
  • STK520 – Dodaje obsługę 14, 20 i 32-pinowych mikrokontrolerów z rodziny AT90PWM i ATmega.
  • STK524 – dodaje obsługę 32-pinowej rodziny ATmega32M1/C1 CAN/LIN/Motor Control.
  • STK525 – dodaje obsługę mikrokontrolerów AT90USB w 64-pinowych pakietach TQFP.
  • STK526 – dodaje obsługę mikrokontrolerów AT90USB w 32-pinowych pakietach TQFP.

Zestaw startowy STK200

Zestaw startowy i system rozwojowy STK200 ma gniazdo DIP, które może pomieścić układ AVR w 40, 20 lub 8-pinowej obudowie. Płytka posiada źródło zegara 4 MHz , 8 diod elektroluminescencyjnych (LED), 8 przycisków wejściowych, port RS-232 , gniazdo na 32k SRAM oraz liczne ogólne I/O. Układ można zaprogramować za pomocą klucza sprzętowego podłączonego do portu równoległego.

Obsługiwane mikrokontrolery (wg instrukcji)
Żeton Rozmiar lampy błyskowej EEPROM SRAM Częstotliwość
[MHz]
Pakiet
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 i AVRISP mkII

AVRISP mkII

AVRISP i AVRISP mkII to niedrogie narzędzia umożliwiające programowanie wszystkich AVR za pośrednictwem ICSP .

AVRISP łączy się z komputerem PC przez port szeregowy i pobiera energię z systemu docelowego. AVRISP umożliwia użycie jednego ze „standardowych” wyprowadzeń ICSP, złącza 10-pinowego lub 6-pinowego.

AVRISP mkII łączy się z komputerem przez USB i pobiera energię z USB. Widoczne przez przezroczystą obudowę diody LED wskazują stan docelowej mocy.

Ponieważ AVRISP mkII nie ma układów scalonych sterownika/bufora, może mieć problemy z programowaniem płytek docelowych z wieloma obciążeniami na swoich liniach SPI. W takich przypadkach wymagany jest programator zdolny do pozyskiwania większego prądu. Alternatywnie, AVRISP mkII może być nadal używany, jeśli rezystory ograniczające obciążenie o niskiej wartości (~150 omów) można umieścić na liniach SPI przed każdym urządzeniem peryferyjnym.

Zarówno AVRISP, jak i AVRISP mkII zostały wycofane, a strony produktów zostały usunięte ze strony internetowej Microchip. Od lipca 2019 r. AVRISP mkII jest nadal dostępny u wielu dystrybutorów. Dostępnych jest również wiele klonów innych firm.

AVR Smok

AVR Dragon z kablem do programowania ISP i dołączonym, niebiesko-zielonkawym gniazdem ZIF

Atmel Dragon to niedrogie narzędzie, które łączy się z komputerem przez USB. Dragon może programować wszystkie AVR przez JTAG, HVP, PDI lub ICSP. Dragon umożliwia również debugowanie wszystkich AVR poprzez JTAG, PDI lub debugWire; w AVR Studio 4.18 usunięto poprzednie ograniczenie do urządzeń z 32 KB lub mniej pamięcią programu. Dragon ma mały obszar prototypowy, który może pomieścić 8, 28 lub 40-pinowy AVR, w tym połączenia z pinami zasilania i programowania. Nie ma miejsca na dodatkowe obwody, chociaż może to zapewnić produkt innej firmy o nazwie „Dragon Rider”.

JTAGICE

JTAG w obwodzie Emulator (JTAGICE) obsługuje debugowania narzędzia on-chip debugowania (OCD) z AVRS z interfejsem JTAG. Oryginalny JTAGICE (czasami określany wstecz jako JTAGICE mkI) wykorzystuje interfejs RS-232 do komputera PC i może programować AVR tylko z interfejsem JTAG. JTAGICE mkI nie jest już produkowany, ale został zastąpiony przez JTAGICE mkII.

JTAGICE mkII

Narzędzie do debugowania JTAGICE mkII obsługuje debugowanie na chipie (OCD) AVR z interfejsami SPI, JTAG, PDI i debugWIRE. Interfejs debugWire umożliwia debugowanie przy użyciu tylko jednego pinu (pin Reset), umożliwiając debugowanie aplikacji działających na mikrokontrolerach o małej liczbie pinów.

JTAGICE mkII łączy się przez USB, ale istnieje alternatywne połączenie przez port szeregowy, co wymaga użycia osobnego zasilacza. Oprócz JTAG, mkII obsługuje programowanie ISP (przy użyciu adapterów 6-pinowych lub 10-pinowych). Zarówno łącza USB, jak i szeregowe wykorzystują wariant protokołu STK500.

JTAGICE3

JTAGICE3 aktualizuje mkII o bardziej zaawansowane możliwości debugowania i szybsze programowanie. Łączy się przez USB i obsługuje interfejsy JTAG, aWire, SPI i PDI. Zestaw zawiera kilka adapterów do użytku z większością wyprowadzeń interfejsu.

AVR JEDEN!

AVR JEDEN! to profesjonalne narzędzie programistyczne dla wszystkich 8-bitowych i 32-bitowych urządzeń AVR firmy Atmel z funkcją debugowania na chipie. Obsługuje tryby programowania SPI, JTAG, PDI i aWire oraz debugowanie za pomocą interfejsów debugWIRE, JTAG, PDI i aWire.

Tablica demonstracyjna motyla

Atmel ATmega169 w 64- padowej obudowie MLF z tyłu płyty Atmel AVR Butterfly

Bardzo popularna płytka demonstracyjna AVR Butterfly to samodzielny, zasilany bateryjnie komputer z mikrokontrolerem Atmel AVR ATmega169V. Został zbudowany, aby pochwalić się rodziną AVR, a zwłaszcza nowym wbudowanym interfejsem LCD. Płytka zawiera ekran LCD, joystick, głośnik, port szeregowy, zegar czasu rzeczywistego (RTC), układ pamięci flash oraz czujniki temperatury i napięcia. Wcześniejsze wersje AVR Butterfly również zawierały fotorezystor CdS ; nie występuje na płytach Butterfly wyprodukowanych po czerwcu 2006 r., aby zapewnić zgodność z dyrektywą RoHS . Mała tabliczka ma z tyłu szpilkę do koszuli, dzięki czemu można ją nosić jako identyfikator.

AVR Butterfly jest dostarczany z fabrycznie załadowanym oprogramowaniem, aby zademonstrować możliwości mikrokontrolera. Fabryczne oprogramowanie układowe może przewijać twoje imię, wyświetlać odczyty czujnika i wyświetlać godzinę. AVR Butterfly posiada również przetwornik piezoelektryczny, który może być używany do odtwarzania dźwięków i muzyki.

AVR Butterfly demonstruje jazdę z wyświetlaczem LCD, korzystając z 14-segmentowego, sześcioznakowego wyświetlacza alfanumerycznego. Jednak interfejs LCD zużywa wiele pinów I/O.

Procesor Butterfly ATmega169 może pracować z szybkością do 8 MHz, ale jest fabrycznie ustawiony przez oprogramowanie na 2 MHz, aby przedłużyć żywotność baterii przycisku. Zainstalowany fabrycznie program ładujący umożliwia ponowne zaprogramowanie płyty za pomocą standardowego złącza szeregowego RS-232 z nowymi programami, które użytkownicy mogą pisać za pomocą bezpłatnych narzędzi Atmel IDE.

AT90Klucz USB

Ta niewielka tablica, wielkości około połowy wizytówki, kosztuje nieco więcej niż AVR Butterfly. Zawiera AT90USB1287 z obsługą USB On-The-Go (OTG), 16 MB pamięci DataFlash , diody LED, mały joystick i czujnik temperatury. Płyta zawiera oprogramowanie, które pozwala jej działać jako urządzenie pamięci masowej USB (jej dokumentacja jest dostarczana na DataFlash), joystick USB i wiele innych. Aby obsługiwać funkcję hosta USB, musi być zasilany z baterii, ale gdy działa jako urządzenie peryferyjne USB, potrzebuje tylko zasilania dostarczanego przez USB.

Tylko port JTAG wykorzystuje konwencjonalny pinout 2,54 mm. Wszystkie pozostałe porty wejścia/wyjścia AVR wymagają bardziej kompaktowych gniazd 1,27 mm.

AVR Dragon może zarówno programować, jak i debugować, ponieważ ograniczenie 32 KB zostało usunięte w AVR Studio 4.18, a JTAGICE mkII jest w stanie zarówno programować, jak i debugować procesor. Procesor można również zaprogramować przez USB z hosta Windows lub Linux, korzystając z protokołów USB „Device Firmware Update”. Atmel dostarcza własne programy przykładowe (zawarty kod źródłowy, ale ograniczona dystrybucja) i stos protokołów USB z urządzeniem.

LUFA to stos protokołów USB innych firm ( licencja MIT ) dla USBKey i innych 8-bitowych amplitunerów USB.

Zestaw bezprzewodowy Raven

Zestaw RAVEN obsługuje rozwój bezprzewodowy przy użyciu chipsetów Atmel IEEE 802.15.4 , dla ZigBee i innych bezprzewodowych stosów. Przypomina parę bezprzewodowych, mocniejszych kart Butterfly oraz bezprzewodowy klucz USB; i kosztuje tyle samo (poniżej 100 USD). Wszystkie te płytki wspierają rozwój oparty na JTAG.

Zestaw zawiera dwie płyty AVR Raven, każda z transceiverem 2,4 GHz obsługującym IEEE 802.15.4 (i swobodnie licencjonowanym stosem ZigBee). Radiotelefony są napędzane procesorami ATmega1284p, które są obsługiwane przez niestandardowy segmentowy wyświetlacz LCD z procesorem ATmega3290p. Peryferia Raven przypominają Butterfly: głośnik piezo, DataFlash (większy), zewnętrzna pamięć EEPROM, czujniki, kryształ 32 kHz dla RTC i tak dalej. Są one przeznaczone do wykorzystania w rozwoju zdalnych węzłów czujnikowych, do sterowania przekaźnikami lub cokolwiek jest potrzebne.

Pamięć USB wykorzystuje AT90USB1287 do połączeń z hostem USB i łączami bezprzewodowymi 2,4 GHz. Są one przeznaczone do monitorowania i kontrolowania zdalnych węzłów, opierając się na mocy hosta, a nie na lokalnych bateriach.

Zewnętrzni programiści

Dla odbiornika AVR dostępna jest szeroka gama narzędzi do programowania i debugowania innych firm. Urządzenia te korzystają z różnych interfejsów, w tym RS-232, portu równoległego PC i USB.

Zastosowania

Atmel AVR ATmega328 28-pin DIP na płytce Arduino Duemilanove
Atmel AVR ATmega8 28-pinowy DIP na niestandardowej płytce rozwojowej

AVR są używane w różnych zastosowaniach motoryzacyjnych, takich jak systemy bezpieczeństwa, bezpieczeństwa, układu napędowego i rozrywki. Firma Atmel wydała niedawno nową publikację „Atmel Automotive Compilation”, aby pomóc programistom w aplikacjach motoryzacyjnych. Niektóre z obecnych zastosowań to BMW, Daimler-Chrysler i TRW.

Arduino fizyczny computing platforma bazuje na ATmega328 mikrokontrolerów (ATmega168 lub ATmega8 w wersjach starszych niż pokładzie Diecimila). ATmega1280 i ATmega2560, z większymi możliwościami pinoutów i pamięci, zostały również wykorzystane do opracowania platformy Arduino Mega . Płyty Arduino mogą być używane z jego językiem i IDE lub z bardziej konwencjonalnymi środowiskami programistycznymi ( C , assembler , itp.) jako tylko ustandaryzowane i szeroko dostępne platformy AVR.

W kontrolerach ręcznych Microsoft Xbox zastosowano odbiorniki AVR oparte na USB. Łącze między kontrolerami a konsolą Xbox to USB.

Wiele firm produkuje płytki mikrokontrolerów oparte na AVR, przeznaczone do użytku przez hobbystów, konstruktorów robotów, eksperymentatorów i programistów małych systemów, w tym: Cubloc, gnusb, BasicX , Oak Micros, ZX Microcontrollers i myAVR. Istnieje również duża społeczność płyt kompatybilnych z Arduino obsługujących podobnych użytkowników.

Schneider Electric wyprodukował układ sterowania silnikiem i ruchem M3000, zawierający rdzeń Atmel AVR i zaawansowany kontroler ruchu do użytku w różnych aplikacjach ruchu, ale został on wycofany.

Klony FPGA

Wraz z rosnącą popularnością układów FPGA wśród społeczności open source, ludzie zaczęli opracowywać procesory open source kompatybilne z zestawem instrukcji AVR. Witryna OpenCores zawiera listę następujących głównych projektów klonowania AVR:

  • pAVR, napisany w VHDL , ma na celu stworzenie najszybszego i maksymalnie funkcjonalnego procesora AVR, poprzez zaimplementowanie technik niespotykanych w oryginalnym procesorze AVR, takich jak głębsze potokowanie.
  • avr_core, napisany w VHDL , to klon mający być jak najbliżej ATmega103.
  • Navré, napisany w Verilog , implementuje wszystkie instrukcje Classic Core i ma na celu wysoką wydajność i niskie zużycie zasobów. Nie obsługuje przerwań.
  • softavrcore, napisany w Verilog , implementuje instrukcję AVR skonfigurowaną do AVR5, obsługuje przerwania i niektóre interfejsy (takie jak UART , SPI i zegary) demonstrując, w jaki sposób zewnętrzne urządzenia peryferyjne są podłączone i skonfigurowane dla tego rdzenia.
  • Wykład dotyczący procesora w projekcie opencores napisany w języku VHDL przez dr Jürgena Sauermanna wyjaśnia szczegółowo, jak zaprojektować kompletny system oparty na AVR na chipie (SoC).

Inni dostawcy

Oprócz chipów produkowanych przez Atmel, klony są dostępne w LogicGreen Technologies. Te części nie są dokładnymi klonami - mają kilka cech, których nie ma w chipach, których są "klonami", i wyższe maksymalne częstotliwości taktowania, ale używają SWD zamiast ISP do programowania, więc muszą być używane inne narzędzia programistyczne.

Mikrokontrolery wykorzystujące architekturę ATmega są produkowane przez NIIET w Woroneżu w Rosji jako część serii układów scalonych 1887. Obejmuje to ATmega128 pod oznaczeniem 1887VE7T ( rosyjski : 1887ВЕ7Т ).

Bibliografia

Dalsza lektura

  • Programowanie AVR: Nauka pisania oprogramowania na sprzęt ; Elliota Williamsa; Twórca mediów; 474 strony; 2014; ISBN  978-1449355784
  • Arduino: Przewodnik szybkiego startu ; Maika Schmidta; pragmatyczna półka na książki; 276 stron; 2011; ISBN  978-1-934356-66-1 .
  • Wymagane jest pewne złożenie: Programowanie w języku asemblera z mikrokontrolerem AVR ; Timothy S. Margush; Prasa CRC; 643 strony; 2011; ISBN  978-1439820643
  • Mikrokontroler AVR i systemy wbudowane: Używanie Assembly i C ; Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi; Osoba; 792 strony; 2010; ISBN  978-0138003319 .

Zewnętrzne linki

Oficjalna strona internetowa
Oficjalna społeczność
Schematy pinów