No changes between revisions
/Modules/AVR/Text_Prog/DOC/HTML/AVR8 Burn-O-Mat.cs.html
0,0 → 1,199
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> Programování AVR </title>
<meta name="keywords" content="stavebnice MLAB programování procesoru ATMEL ATmega8">
<meta name="description" content="Projekt MLAB, programování ATmega8">
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
<link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
<script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
<!-- AUTOINCLUDE END -->
</head>
 
<body lang="cs">
 
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
<!-- ============== HLAVICKA ============== -->
<div class="Header">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawHeader();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
<!-- ============== MENU ============== -->
<div class="Menu">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawMenu();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- ============== TEXT ============== -->
<div class="Text">
<p class="Title">
Grafická nadstavba AVR8 Burn-O-Mat
</p>
<p class=Autor>
Milan Horkel
</p>
<p class="Subtitle">
Grafická nadstavba AVR8 Burn-O-Mat pro programátor AVRDUDE je náhradou
za AVRDUDE-GUI. Umožňuje pohodlné programování procesorů ATMEL včetně
nastavování konfiguračních slov.
</p>
<p>
<a href="../AVR8 Burn-O-Mat.cs.pdf"><img class="NoBorder"
src="../../../../../Web/PIC/FileIco_PDF.ico"
alt="Acrobat">&nbsp;PDF verze</a>
</p>
 
<h1> Úvodem </h1>
 
<p>
Programátor AVRDUDE je zahrnut do vývojového balíku WinAVR a umožňuje
programování procesorů ATMEL pomocí mnoha programátorů (HW přípravků).
Pro pohodlnější programování procesorů vznikl program AVRDUDE-GUI jako
klikací nadstavba nad AVRDUDE aby se uživatel nemusel trápit
s&nbsp;parametry programu AVRDUDE.
</p>
 
<p>
Bohužel tato grafická nadstavba se již nevyvíjí a vyvíjet patrně nebude
(již 2 roky zůstala na verzi 0.2.0) a má některé neřešené chyby. Zejména
problémy s&nbsp;programováním konfiguračních slov.
</p>
 
<h1> AVR8 Burn-O-Mat </h1>
 
<p>
Verze 1.4b ze 17.12.2006
</p>
 
<h2> Co umí AVR8 Burn-O-Mat </h2>
 
<p>
Tento program je náhradou starého programu AVRDUDE-GUI, tedy je to
grafická nadstavba nad program AVRDUDE. Je napsaný zcela znova
v&nbsp;jazyce JAVA a na rozdíl od AVRDUDE-GUI umí zobrazovat, nastavovat
a programovat konfigurační slova procesů ATMEL řady AVR.
</p>
 
<h1> Instalace </h1>
 
<h2> Download </h2>
 
<p>
Program stáhneme ze stránky autora:
</p>
 
<p>
<a href="http://www.brischalle.de/avr8_burn-o-mat_avrdude_gui/avr8_burn_o_mat_avrdude_gui_en.html"
title="Stránka autora">http://www.brischalle.de/avr8_burn-o-mat_avrdude_gui/avr8_burn_o_mat_avrdude_gui_en.html</a>
</p>
 
<p>
Program vyžaduje jazyk JAVA alespoň verze 1.5, který je možno stáhnout
zde:
</p>
 
<p>
<a href="http://java.sun.com/javase/downloads"
title="Stáhnout JAVA">http://java.sun.com/javase/downloads</a>
</p>
 
<h2> Instalace </h2>
 
<p>
Program rozpakujeme do adresáře dle své volby (tam, kam dáváme programy,
které nemají instalační program). Pro spouštění je připraven dávkový
soubor nebo je možno spouštět přímo JAVA aplikaci
<samp>AVR8_Burn_O_Mat.jar</samp>.
</p>
 
<p>
Můžeme do adresáře (typicky) <samp>&quot;C:\Documents and Settings\All
Users\Nabídka Start\Programy\AVR8 Burn-O-Mat\&quot;</samp> dát odkaz na
program <samp>AVR8_Burn_O_Mat.jar.lnk</samp>. Pak je již spouštění
hračka.
</p>
 
<h2> Konfigurace </h2>
 
<p>
Konfigurace se provádí pomocí volby <samp>Settings/AVRDUDE</samp>.
Mezi jednotlivými nastaveními je třeba program ukončit a spustit znovu
aby se načetly změněné hodnoty.
</p>
 
<p>
Nově nainstalovaný program musíme naučit kde je nainstalovaný program
AVRDUDE (soubor <samp>avrdude.exe</samp>) a kde má tento program
konfigurační soubor (soubor <samp>avrdude.conf</samp>).
</p>
 
<p>
Dále nastavíme používaný programátor (například <samp>picoweb</samp>)
a použitý port (například <samp>lpt1</samp>).
</p>
 
<h1> Použití </h1>
 
<p>
Použití je triviální, s&nbsp;chutí do toho.
</p>
 
<p>
Hlavní dialog:
</p>
 
<p>
<img width=588 height=421
src="Pictures_AVR8 Burn-O-Mat/image001.jpg"
alt="Hlavní dialog">
</p>
 
<p>
Dialog pro nastavování přepínačů:
</p>
 
<p>
<img width=600 height=500
src="Pictures_AVR8 Burn-O-Mat/image002.jpg"
alt="Nastavení přepínačů">
</p>
</div>
 
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
<!-- ============== PATIČKA ============== -->
<div class="Footer">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawFooter();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
</body>
</html>
/Modules/AVR/Text_Prog/DOC/HTML/Pictures_AVR8 Burn-O-Mat/image001.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Modules/AVR/Text_Prog/DOC/HTML/Pictures_AVR8 Burn-O-Mat/image002.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Modules/AVR/Text_Prog/DOC/HTML/Programovani AVR/Programator.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Modules/AVR/Text_Prog/DOC/HTML/Programovani AVR.cs.html
0,0 → 1,296
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> Programování AVR </title>
<meta name="keywords" content="stavebnice MLAB programování procesoru ATMEL ATmega8">
<meta name="description" content="Projekt MLAB, programování ATmega8">
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
<link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
<script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
<!-- AUTOINCLUDE END -->
</head>
 
<body lang="cs">
 
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
<!-- ============== HLAVICKA ============== -->
<div class="Header">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawHeader();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
<!-- ============== MENU ============== -->
<div class="Menu">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawMenu();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- ============== TEXT ============== -->
<div class="Text">
<p class="Title">
Programování procesorů ATMEL AVR
</p>
<p class=Autor>
Milan Horkel
</p>
<p class="Subtitle">
Procesor bez programu je jako motor bez paliva. Tento text uvádí
přehled potřebných nástrojů pro napsání programu pro procesory AVR a
pro jejich naprogramování.
</p>
<p>
<a href="../Programovani AVR.cs.pdf"><img class="NoBorder"
src="../../../../../Web/PIC/FileIco_PDF.ico"
alt="Acrobat">&nbsp;PDF verze</a>
</p>
 
<h1> Programování procesoru </h1>
 
<p>
Aby jednočipový mikrořadič dělal to, co od něho chceme je třeba udělat
dvě věci:
</p>
 
<ul>
<li>Napsat program pro procesor a přeložit jej do strojového kódu </li>
<li>Výsledný strojový kód naprogramovat do cílového procesoru </li>
</ul>
 
<p>
Velkou výhodou procesorů ATMEL AVR je skutečnost, že obě výše zmíněné
činnosti můžeme zajistit pomocí free nástrojů a experimentovat tak
můžeme bez dalších nákladů na vývojové nástroje. Část prostředků
pochází přímo od firmy ATMEL a část od GNU komunity. Jsou k dispozici
tyto nástroje:
</p>
 
<ul>
<li>Integrované prostředí a simulátor procesorů (ATMEL) </li>
<li>Překladač jazyka C (GNU) </li>
<li>Programátor procesorů (GNU) </li>
<li>Programovací kabel (GNU) </li>
</ul>
 
<p>
Příslušné nástroje jsou pro Windows 98 až Windows XP, GNU nástroje
samozřejmě i pro LINUX. Nástroje jsou přátelské a bez problémů funkční.
Kromě těchto základních komponent jsou k dispozici i ladící nástroje.
</p>
 
<p>
Kromě volných nástrojů existuje samozřejmě i spousta vysoce kvalitních
komerčních nástrojů renovovaných firem. Těmi se zde nebudeme zabývat i
když pro vážnou práci mohou být vhodné (kvalita kódu, záruky, technická
podpora, dokumentace a podobně).
</p>
 
<h2> Volné nástroje </h2>
 
<h3> Integrované prostředí – AVR Studio </h3>
 
<p>
<a href="http://www.atmel.com/">http://www.atmel.com</a>
</p>
 
<p>
Jedná se o integrované vývojové prostředí pro vývoj programů pro
procesory ATMEL AVR (assembler, linker) s možností integrace překladačů
jazyka C/C++. Prostředí obsahuje rovněž simulátor procesorů AVR a přímo
podporuje základní druhy ladících nástrojů ATMEL.
</p>
 
<p>
Do AVR studia lze přímo integrovat GNU překladač jazyka C/C++ pro AVR
procesory. <b>Je vhodné nejprve nainstalovat WinAVR a teprve poté
instalovat AVR Studio.</b>
</p>
 
<p>
Balík AVR Studio potřebuje ke své činnosti IE5.0 (raději 6.0, nebo
balík XML od MS).
</p>
 
<h3> Překladač C/C++ – WinAVR </h3>
 
<p>
<a href="http://winavr.sourceforge.net/">http://winavr.sourceforge.net</a>
</p>
 
<p>
Toto je připravený balík GNU nástrojů pro AVR procesory připravený pro
instalaci do Windows (používá knihovny CIGWIN). Při instalaci balíku na
WindowsNT/2000/XP je třeba instalaci provádět pod účtem administrátora
jinak se nenastaví cesta do BIN adresáře tohoto balíku.
</p>
 
<p>
Překladač může fungovat sám o sobě nebo se může integrovat s balíkem
AVR Studio.
</p>
 
<h3> AVRDUDE – programátor AVR procesorů </h3>
 
<p>
<a href="http://savannah.nongnu.org/projects/avrdude">http://savannah.nongnu.org/projects/avrdude</a><br>
<a href="http://sourceforge.net/projects/avrdude-gui">http://sourceforge.net/projects/avrdude-gui</a>
</p>
 
<p>
Program AVRDUDE je jeden z volných programátorů procesorů AVR a je
součástí balíku WinAVR. K programu je připravena grafická nadstavba
AVRDUDE-GUI, která usnadňuje použití programu.
</p>
 
<p>
Program má svůj konfigurační soubor, ve kterém jsou nadefinovány jednak
parametry mnoha programovacích kabelů (včetně čísel vývodů LPT portu
pro jednotlivé funkce) tak i parametry jednotlivých procesorů.
</p>
 
<h4> Konfigurační slova </h4>
 
<p>
Současná verze má drobný problém při programování a čtení
konfiguračních slov procesoru z grafické nadstavby (grafická nadstavba
není ještě dodělaná a dle slov autora možná vznikne nová verze
programu, která bude rovnou plně grafická). Při čtení slov se nepřenáší
přečtená data do grafického programu a při zápisu se zadané hexa
parametry chybně chápou jako jména souborů. Naštěstí se zápis do
konfiguračních slov procesoru neprovádí často.
</p>
 
<h4> Čtení konfiguračních slov </h4>
 
<p>
Konfigurační slova nelze číst z grafické nadstavby ale grafickou
nadstavbu můžeme použít pro sestavení příkazové řádky, kterou pak jen
opravíme. Viz příklad, opravy jsou zvýrazněny:
</p>
 
<p>
<samp>"avrdude" -p m8 -c picoweb -P lpt1 -U lfuse:r:con:<b>i</b> -U hfuse:r:con:<b>i</b></samp>
</p>
 
<p>
Přečtená data jsou ve formátu INTEL HEX (parametr i):
</p>
 
<p>
<samp>:01000000<b>EF</b>10</samp> -- lfuse (spodní konfigurační slovo)<br>
<samp> :00000001FF<br>
:01000000<b>D9</b>26</samp> -- hfuse (horní konfigurační slovo)<br>
<samp> :00000001FF</samp>
</p>
 
<p>
Příčinou je to, že program AVRDUDE vypisuje všechno do standardního
chybového výstupu a tak výpisy na zařízení CON pak padají do kanálu
místo do AVRDUDE-GUI (který chytá jen chybové výstupy).
</p>
 
<h4> Programování konfiguračních slov </h4>
 
<p>
Pro přeprogramování konfiguračního slova vyžaduje AVRDUDE dodatečný
parametr „-u“. Je to z bezpečnostních důvodů aby nedošlo k
přeprogramování omylem. Pro zápis není třeba příkazovou řádku spouštět
z konsole, stačí ji jen opravit dle příkladu:
</p>
 
<p>
<samp>"avrdude" -p m8 -c picoweb -P lpt1 -U lfuse:w:<b>0x</b>ef:<b>m</b></samp>
</p>
 
<p>
Doplněný parametr zajistí, že místo jména souboru je parametr chápán
přímo jako hodnota (nutno doplnit 0x protože je hodnota hexadecimální).
Výše uvedená řádka naprogramuje do procesoru ATmega8 pomocí kabelu typu
picoweb přes LPT1 spodní konfigurační slovo na hodnotu 0xEF (krystalový
oscilátor).
</p>
 
<h3> Paralelní programovací kabel </h3>
 
<p>
Nejjednodušší programátor procesorů AVR sestává z kabelu, který se
zapojuje do LPT portu počítače na jednom konci a do programovacího
konektoru u procesoru na konci druhém. Kromě drátů neobsahuje žádnou
další elektroniku. Jedním z možných kabelů je tento:
</p>
 
<p>
<img width="258" height="326" src="Programovani AVR/Programator.gif"
alt="Schema programátoru">
</p>
 
<p>
Propojovací dráty je vhodné udělat přiměřené délky cca 1/2 metru.
Nezapomeňte výrazně označit vývod 1 ISP konektoru protože konektor nemá
žádný klíč.
</p>
 
<p>
Při použití se zadává v programu AVRDUDE jako PicoWeb kabel.
</p>
 
<p>
Pokud máte nějaký jiný kabel/programátor je možné kouknout se do
konfiguračního souboru programu AVRDUDE a vybrat vhodný kabel nebo svůj
kabel doplnit do konfigurace.
</p>
 
<h2> Konfigurační slova procesoru </h2>
 
<p>
Konfigurační slova procesoru určují (mimo jiné) jaký se použije
oscilátor pro procesor. Pokud skutečná konfigurace neodpovídá
naprogramovanému slovu (například je nastaven externí krystalový
oscilátor ale krystal není připojen) procesor se nerozběhne a nepůjde
ani přeprogramovat. Pozor tedy při programování konfiguračních slov
procesoru.
</p>
 
<p>
Jednotlivé procesory mají různá konfigurační slova a různý počet
konfiguračních slov (například spodní a horní označená lfuse a hfuse).
</p>
 
</div>
 
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
<!-- ============== PATIČKA ============== -->
<div class="Footer">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawFooter();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
</body>
</html>