Mikrokontroléry rady AVR – úvod

AVR – označenie jedných z najobľúbenejších 8-bitových mikrokontrolérov s Advanced RISC architektúrou používaných v profesionálnych ale aj amatérskych aplikáciách. Produkované firmou ATMEL, výrobcom polovodičových a integrovaných obvodov. Tento stručnejší článok ich má za úlohu v krátkosti predstaviť.

Oproti klasickým mikrokontrolérom (ďalej MCU) s jadrom x51 sa tieto MCU dočkali rady základných zmien a poskytujú až 12x vyšší výpočtový výkon. Zrýchlenie načítavania inštrukcíí sa zaistilo zväčšením šírky inštrukčného slova až na 16 bitov. Ďalším dôležitým pokrokom tejto rady je priame pripojenie ALU s 32 univerzálnymi pracovnými registrami čo viedlo k zníženiu počtu hodinových taktov potrebných k vykonaniu väčšiny inštrukcií iba na dva takty. Využíva sa tzv. pipelining alebo zreťazené spracovávanie inštrukcií, čo je prekrývanie inštrukcií, ktoré zabezpečuje v jednom okamžiku dekódovanie a vykonanie jednej inštrukcie a načítavanie nasledujúcej inštrukcie.

obr-avr-inst-fetch-exec

Architektúra AVR

MCU AVR sa vyznačujú Harvardskou architektúrou usporiadania pamäte pre dáta a program – teda pamäť programu a dát je rozdelená. Na ich čipe sa nachádzajú tri typy pamätí:

a)  FLASH pamäť s dátovou širkou 16 bitov, slúži na uchovanie programu. Programátorom nahrávame program práve do tejto pamäte. Výrobca zaručuje až 10000 násobne prepisovanie pamäte.

b) SRAM s dátovou šírkou 8 bitov. Táto pamäť slúži na uchovávanie dát pri ich spracovávaní procesorom.

c) EEPROM – pre trvale uchovanie dát aj pri vypnutí napájania.

obr1

Jadro AVR sa skladá z 32 8-bitových registrov priamo prepojených s aritmeticko-logickou jednotkou ALU. Práca s týmito registrami zaberá procesoru len jeden strojový cyklus.

Na ďalších obrázkoch vidno rozloženie pamäte pre MCU Atmega 32.

obr2

Registre X,Y,Z (16 bitové – používaju sa dva registre naraz) sa využívajú na nepriame adresovanie.

obr3

Programovať pamäť Flash je možné niekoľkými spôsobmi. Najstarším spôsobom je tzv. paralelné programovanie, kedy sa musí MCU vybrať z aplikácie a „vložiť“ do programátora, ktorým sa program nahrá do tejto pamäte. V súčasnosti najpoužívanejší spôsob programovania je ISP (In System Programming) pomocou sériového rozhrania SPI. Programovať pamäť týmto spôsobom sa dá priamo v aplikácii pomocou štyroch vodičov: RESET, MOSI, MISO, SCK.
Ďalší možný spôsob ako dostať program do Flash-ky je bootloader. Ako vidno na obrázkoch hore, na koniec v pamäti je zavedený BootLoader program. Táto možnosť je poskytnutá iba v radách Mega.

Rozdelenie mikrokontrolérov rady AVR

Tieto typy MCU sa delia do troch základných skupín:
1. základná rada – dnes sa už nevyrába
2. rada Tiny – najslabšia a aj najlacnejšia rada, najčastejšie obsahuje 90 inštrukcií
3. rada Mega (xMega) – obsahujúca až 130 inštrukcií a väčšina z nich obsahuje JTAG rozhranie pre ladenie programov v aplikáciách

Ďalej sa tieto MCU od seba odlišujú aj použitými obvodmi, ktoré v sebe obsahujú. Je to napr. niekoľko jednotiek čítačov/časovačov, jednotky SPI, USART, TWI, AD prevodníky a pod. Líšia sa aj počtom vstupno-výstupných portov.

Prerušovací systém a úsporné režimy

AVR môžu príjmať požiadavky na prerušenie od niekoľkých zdrojov. Sú to vonkajšie zdroje prerušenia, prerušenia od čítačov/časovačov, od UART-u, analogového komparátora atď. Ich priorita je pevne daná. Prerušeniam bude osobitne venovaný článok aj s príkladom, preto by ich rozpisovanie v tomto článku bolo zbytočné.

Seriál o programovaní MCU rady AVR

Zdá sa, že seriál o programovaní týchto MCU bude pokračovať. Budem sa snažiť prispieť každý týždeň jedným článkom kde sa zamerám na problematiku programovania a takisto aj funkcie určitého systému alebo periférie (internej alebo pripojiteľnej k MCU).
U čitateľa sa predpokladá:
-> základná znalosť jazyka C a ASM – syntax a pod.
-> vedieť nahrať program do FLASH pamäte MCU a nastaviť fuses
Všetky programy spravené ako príklady sú robené pre vývojovú dosku publikovnú na tomto webe. Takže ak si ju nemôžete vyrobiť môžete aspoň nazrieť do schémy a časť zapojenia potrebnú pre odskúšanie programu zrealizovať na kontaktnom poli.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Môžete použiť tieto HTML značky a atribúty: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>