Nedávno jsem se za?al věnovat programování mikroprocesor? Atmel AVR. Zakoupil jsem si pár kousk? ATmega a ATtiny
v tme.cz, kde je mají nejlevněj?í. Vytvo?il jsem jednoduchy programátor p?ipojeny p?es LPT. Je to v podstatě jen konektor, kabel, pár odpor?
a zdroj 5V (7805 jak jinak). Jako vyvojové a simula?ní prost?edí pou?ívám AVR Studio sta?ené z webu atmelu, pro programování pou?ívám PonyProg.
Programování probíhá p?ipojením signál? MISO, MOSI, SCK a RESET na p?íslu?né vyvody mikroprocesoru a zapojení napájení.
První pokusy vedly ke světelnym had?m s ATmega8 s 28 no?i?kami a pamětí 8kB. Na něm vyu?ívám port D, ktery
je jako jediny cely volny (v?ech 8 no?i?ek) i p?i vyvoji. Portu C chybí bit PC7 a bit PC6 je vyu?it jako RESET, tak?e má jen 6 volnych no?i?ek.
Port B je vyu?it k programování a také slou?í k p?ípadnému p?ipojení krystalu pro p?esněj?í ?asování, tak?e z?staly volné jen 3 bity (no?i?ky).
Po pokusech se světelnymi hady jsem p?istoupil ke světelnému vzdu?nému displeji. Je to maticovy displej
se mechanickym skenováním, ?ada LED diod vykresluje text nebo obrázky ve vzduchu díky zpo?dění lidského oka nebo fotoaparátu.
Nejprve jsem zkou?el paralelní skenování, p?i kterém mohou svítit v?echny diody sou?asně, ale p?íli? se neosvěd?ilo. Proto
jsem p?e?el na sériové skenování, vyzna?ující se tím, ?e nikdy nesvítí více ne? 1 LED sou?asně a díky tomu
je zobrazení ostré (nevytvá?í vodorovné ?áry, ale body). Dal?í jeho vyhodou je pou?ití jediného odporu pro v?echny LED.
Programovací a vyvojové zapojení ATmega8 a jemu podobnych AVR je na schématu ní?e.
Dále jsem zkou?el hady a vzdu?ny displej s malou osmino?i?kovou ATtiny13, která má pamě? 1kB a vyu?itelnych je jen 5 vyvod? (port B).
Vystupy jsou spole?né s programovacími vstupy a proto je pot?eba p?i programování odpojit spole?ny pól LEDek.
P?vodně jsem to dělal spína?em, ale později jeho funkci nahradil tranzistor NPN, ktery to dělá automaticky. P?i programování
se na RESET objeví log 0 a tranzistor se zav?e. Jinak je v?e skoro stejné
jako u ostatních obvod? AVR. Tento obvod se mi poda?ilo vyu?ít k zobrazení ?íslic pomocí 5 LED v r?znych barvách. I tento
displej pou?ívá sériové skenování, p?i kterém svítí v?dy jen jedna LED.
Nakonec jsem se pustil do obvodu ATmega 32. To je plnohodnotny 40no?i?kovy mikroprocesor se v?emi ?ty?mi osmibitovymi porty a pamětí 32kB.
Pouze port B je vyu?íván jako programovací. Vstup RESET je vyveden samostatně. Tento obvod
jsem vyu?il jako vzdu?ny displej se 16 LED na portech C a D. Bylo nutné vypnout nastavovací bit JTAGEN, ktery p?i?azoval vyvod?m
PC2...5 alternativní funkce. U tohoto obvodu jsem pou?il dvojité sériové skenování. Na ka?dém ze dvou port? svítí v?dy nejvíce jedna LED.
Ka?dych 8 led má spole?ny odpor. Kromě ru?ního skenování (mávání obvodem ve vzduchu) jsem zkou?el obvod i p?ipevnit na motor a rozto?it,
aby vznikl vrtulovy displej. Pou?il jsem motor z 8cm větráku a mechanicky p?enos napětí. Pro motor to ale byla velká zátě? a to?il se dosti pomalu.
P?í?tě plánuji pou?ít silněj?í motor a p?enos napájecího napětí pomocí cívek. Zapojení programátoru ATmega32 je obdobné jako
u ATmega8, jen je tam několik vyvod? navíc. Rozmístění vyvod? najdete v jeho datasheetu.
Software: Vyvojové prost?edí AVR Studio si stáhněte zde.
Já jsem stáhl verzi 4.14, ?asem se nejspí? oběví nověj?í. P?ed sta?ením je nutné vyplnit nějaké údaje, které si samoz?ejmě vymyslíte.
Pro zapsání programu do mikroprocesoru je pot?eba PonyProg, ktery stáhnete tady.
V PonyProgu je pot?eba nastavit správny typ mikroprocesoru (naho?e) a v nastavení zvolit paralelní port LPT1.
Pokud nastanou problémy s p?ístupem PonyProgu k LPT, pom??e vám userport.
Zapisování programu PonyProgem se podrobněji věnuji zde.
Dole najdete některé z mych prográmk? ke sta?ení v souborech ASM. Upozornění pro profíky: jsou
napsány prasácky :).