Ne glede na eksplozivno rast 32-bitnih ARM mikrokontrolerjev, je še vedno veliko povpraševanje po 8-bitnih MCU-jih, še posebej tistih, ki vsebujejo veliko perifernih naprav. Atmel je to ugotovil pravočasno in je uvedel najboljše XMEGA čipe iz svoje družine AVR MCUs. Medtem, ko družina XMEGA trdno temelji na 8-bitni AVR arhitekturi in učinkovitem naboru ukazov, vsebuje popolnoma nov sklop okrepljenega perifernih naprav. Lahko tudi naslavlja veliko več pomnilnika, kot najbolj zmogljivi AVR-ji.
Razvojna plošča in programiranje
Ker uporablja set intrukcij AVR-jev, lahko XMEGA programiramo z obstoječimi prevajalniki za AVR-je. Eden takšnih je Bascom-AVR prevajalnik podjetja MCS. Ne pozabimo, za delo z XMEGA je bilo potrebno prilagoditi Bascom-AVR, kjer je je veliko dela opravil Mark Alberts. Potrebnih pa bo tudi nekaj prilagoditev na vaši strani.
Za razliko od AVR-jev, se noben član družine XMEGA ne nahaja v DIL ohišju, pač pa so vsi v TQFP ohišjih z velikim številom priključkov. Zato boste za prve spoznavne korake z XMEGA verjetno potrebovali neko razvojno ploščo, kjer je XMEGA že prispajkan. Atmel je naredil več razvojnih plošč z imenom XMEGA XPLAINED. Poglejmo si nekaj značilnosti razvojne plošče, ki sem jo izbral:
- nizka cena (okoli 30 US$),
- 8 M SDRAM neposredno povezan na XMEGA,
- štirje IDC konektorji, preko katerih dostopamo do 32 V/I priključkov,
- 8 tipk/LEDic, senzor svetlobe, senzor temperature in majhen avdio ojačevalnik.
Odločil sem se, da se bom podrobneje spoznal s to razvojno ploščo. Na Sliki 1 vidite Atmelovo XMEGA128A1-Xplained razvojno ploščo, ki sem jo malce modificiral za svoj primer uporabe (odklopil sem majhen zvočnik in dodal žički za Reset tipko). V tej seriji vam bom pokazal, kako uporabiti veliko tistega, kar nam nudi XMEGA, kor npr. 12- bitni ADC, DMA kontroler in veliko SDRAM polje (z dodano logiko, ki poskrbi za normalno delovanje).
Vedno se mi je nekako lažje naučiti nove družine mikrokontrolerjev z nekim končnim projektom v mislih. Opisal bom zanimiv projekt, v katerem boste uporabili razvojno ploščo XMEGA128A1-Xplained, LED prikazovalnik in nekaj tipk. Ime mojega projekta je »Relaksacijska naprava«, ker omogoča sledeče:
- predvaja različne WAV datoteke, ki vsebujejo sproščujoče zvoke šumenja morja, pragozda itd.,
- ker ta pripomoček uporabljam zato, da lažje zaspim, sem vanj vgradil tudi uro budilko.
WAV datoteke najlažje najdemo na spletu in si jih shranimo na SD kartico. Zato bom tudi prikazal, kako povezati SD kartico na XMEGA s pomočjo AVR-DOS sistema za datoteke, ki ga je napisal Franz Voegel.
Pa pričnimo…
Preden pričnemo, bi rad navedel nekaj večjih razlik med XMEGA in AVR mikrokontrolerji. Verjetno ste že navajeni, kako Atmel označuje interne bloke, kot npr. Timer1, Timer2, Timer3 itd.. Ko je že govora o timerjih, naj povem, da je vsak od njih malce drugačen in zasluži poseben del v podatkovnem listu XMEGA mikrokontrolerja. Imena registrov, ki so povezana z neko napravo, se označujejo z besedami, kot npr. TCCR1A, kjer številka 1 pomeni, da se to nanaša na Timer1. Ime registra v podatkovnem listu se skoraj popolnoma ujema s tistim v Bascom-AVR DAT datoteki, čeprav Bascom-AVR ne sledi dosledno tem imenom. Atmel napiše en podatkovni list za posamezne AVR-je, ki imajo neke skupne lastnosti, kot npr. Atmega44/88/168 z vsemi posebnostmi – kot npr. Velikost FLASH spomina za posamezni mikrokontroler.
Avtor: Brian Millier
2012_SE195_36