Atmel AVR

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Przykładowe mikrokontrolery
ATmega8 po odpryśnięciu obudowy
Najprostszy programator
STK500

Atmel AVR – rodzina ośmiobitowych mikrokontrolerów produkowanych przez firmę Atmel.

Jednostka arytmetyczno-logiczna opracowana przez dwóch studentów z Norwegian Institute of Technology oparta jest na schemacie RISC procesora i zasadami architektury harwardzkiej, zawiera 32 ośmiobitowe rejestry. Instrukcje arytmetyczno-logiczne mogą być wykonywane na rejestrach. Dane z pamięci mogą być tylko przesyłane do i z rejestrów. Charakteryzuje się ona prostą strukturą rozkazów, dużą wydajnością obliczeniową (większość rozkazów wykonywana jest w jednym takcie procesora).

Listę rozkazów dopasowano do wymagań współczesnych kompilatorów wprowadzając rozkazy pobierania danych przez adresowanie pamięci rejestrem 16-bitowym (zestaw dwóch rejestrów) z jednoczesnym zwiększeniem lub zmniejszeniem rejestru adresowego (pobierz i zwiększ/zmniejsz).

Mikrokontrolery AVR są popularne wśród hobbystów i amatorów, ze względu na łatwość programowania, a także łatwość uruchomienia. Do niektórych układów wystarczy podłączyć zasilanie by stanowiły kompletny, programowalny system mikroprocesorowy. W połączeniu z dużymi obudowami typu DIP daje to rzadko spotykaną możliwość budowy prostszych układów mikroprocesorowych bez konieczności pracochłonnego przygotowywania płytki drukowanej.

Podział[edytuj | edytuj kod]

Układy z rodziny AVR zostały podzielone na kilka "pod-rodzin"[1]:

  • 8 bitowe
    • tinyAVR – oznaczenie ATtiny
      • 0,5-16 kB pamięć programu
      • obudowy o 6[2]-32 pinach
      • ograniczony zestaw zintegrowanych peryferiów
      • obniżony pobór mocy
    • megaAVR – oznaczenie ATmega
      • 4-256 kB pamięci programu
      • obudowy o 28-100 pinach
      • rozszerzony zestaw poleceń (m.in. o polecenia do obsługi powiększonej pamięci programu)
      • liczne zintegrowane peryferia (przetworniki AC/CA, timery, liczniki itp)
  • 8/16 bitowe
    • AVR XMEGA – oznaczenie ATxmega
      • 8-384 kB pamięci programu
      • obudowy o 32-100 wyprowadzeniach
      • rozszerzone możliwości, takie jak obsługa DMA i sprzętowe wsparcie dla kryptografii (używane m.in. przy współpracy z kartami inteligentnymi)
  • 32 bitowe[3]
    • AVR UC3
      • obudowy QFP, BGA od 44 do 144 i więcej wyprowadzeń
      • seria C[4]
        • wyposażone w jednostkę zmiennoprzecinkową (FPU), Ethernet, CAN, LIN, USB OTG, PWM 16-to kanałowy 12-to bitowy przetwornik analogowo-cyfrowy (ADC), 4-ro kanałowy, 12-to bitowy przetwornik cyfrowo-analogowy (DAC)
      • seria L[5]
        • seria L została zaprojektowana pod kątem minimalizacji zużycia prądu
      • seria A0/A1[6]
        • jest dedykowana rozwiązaniom potrzebującym złącz Ethernet oraz USB
      • seria A3/A4[7]
        • zawiera moduł kryptograficzny AES o wydajności 22,8 MB/s, może być używany do współpracy z kartami chipowymi
      • seria B[8]
        • zaprojektowana do wykorzystania dużej mocy obliczeniowej oraz złącza USB

Wyposażenie[edytuj | edytuj kod]

Poszczególne mikrokontrolery z rodziny AVR różnią się między sobą, przede wszystkim ilością pamięci flash, RAM, liczbą portów wejść/wyjść oraz układami dodatkowymi.

Przykładowo: ATtiny13 ma 1 kB pamięci programu (flash), 64 bajtów EEPROM, 64 bajtów RAM + 32 rejestry, 6 linii wejść/wyjść, 2 kanały PWM, 4 kanały A/D, oscylator w układzie scalonym, montowany jest w obudowie 8 nóżkowej.

ATmega2560 ma 256 kB pamięci programu, 4 kB EEPROMu, 8 kB RAM, 86 wejść/wyjść, 4 układy czasowo-licznikowe 16 bitowe - sterujące 6 wyjściami PWM, SPI, 2 – UART, 16 kanałów przetworników analogowo cyfrowych.

Podstawowe elementy AVR (nie wszystkie występują w każdym układzie):

  • pamięć flash - pamięć programu; programowalna w układzie, część programowana podczas pracy układu,
  • pamięć EEPROM,
  • pamięć SRAM,
  • uniwersalne porty wejścia/wyjścia,
  • 8 i 16 bitowe układy czasowo-licznikowe z możliwością generowania sygnału z modulacją szerokości impulsu PWM,
  • wielokanałowy multipleksowany 10 bitowy przetwornik analogowo-cyfrowy,
  • TWI,
  • interfejs szeregowy USART,
  • interfejs SPI,
  • Watchdog,
  • wewnętrzny rezonator RC,
  • ISP,
  • JTAG, układ debugowania programu,
  • DebugWire, umożliwia debugowanie programu dla kontrolerów z ograniczoną liczbą pinów.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]

Wikimedia Commons

Przypisy