Problem with comparison.
/Modules/ATmega8/ATmega801A/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="Pictures/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>
/Modules/ATmega8/ATmega801A/DOC/HTML/ATmega801A.cs.html
0,0 → 1,675
<!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> ATmega801A </title>
<meta name="keywords" content="stavebnice MLAB modul procesoru ATMEL ATmega8">
<meta name="description" content="Projekt MLAB, modul procesoru ATMEL 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">
Atmega801A – modul procesoru Atmega8
</p>
<p class=Autor>
Milan Horkel
</p>
<p class="Subtitle">
Procesorový modul pro práci s procesorem ATMEL Atmega8 v pouzdru
TQFP32. Modul obsahuje procesor a může být osazen krystalem standardní
velikosti nebo hodinkovým krystalem 32768Hz. Modul je dále vybaven
tlačítkem RESET a programovacím konektorem ATMEL ISP 6 PIN.
</p>
<p class="Subtitle">
<img width="324" height="324" src="Pictures/image001.jpg"
alt="Modul procesoru ATmega8">
</p>
<p>
<a href="../ATmega801A.cs.pdf"><img class="NoBorder"
src="../../../../../Web/PIC/FileIco_PDF.ico"
alt="Acrobat">&nbsp;PDF verze</a>
</p>
 
<h1> Technické parametry </h1>
<table>
<tr>
<th> Parametr </th>
<th> Hodnota </th>
<th> Poznámka </th>
</tr>
<tr>
<td> Napájení </td>
<td> (1.8V) .. 2.7V .. 5.5V </td>
<td> Dle použitého procesoru </td>
</tr>
<tr>
<td> Procesor </td>
<td> ATmega8 / ATmega8L </td>
<td> Nebo jiný v pouzdru TQFP32 </td>
</tr>
<tr>
<td> Spotřeba </td>
<td> 12mA </td>
<td> Při 8MHz s krystalem </td>
</tr>
<tr>
<td> Rozměry </td>
<td> 51x51x15mm </td>
<td> Výška nad nosnou deskou </td>
</tr>
</table>
 
<h1> Popis konstrukce </h1>
 
<h2> Úvodem </h2>
 
<p>
Jedná se o standardní modul pro procesory AVR firmy ATMEL v pouzdru
TQFP32. Kromě ATmega8 lze použít i obvody ATmega48, ATmega68, ATmega88
a případně další.
</p>
 
<h2> Zapojení modulu </h2>
 
<p>
Modul je napájen přes napájecí konektor J33. Dioda D1 slouží jako
ochrana před přepólováním zdroje (předpokládá se, že zdroj má proudové
omezení cca 1A). Tlumivka L1 s kondenzátorem C3 slouží jako filtr
napájení pro A/D převodník v procesoru. Kondenzátor C6 slouží k
filtraci referenčního napětí.
</p>
 
<p>
<img width="683" height="599" src="Pictures/image002.gif"
alt="Schéma modulu">
</p>
 
<p>
Zdrojem hodinového kmitočtu procesoru může být:
</p>
 
<ul>
<li> Vnitřní RC oscilátor (defaultní nastavení nového procesoru, kmitočet 1MHz) </li>
<li>Vnější krystalový oscilátor s krystalem X1 nebo X2 (hodinkový krystal) </li>
<li>Vnější RC oscilátor R3/C5 </li>
<li>Zdroj vnějšího hodinového signálu na vývod XTAL1 </li>
</ul>
<p>
Zdroj hodinového kmitočtu a konfigurace (frekvenční rozsah) oscilátoru
se volí programováním konfiguračního slova procesoru. Nový procesor
přichází s nastavením interní RC oscilátor s nastavením frekvence na
1MHz.
</p>
<p>
Firma ATMEL definovala dvě „standardní“ zapojení programovacího ISP
konektoru. Modul používá menší verzi se 6 vývody.
</p>
<h2> Mechanická konstrukce </h2>
<p>
Jedná se o standardní modul do stavebnice s upevňovacími rohovými
sloupky.
</p>
<h1> Osazení a oživení </h1>
<h2> Osazení </h2>
<p>
Při osazování procesoru použijte minimum pájky. V případě, že nemáte
vhodné vybavení je nejsnazší plošky pro procesor předem pocínovat (co
nejméně) a pak přiložený procesor nejprve přichytit za dvě protilehlé
nožičky. Další pájka se již přidávat nemusí. Zbylé vývody stačí jeden
po druhém připájet. V případě, že je k dispozici jen pistolová páječka
používá se smyčka ze zvonkového drátu (průměr drátu cca 0.8mm).
</p>
<p>
Krystal je možné buď osadit rovnou na desku (pokud víme předem jakou
budeme potřebovat frekvenci) nebo se osadí jen dutinky z precizní
patice do kterých se pak dá zasunout krystal dle potřeby.
</p>
<p>
Na desce jsou 2 krátké drátové propojky.
</p>
<p>
SMD tlumivku je možné v nouzi nahradit propojkou nebo tlumivkou
obyčejnou. Zhorší se tím šum A/D převodníku.
</p>
<p>
<img width="321" height="321" src="Pictures/image003.jpg"
alt="Osazení, strana spojů">
<img width="321" height="320" src="Pictures/image004.jpg"
alt="Osazení, strana součástí">
</p>
<table class="Rospiska">
<tr>
<th colspan="2"> Odpory </th>
</tr>
<tr>
<td> R1 </td>
<td> 100 </td>
</tr>
<tr>
<td> R2, R101, R102, R103 </td>
<td> 10k </td>
</tr>
<tr>
<td> R3 </td>
<td> neosazuje se </td>
</tr>
<tr>
<th colspan="2"> Keramické kondenzátory </th>
</tr>
<tr>
<td> C4, C5 </td>
<td> 22pF </td>
</tr>
<tr>
<td> C101, C102, C103 </td>
<td> 10nF </td>
</tr>
<tr>
<td> C2, C3, C6, C7 </td>
<td> 100nF </td>
</tr>
<tr>
<th colspan="2"> Elektrolytické kondenzátory </th>
</tr>
<tr>
<td> C1 </td>
<td> 22uF/6.3V </td>
</tr>
<tr>
<th colspan="2"> Indukčnosti </th>
</tr>
<tr>
<td> L1 </td>
<td> 10uH </td>
</tr>
<tr>
<th colspan="2"> Diody </th>
</tr>
<tr>
<td> D1 </td>
<td> 1N4007SMD </td>
</tr>
<tr>
<th colspan="2"> Integrované obvody </th>
</tr>
<tr>
<td> U1 </td>
<td> ATmega8L-8AU </td>
</tr>
<tr>
<th colspan="2"> Krystaly </th>
</tr>
<tr>
<td> X1 </td>
<td> 8MHz </td>
</tr>
<tr>
<td> X2 </td>
<td> #32768Hz </td>
</tr>
<tr>
<th colspan="2"> Mechanické součástky </th>
</tr>
<tr>
<td> J1..J8, J9..J16, J17..J24, J25..J32 </td>
<td> JUMP2x8 </td>
</tr>
<tr>
<td> J33, J35 </td>
<td> JUMP2X3 </td>
</tr>
<tr>
<td> J101+J103+J105, J102+J104+J106, J107+J109+J111, J108+J110+J112 </td>
<td> JUMP3 </td>
</tr>
<tr>
<td> SW1 </td>
<td> P-B1720 </td>
</tr>
<tr>
<th colspan="2"> Konstrukční součástky </th>
</tr>
<tr>
<td> 4ks </td>
<td> Šroub M3x12 křížový s válcovou hlavou </td>
</tr>
<tr>
<td> 4ks </td>
<td> Podložka M3 </td>
</tr>
<tr>
<td> 4ks </td>
<td> Distanční sloupek M3x5 </td>
</tr>
</table>
 
<h1> Konfigurační slova ATmega8 </h1>
<h2> <span lang="en">Low Fuse Byte</span> </h2>
<table>
<tr>
<th> Bit </th>
<th> Jméno </th>
<th> Default </th>
<th> Význam </th>
</tr>
<tr>
<td> 7 </td>
<td> BODLEVEL </td>
<td> 1 </td>
<td>
<p>
<span lang="en">Brown Out Detect Level</span> – úroveň napětí detekce podpětí
</p>
<p>
0 <span lang="en">reset</span> při 2.4 až 2.9V<br>
1 <span lang="en">reset</span> při 3.7 až 4.5V
</p>
</td>
</tr>
<tr>
<td> 6 </td>
<td> BODEN </td>
<td> 1 </td>
<td>
<p>
<span lang="en">Brown Out Detect</span> – detekce podpětí
</p>
<p>
0 aktivována<br>
1 neaktivní
</p>
</td>
</tr>
<tr>
<td> 5 4 </td>
<td> SUT1 <br>
SUT0 </td>
<td> 10 </td>
<td>
<p>
<span lang="en">Start Up Timer</span> – volba zpoždění startu
</p>
<p>
Funkce závisí na režimu hodin CKSEL
</p>
</td>
</tr>
<tr>
<td> 3 2 1 0 </td>
<td> CKSEL3 <br>
CKSEL2 <br>
CKSEL1 <br>
CKSEL0 </td>
<td> 0001 </td>
<td>
<p>
Clock Select – volba zdroje hodin
</p>
<p>
0000 – externí hodiny
</p>
<p>
0001 – interní RC oscilátor 1 MHz<br>
0010 – interní RC oscilátor 2 MHz<br>
0011 – interní RC oscilátor 4 MHz<br>
0100 – interní RC oscilátor 8 MHz
</p>
<p>
0101 – externí RC oscilátor 0.1 až 0.9 MHz<br>
0110 – externí RC oscilátor 0.9 až 3.0 MHz<br>
0111 – externí RC oscilátor 3.0 až 8.0 MHz<br>
1000 – externí RC oscilátor 8.0 až 12.0 MHz
</p>
<p>
101x – <span lang="en">Low Power XTAL</span> 0.4 až 0.9MHz pro CKOPT=1<br>
110x – <span lang="en">Low Power XTAL</span> 0.9 až 3.0MHz pro CKOPT=1<br>
111x – <span lang="en">Low Power XTAL</span> 3.0 až 8.0MHz pro CKOPT=1
</p>
<p>
101x – XTAL nad 1.0 MHz pro CKOPT=0<br>
110x – XTAL nad 1.0 MHz pro CKOPT=0<br>
111x – XTAL nad 1.0 MHz pro CKOPT=0
</p>
</td>
</tr>
</table>
<h2> <span lang="en">High Fuse Byte</span> </h2>
<table>
<tr>
<th> Bit </th>
<th> Jméno </th>
<th> Default </th>
<th> Význam </th>
</tr>
<tr>
<td> 7 </td>
<td> RSTDISBL </td>
<td> 1 </td>
<td>
<p>
<span lang="en">Reset Disable</span> – vypnutí funkce
<span lang="en">reset</span> nožičky PC6/RESET#
</p>
<p>
0 PC6 je běžná IO nožička<br>
1 PC6 je signál RESET#
</p>
</td>
</tr>
<tr>
<td> 6 </td>
<td> WDTON </td>
<td> 1 </td>
<td>
<p>
<span lang="en">Watch Dog Timer</span> – hlídač zaseknutí programu
</p>
<p>
0 <span lang="en">Watch Dog Timer</span> nelze vypnout (je trvale zapnutý)<br>
1 <span lang="en">Watch Dog Timer</span> lze zapnout i vypnout pomocí WDTCR
</p>
</td>
</tr>
<tr>
<td> 5 </td>
<td> SPIEN </td>
<td> 0 </td>
<td>
<p>
<span lang="en">Serial Programming Enable</span> – povolení sériového programování
</p>
<p>
0 sériové programování povoleno<br>
1 sériové programování zakázáno
</p>
</td>
</tr>
<tr>
<td> 4 </td>
<td> CKOPT </td>
<td> 1 </td>
<td>
<p>
Clock Option – režim oscilátoru
</p>
<p>
0 výkonový výstup (například pro rychlé krystaly)<br>
1 malý rozkmit signálu (menší spotřeba)
</p>
</td>
</tr>
<tr>
<td> 3 </td>
<td> EESAVE </td>
<td> 1 </td>
<td>
<p>
EEPROM Save – úschova obsahu EEPROM při mazání čipu
</p>
<p>
0 Obsah EEPROM se zachovává<br>
1 Obsah EEPROM se nezachovává
</p>
</td>
</tr>
<tr>
<td> 2 1 </td>
<td> BOOTSZ1 <br>
BOOTSZ0 </td>
<td> 00 </td>
<td>
<p>
<span lang="en">Boot Size</span> – velikost paměti programu vyhrazené pro
<span lang="en">Boot Loader</span>
</p>
<p>
11 <span lang="en">Boot</span> oblast 128B (od adresy 0xF80)<br>
10 <span lang="en">Boot</span> oblast 256B (od adresy 0xF00)<br>
01 <span lang="en">Boot</span> oblast 512B (od adresy 0xE00)<br>
00 <span lang="en">Boot</span> oblast 1024B (od adresy 0xC00)
</p>
</td>
</tr>
<tr>
<td> 0 </td>
<td> BOOTRST </td>
<td> 1 </td>
<td>
<p>
<span lang="en">Boot Reset</span> – volba zda se startuje
<span lang="en">Boot Loader</span>
</p>
<p>
0 Po resetu se aktivuje <span lang="en">Boot Loader</span>,
adresa viz BOTTSZ1..0<br>
1 Po resetu program začíná od adresy 0
</p>
</td>
</tr>
</table>
 
<h2> <span lang="en">Lock Byte</span> </h2>
<table>
<tr>
<th> Bit </th>
<th> Jméno </th>
<th> Default </th>
<th> Význam </th>
</tr>
<tr>
<td> 5 4 </td>
<td> BLB12 <br>
BLB11 </td>
<td> 11 </td>
<td>
<p>
<span lang="en">Boot Lock</span> – zámek oblasti zavaděče (<span lang="en">Boot Loader</span>)
</p>
<p>
11 odemčeno, není omezení<br>
10 zákaz zápisu do paměti zavaděče<br>
01 aplikace nesmí číst zavaděč<br>
00 oba zákazy
</p>
</td>
</tr>
<tr>
<td> 3 2 </td>
<td> BLB02 <br>
BLB01 </td>
<td> 11 </td>
<td>
<p>
<span lang="en">Boot Lock</span> – zámek oblasti uživatelského programu
</p>
<p>
11 odemčeno, není omezení<br>
10 zákaz zápisu do paměti uživatelského programu<br>
01 zavaděč nesmí číst uživatelský program<br>
00 oba zákazy
</p>
</td>
</tr>
<tr>
<td> 1 0 </td>
<td> LB2 <br>
LB1 </td>
<td> 11 </td>
<td>
<p>
Lock – zámek paměti
</p>
<p>
11 paměť je odemčená<br>
10 je zamčená paměť programu i EEPROM<br>
00 je zamčeno vše včetně konfigurační oblasti
</p>
</td>
</tr>
</table>
<h2> <span lang="en">Calibration Bytes</span> </h2>
<p>
Kalibrační bajty jsou celkem 4 za sebou pro 4 frekvence interního RC
oscilátoru. Při resetu se natahuje první z nich do OSCCAL . Kalibrační
bajty nejsou dostupné uživatelskému programu. V případě potřeby se musí
programátorem přečíst a zapsat někam jinam (EEPROM nebo paměti
programu).
</p>
<table>
<tr>
<th> Hodnota </th>
<th> Minimální frekvence </th>
<th> Maximální frekvence </th>
</tr>
<tr>
<td> 0x00 </td>
<td> 50% </td>
<td> 100% </td>
</tr>
<tr>
<td> 0x7F </td>
<td> 75% </td>
<td> 150% </td>
</tr>
<tr>
<td> 0xFF </td>
<td> 100% </td>
<td> 200% </td>
</tr>
</table>
 
<h2> <span lang="en">Signature Bytes</span> </h2>
<p>
Signatura součástky je 0x1E (ATMEL) 0x93 (8KB FLASH) 0x07 (ATmega8).
</p>
<h1> Ukázkový program </h1>
<p>
Bliknutí LED diodou je základ. Tady je ukázka.
</p>
 
<p>
<code>
#define F_CPU 1000000UL // 1MHz je deaultni frekvence interniho
// RC oscilatoru
#include &lt;avr/io.h&gt;
#include &lt;avr/delay.h&gt;
&nbsp;
// Spozdeni o libovolny pocet ms
void xDelay_ms(unsigned int Time)
{
for(;Time!=0;Time--)
_delay_ms(1); // Knihovni procedura ma velmi omezen
} // maximalni cas spozdeni
&nbsp;
// Hlavni program
int main()
&nbsp;
{
DDRC |=1; // Nastav port PCD0 jako vystup
for(;;) // Nekonecna smycka
{
PORTC |= 1; // Nastav 1
xDelay_ms(500); // Pockej 1/2 sekundy
PORTC &amp;= ~1; // Nastav 0
xDelay_ms(500); // Pockej 1/2 sekundy
}
&nbsp;
return 0;
}
</code>
</p>
 
<p>
A takto se naprogramuje do součástky:
</p>
 
<p>
<samp>avrdude -p m8 -c picoweb -P lpt1 -U flash:w:BLIK_ATmega8.hex:a -E noreset</samp>
</p>
<p>
Zbývá připojit logickou sondu na vývod PC0.
</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/ATmega8/ATmega801A/DOC/HTML/Pictures/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/ATmega8/ATmega801A/DOC/HTML/Pictures/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/ATmega8/ATmega801A/DOC/HTML/Pictures/image002.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/ATmega8/ATmega801A/DOC/HTML/Pictures/image003.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/ATmega8/ATmega801A/DOC/HTML/Pictures/image004.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