encyklopedia.space

AVR

AVR to rodzina 8‑bitowych mikrokontrolerów opracowana i produkowana przez firmę Atmel (od 2016 roku część Microchip Technology). Architektura AVR jest oparta na rdzeniu RISC (Reduced Instruction Set Computing) i została zaprojektowana z myślą o wysokiej wydajności przy jednoczesnym niskim zużyciu energii, co czyni ją popularnym wyborem w zastosowaniach wbudowanych (systemy embedded).

Historia

Projektowanie pierwszych układów AVR rozpoczęło się w latach 1996 w firmie Atmel, a pierwsze seryjne części – AT90S1200 i AT90S2313 – trafiły na rynek w 1996 roku. Nazwa „AVR” pochodzi od inicjałów trzech kluczowych inżynierów projektu: Alfons, Veronica i Robert.

Architektura

  • Rdzeń RISC – zestaw instrukcji składa się z jedynie kilku dziesięciu poleceń, z których większość realizowana jest w jednym cyklu zegara.
  • Rejestry – 32 ogólnego przeznaczenia rejestrów 8‑bitowych, które można łączyć w pary 16‑bitowe.
  • Pamięć – wbudowana pamięć FLASH do przechowywania kodu, SRAM i EEPROM do danych trwałych.
  • Interfejsy peryferyjne – UART, SPI, I²C (TWI), PWM, ADC, Timery i Watchdog.
  • Tryby niskiego poboru mocy – m.in. tryb Power‑down, Power‑save i Standby, umożliwiające pracę na bateriach przez lata.

Rodziny i modele

W ciągu lat powstało kilka rodzin układów AVR, różniących się ilością pamięci, prędkością taktowania i zestawem peryferiów:

Rodzina Przykładowe modele Pamięć FLASH Typ aplikacji
ATtiny ATtiny13, ATtiny85 0,5 KB – 8 KB Proste układy sterujące, czujniki
ATmega ATmega328P, ATmega2560 2 KB – 256 KB Rozbudowane projekty, robotyka
AT90CAN AT90CAN128 128 KB Systemy automotive, CAN bus
XMEGA XMEGA128A1U 128 KB – 256 KB Wysoka wydajność, przetwarzanie sygnałów

Programowanie

Do programowania mikrokontrolerów AVR najczęściej wykorzystuje się język C oraz zestaw narzędzi AVR‑GCC. Popularne środowiska IDE to Atmel Studio oraz PlatformIO. W praktyce wielu hobbystów i edukatorów korzysta z platformy Arduino, której płytki opierają się na układach AVR (np. Arduino Uno – ATmega328P).

Zastosowania

Mikrokontrolery AVR znajdują zastosowanie w szerokiej gamie dziedzin:

  • Elektronika konsumencka – piloty zdalnego sterowania, zegary elektroniczne.
  • Automatyka domowa – sterowniki oświetlenia, czujniki temperatury.
  • Robotyka i drony – kontrolery silników, systemy nawigacji.
  • Systemy przemysłowe – sterowniki PLC, interfejsy komunikacyjne.
  • Edukacja – platformy edukacyjne Arduino i Raspberry Pi Pico (oparty na RP2040, ale kompatybilny z kodem AVR dzięki SDK).

Porównanie z innymi architekturami

W porównaniu z innymi 8‑bitowymi mikrokontrolerami, takimi jak PIC firmy Microchip, AVR wyróżnia się:

  • jednocyklowym wykonaniem większości instrukcji.
  • większą ilością rejestrów ogólnego przeznaczenia.
  • bogatszym zestawem peryferiów w domyślnych wersjach.

Rozwój i przyszłość

Mimo rosnącej popularności 32‑bitowych rdzeni ARM Cortex‑M, rodzina AVR pozostaje w użyciu ze względu na prostotę, niską cenę i duży ekosystem oprogramowania. Firma Microchip kontynuuje rozwój linii AVR, wprowadzając nowe modele łączące technologię AVR z nowoczesnymi interfejsami takimi jak USB, Ethernet i BLE.

Przykładowy kod

// Miganie diodą LED podłączoną do pinu PB5 (Arduino Uno)
#include <avr/io.h>
#include <util/delay.h>

int main(void) {
    // Ustaw PB5 jako wyjście
    DDRB |= (1 << DDB5);

    while (1) {
        // Włącz LED
        PORTB |= (1 << PORTB5);
        _delay_ms(500);

        // Wyłącz LED
        PORTB &= ~(1 << PORTB5);
        _delay_ms(500);
    }
    return 0;
}

Źródła i dalsza lektura

Więcej informacji można znaleźć w następujących artykułach encyklopedycznych:

  • Atmel – historia i działalność firmy twórcy AVR.
  • Arduino – platforma programistyczna oparta na mikrokontrolerach AVR.
  • AVR‑GCC – darmowy kompilator C/C++ dla AVR.
  • C (język programowania) – język najczęściej używany do programowania AVR.
  • Systemy embedded – ogólne zagadnienia dotyczące systemów wbudowanych.