Atmel AVR — przegląd architektury i zastosowań mikrokontrolerów
AVR to rodzina 8‑bitowych mikrokontrolerów Atmel (od 1996), oparta na architekturze Harvard, znana z pamięci flash on‑chip, wydajnego zestawu rejestrów i szerokich zastosowań hobbystycznych i przemysłowych.
Przegląd
Atmel AVR to rodzina 8‑bitowych mikrokontrolerów zaprojektowana przez firmę Atmel w połowie lat 90. XX wieku. Charakteryzuje się oddzielnymi przestrzeniami pamięci instrukcji i danych, co klasyfikuje ją jako implementację architektury Harvard. AVR wyróżnił się wprowadzeniem programowalnej pamięci Flash na układzie (on‑chip), co ułatwiło wielokrotne programowanie urządzeń i przyspieszyło rozwój aplikacji wbudowanych.
Galeria obrazów
10 ObrazyBudowa i cechy techniczne
Rdzeń AVR to prosty, ale wydajny projekt RISC‑like. Typowe cechy obejmują 32 rejestry ogólnego przeznaczenia bezpośrednio sprzężone z jednostką arytmetyczno‑logiczną (ALU), co pozwala na operacje na dwóch rejestrach w jednym cyklu maszynowym. Wiele instrukcji wykonuje się w pojedynczym cyklu, a jednostka posiada dwustopniową pipeline (fetch/execute), dzięki czemu następne polecenie jest pobierane podczas wykonywania poprzedniego. Projekt wspiera też różne tryby oszczędzania energii i mechanizmy przerwań, co czyni AVR odpowiednim do zastosowań bateryjnych.
Warianty i peryferia
Rodzina obejmuje kilka linii produktowych dopasowanych do różnych zastosowań:
- tinyAVR — najmniejsze układy do prostych aplikacji;
- megaAVR — popularne, z większą liczbą I/O i pamięci (np. układy używane w platformie Arduino);
- XMEGA — wersje o rozbudowanych możliwościach peryferyjnych i wyższej wydajności.
Peryferia typowe dla AVR obejmują liczniki/timery, interfejsy UART, SPI i I2C, przetworniki ADC, a w wyższych modelach także układy DMA czy zaawansowane układy do zarządzania zasilaniem.
Historia i rozwój
AVR powstał jako odpowiedź na potrzebę szybszych i łatwiejszych w użyciu mikroprocesorów dla systemów wbudowanych. Jedną z często przytaczanych wersji etymologii nazwy jest połączenie inicjałów projektantów (Alf i Vegard), ale niezależnie od pochodzenia nazwy, technologie wprowadzone przez AVR — głównie pamięć Flash oraz zunifikowany zestaw rejestrów — znacząco wpłynęły na popularyzację mikrokontrolerów wśród hobbystów i przemysłu. Platformy edukacyjne i kompilatory open source (np. toolchain GCC) jeszcze bardziej rozpowszechniły ich użycie.
Zastosowania i programowanie
AVR jest wykorzystywany w prostych i średnio zaawansowanych projektach: sterowanie silnikami, czujniki, urządzenia IoT, automatyka domowa, a także w aplikacjach przemysłowych. Popularność utrwaliła integracja z platformami rozwojowymi, z których najbardziej rozpoznawalnym przykładem są płytki Arduino bazujące na układach z rodziny megaAVR (np. ATmega328P). Programowanie i wgrywanie oprogramowania zwykle odbywa się przez interfejs ISP/SPI; niektóre układy oferują debugWIRE lub JTAG. AVR wspierany jest przez rozbudowane środowiska programistyczne i bibliotekę narzędzi, co upraszcza rozwój aplikacji.
Rozróżnienia i ciekawostki
W praktyce AVR często porównuje się z innymi 8‑bitowymi rodzinami MCU, takimi jak rodzimy MCS‑51 czy nowsze rdzenie ARM Cortex‑M. W porównaniu do klasycznego MCS‑51, AVR oferuje znacznie efektywniejsze wykorzystanie cykli zegarowych i prostszy model programowania. W archiwach i dokumentacji spotkać można także odniesienia do pamięci takich jak EPROM czy EEPROM, które dawniej były dominujące w innych układach pamięci programu i danych.
AVR pozostaje ważnym studium przypadku w historii mikrokontrolerów: jako przykład praktycznego kompromisu między prostotą, wydajnością i dostępnością narzędzi programistycznych, skutecznie służy edukacji oraz komercyjnym rozwiązaniom.
Rodziny podstawowe
tinyAVR
- 0,5-8 kB pamięci programu
- do 0,5 kB SRAM
- do 0,5 kB EEPROM
- do 20 MHz
- 6-32 pinowe opakowanie
megaAVR
- 4-256 kB pamięć programu
- 0,5-16kB SRAM
- 0,5-4 kB EEPROM
- do 20 MHz
- Pakiet 20-100 pin
XMEGA
- 16-384kB pamięci programu
- 2-32 kB SRAM
- Interfejs zewnętrznej magistrali do 16M bajtów SRAM SDRAM
- 1-4 kB EEPROM
- do 32 MHz
- 44-100 pinowy pakiet
Cechy
Każdy AVR posiada pewne porty wejścia/wyjścia. Port posiada do 8 fizycznych pinów na swojej obudowie. Każdy pin może być skonfigurowany jako wejście lub wyjście. Jeśli pin jest używany jako wejściowy, może włączyć wbudowane rezystory podciągające poprzez rejestr PORTx. Jeśli pin jest skonfigurowany jako wyjściowy, może on obsłużyć do 40mA obciążenia na pin i maksymalnie 100mA dla wszystkich pinów portu.
Przetwornik A/D
- 10-bitowy (tinyAVR, megaAVR) z multipleksem do 8 kanałów
- 12-bitowy (XMEGA) z multipleksem do 16 kanałów
Timery/liczniki (8-bitowe lub 16-bitowe)
- Użytkownik może skonfigurować go jako PWM, licznik lub timer.
- W trybie prostego PWM rejestr zliczający pracuje bez zatrzymania i jest porównywany z innym rejestrem. Jeżeli rejestr zliczający jest większy od drugiego rejestru pin Ocx jest ustawiany na "1". W pozostałych przypadkach pin Ocx jest ustawiany na "0".
- Licznik ma jakieś zewnętrzne źródło np. czujnik foto i może zliczać ilość osób, które przejdą przez czujnik foto.
- Timer daje impulsy w dokładnym czasie. Jest on używany do programowania aplikacji zegarowych.
TWI - Two Wire Interface Używa tego samego protokołu co I2C i może być używany jako interfejs I2C
UART/USART UART może być używany do komunikacji RS232/RS485.
SPI - szeregowy interfejs peryferyjny
- bardzo szybka magistrala szeregowa, która służy do przesyłania danych i komunikacji z urządzeniami
- możesz nagrywać/odczytywać program do/z pamięci programu lub EEPROM poprzez tę magistralę
USI - Universal Serial Interface (uniwersalny interfejs szeregowy)
- używane do dwu- lub trzyprzewodowej synchronicznej transmisji danych
JTAG
- interfejs do debugowania online
Przetwornik C/A
- 12-bitowy (tylko XMEGA) z multipleksem do 2 kanałów
Powiązane strony
- Arduino
Pytania i odpowiedzi
P: Kiedy powstała architektura mikrokontrolera AVR?
O: Architektura mikrokontrolera AVR została opracowana w 1996 roku przez firmę Atmel.
P: Na jakiej architekturze oparty jest mikrokontroler AVR?
O: Mikrokontroler AVR jest oparty na architekturze mikrokontrolerów Harvarda.
P: Co odróżnia mikrokontroler AVR od innych mikrokontrolerów w momencie jego tworzenia?
O: Mikrokontroler AVR wykorzystuje do przechowywania programów wbudowaną pamięć flash, w przeciwieństwie do jednorazowo programowalnej pamięci ROM, EPROM lub EEPROM, stosowanej przez inne mikrokontrolery w tamtym czasie.
P: Jakie jest powszechnie uważane znaczenie skrótu AVR?
O: Wiele osób uważa, że AVR oznacza procesor Risc Alf'a (Egil Bogen) i Vegarda (Wollan).
P: Jaką architekturę zastąpił mikrokontroler AVR?
O: Mikrokontroler AVR zastąpił starszą architekturę MCS-51.
P: Ile cykli zegara trwa jeden cykl maszynowy MCS-51?
O: Jeden cykl maszynowy MCS-51 trwa 12 cykli zegara.
P: Jaka jest przewaga mikrokontrolerów AVR nad MCS-51 pod względem wydajności na cykl zegara?
O: Wydajność na cykl zegara jest 12 razy większa w przypadku mikrokontrolerów AVR.
Powiązane artykuły
Autor
AlegsaOnline.com Atmel AVR — przegląd architektury i zastosowań mikrokontrolerów Leandro Alegsa
URL: https://pl.alegsaonline.com/art/7028
Źródła
- cse.unsw.edu.au : UNSW School of Computer Science and Engineering - General AVR Info
