× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

AVR – prakticky

[ http://programujte.com/profil/90-ondrej-karas/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/20356-michal-zima/ ]Google [ ?rel=author ]       1. 9. 2006       38 712×

Kdo má už doma programátor, jistě si zkusil některý z prográmků poupravit a nahrát. Někteří pozornější měli možná štěstí a program jim fungoval, tak jak měl. Jiní si museli počkat na dnešní díl. Dnes si totiž krok po kroku nejprve vytvoříme program, zkompilujeme a nahrajeme do procesoru.

Krok první – Hardware

Jak si obstarat programátor jsme si řekli minule. Také jsme si řekli, že pro začátek budeme používat ISP programátor na paralelní port. K programátoru budeme samozřejmě také potřebovat software, kterým ho budeme ovládat. Můžeme použít buď známý PonyProg [ http://www.lancos.com/prog.html ] a nebo také Atmel AVR ISP Parallel Port Programmer [ http://www.pk-design.net/HtmlCz/SoftUtilities.html#AtmelAVR3 ]. Programuje-li někdo v CodeVision (v C), může využít programovací software implantovaný do vývojového prostředí. My si zvolíme první možnost. PonyProg je velmi rozšířený a po celém světě se těší velké oblibě.

Samotný procesor umístíme do nepájivého kontaktního pole a vyrobíme si propojovací kablík. Propojení bude vždy 1:1. Tedy například MISO procesoru na MISO programátoru stejně tak s ostatními signály. Samozřejmostí je přivedení napájení (5 V). Pro jistotu si popíšeme, co který signál znamená:

MISO
Master In Slave Out. Zařízení, které spravuje sběrnici, přijímá data. Zde PC.
MOSI
Master Out Slave In. Zařízení, které spravuje sběrnici, data vysílá.
SCK
hodinový signál
RESET
jistě netřeba představovat – resetuje obvod.

Krok druhý - Software

Po stažení a instalaci PonyProgu jej spusťte. Pro správnou komunikaci s programátorem je nutné nastavit typ a port, na kterém je programátor připojen. Zvolte Setup → Interface setup a nastavte AVR ISP I/O a samozřejmě správný LPT port. Otestujte nastavení tlačítkem Test. Pokud hlásí chybu, je programátor zřejmě nepřipojen nebo je chyba v práci s portem LPT. Ve Windows XP bohužel tento problém nastává velmi často. Tento problém však není neřešitelný. Povíme si jak na to.

Ve správci zařízení zobrazte skrytá zařízení: Zobrazit → Zobrazit skrytá zařízení. V položce Ovladače nepodporující Plug and Play technologii vyberte IOPort a v záložce Ovladač vyberte Spuštění počítače. Restartuje počítač.

Máte-li spuštěný program a nebyla-li nahlášena chyba o nenalezení programátoru, můžeme pokračovat. Nejprve si ale povíme něco o programovacích propojkách.

Programovací propojky

Programovací propojky, nebo-li také fuse bits, slouží k nastavení procesoru, jeho zdroje hodinového signálu, ochran proti přepisu a jiných vlastností, které ještě neznáme. Špatným nastavením těchto propojek můžeme uvést procesor do již nepoužitelného stavu. Proto vždy pečlivě překontrolujte nastavení propojek, než je zapíšete do procesoru.

Kompletní přehled propojek a jejich popis naleznete v katalogovém listu procesoru. My si dnes povíme pouze o propojkách nastavujících hodinový zdroj signálu. Vyrobíme si vlastní blikač.

Programovací propojky nastavující zdroj hodinového signálu

Programovací propojky nastavující zdroj hodinového signlu jsou častou příčinou neúspěchu u programátorů začínajících s procesory AVR. Na diskusních fórech jsou často k nalezení dotazy jak „oživit mrtvé AVRko“. Často je situace způsobena nepozorností. V nastavení zdroje hodin jsou totiž některé kombinace rezervovány, a tak může dojít k nenávratnému zablokování součásky. Z tohoto důvodu je nutné tyto vlastnosti pozorně nastavovat.

V hlavním okně zvolte rodinu procesorů AVR micro a procesor ATmega16, případně jiný… Po kliknutí na Command → Security and Configuration bits… se objeví okno s konfiguračními bity (fuse bits). Načtením zjitíte, jak je procesor zrovna nastaven. My provedeme změnu tak, aby nastavení vypadalo jako na obrázku.

Nastavení uložíme do procesoru. Důležitými pro nás byly bity CKSEL0, CKSEL3 a SUT0. Jimi jsme nastavili Interní RC oscilátor a frekvenci 8 MHz. Teď už jen zbývá nahrát program… a můžeme blikat.

	.INCLUDE "m16def.inc"	
	.LIST	
				 
	.CSEG	        ;kódový segment	
	.DEF REG=R16	;pracovní registr
	.EQU DDR=DDRC	;řízení směru
	.EQU PORT=PORTC	;port

	LDI REG,$FF	
	OUT DDR,REG	
	LDI REG,LOW(RAMEND)
	OUT SPL,REG	
	LDI REG,HIGH(RAMEND)
	OUT SPH,REG
	LDI REG,$FF	
	LDI R20,1

SMYCKA:	        OUT     PORT,REG	
		RCALL	CEKEJ	
		ADD	REG,R20
		RJMP	SMYCKA	

;čekací rutina (čeká asi 0,5 s)
CEKEJ:
        LDI     R17,36  
CYK3:   LDI	R18,150
CYK2:	LDI	R19,250
CYK1:	DEC	R19
	BRNE	CYK1	
        DEC	R18
	BRNE	CYK2
        DEC     R17
	BRNE    CYK3
        RET

Program přepíšeme do AVR Studia a přeložíme stiknutím F7. Jestliže program nenahlásí při kompilaci žádnou chybu, můžeme program nahrát do procesoru. To provedete (v PonyProgu) otevřením HEX souboru s vaším programem: File → Open program (FLASH) file…. Před nahráním programu je dobré procesor vymazat volbou Command → ERASE. Poté již jenom Command → Write program (FLASH). A LED připojená na pin PC0 by měla blikat v jednosekundovém intervalu…

Samozřejmostí je, že pokud pracujeme s ISP programátorem, tak musí být procesor napájen. A to buď přímo v aplikaci, nebo přes programátor.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006081003-avr-prakticky/ ].