English version

Atmel AVR pro za?áte?níky - programování Světelnych had? a Vzdu?ného displeje

     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 :).

Schéma zapojení ATmega8 pro programování i vyvoj. Vyu?it je cely port D.
Schéma zapojení ATmega8 pro programování i vyvoj. Vyu?it je cely port D.

Schéma zapojení ATtiny13 pro programování i vyvoj.
Schéma zapojení ATtiny13 pro programování i vyvoj. V aplikacích, kde svítí nejvy?e 1 LED, lze pou?ít jediny spole?ny odpor. Vystupy a programovací vstupy sdílejí stejné vyvody, proto je nutno během programování odpojit LED. P?vodně jsem to dělal spína?em, ale později jeho funkci nahradil tranzistor NPN, ktery to dělá automaticky.

Programátor v kontaktním poli s kabelem LPT a sí?ovym adaptérem
Vznikající programátor v kontaktním poli s kabelem LPT a sí?ovym adaptérem

 Pokusy s ATmega8-16PU
Pokusy s ATmega8-16PU

 První úspěch se vzdu?nym displejem. Zobrazení je?tě není dokonalé
První úspěch se "vzdu?nym displejem". Zobrazení je?tě není dokonalé :)

Nyní v kontaktním poli p?ibyla osmino?i?ková ATtiny13V-10PU s 5ti LED.
Nyní v kontaktním poli p?ibyla osmino?i?ková ATtiny13V-10PU s 5ti LED.

 2 vzdu?né displeje pracující sou?asně (nezávisle na sobě). Naho?e ATmega8, dole ATtiny13.
2 vzdu?né displeje pracující sou?asně (nezávisle na sobě). Naho?e ATmega8, dole ATtiny13.

 zde u? je zobrazení ATmegy8 vylep?eno (nyní svítí v jednom okam?iku v?dy jen 1 LED)
zde u? je zobrazení ATmegy8 vylep?eno (nyní svítí v jednom okam?iku v?dy jen 1 LED).

Smajlík
Smajlík :)

 ATtiny s modrymi a bílymi LED
ATtiny s modrymi a bílymi LED.

a se zelenymi
a se zelenymi

Moje sbírka mikroprocesor? - ATmege32-16PU, ATmega8-16PU, ATmega88-20PU a ATtiny13V-10PU
Moje sbírka mikroprocesor? (ATmege32-16PU, ATmega8-16PU, ATmega88-20PU a ATtiny13V-10PU)

 A zde ji? zap?ahuji ATmega32
A zde ji? zap?ahuji ATmega32

Vzdu?ny displej se 16ti LED
Vzdu?né displeje se 16ti LED.

Vzdu?né displeje se 16ti LED


Vzdu?né displeje se 16ti LED


ATmega32 se ?estnácti LEDkami na vrtuli
ATmega32 se ?estnácti LEDkami na vrtuli

a v pohybu
a v pohybu


Vzdu?ny displej s ATmega32 a 16ti LED | ?erveno-zeleno-modrá LED (RGB) s ATtiny13


Světelní hadi s ATmega8 a s ATtiny13.


Světelná houpa?ka s ATtiny13 | "padající cihly" s ATmega8.


Nějaké prográmky ke sta?ení pro ATmega8:

Program pro vzdu?ny displej - nápis DANYK.WZ.CZ (moje stará adresa) a smajlík
Had na kterém svítí 1 led
Had na kterém svítí 4 led
Had na kterém svítí 7 led
Padající cihly
Binární po?ítání
2 blechy bě?ící proti sobě
Světelny had (svítí 1 LED) s plynulym p?eléváním jasu (pomocí PWM)
Vylep?eny plynuly PWM had, svítí 3LED, bohatě komentovany - lehce upravitelny a pochopitelny !!

Pro ATtiny13:

Vzdu?ny displej s ?ísly 0 a? 9
Vzdu?ny displej s ?ísly 1 a? 7, napsany neúsporně :)
Binární po?ítadlo
Světelny had
Světelná "houpa?ka"
Plynulé p?elévání jasu z jedné LED do druhé (pomocí PWM) na PB3,4
toté?, ale obousměrně
P?elévání jasu mezi 3ma LED (vhodné i pro RGB LED diodu)
a obdoba s 5ti led (plynuly had)
Vylep?ené p?elévání jasu, speciálě pro ?erveno-zeleno-modrou (RGB) LED (porty PB2,3,4)

A pro ATmega32:

Dvou?ádkovy vzdu?ny displej s 16ti led na portech C a D, zobrazuje viz vy?e :)


Upozornění pro lamy
Pozor! nesprávnym zapojením si m??ete po?kodit LPT port nebo cely PC.



Dal?í ?lánek - P?eru?ení a binární po?ítadlo
zpět na úvodní stránku
手机捕鱼游戏