Przejdź do treści

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 Obrazy

Budowa 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

URL: https://pl.alegsaonline.com/art/7028

Udostępnij

Źródła