No changes between revisions
/Modules/AVR/ATmega801A/DOC/HTML/ATmega801A.cs.html |
---|
0,0 → 1,679 |
<!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"> 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> Reference </th> |
<th> Hodnota </th> |
</tr> |
<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 <avr/io.h> |
#include <avr/delay.h> |
|
// 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 |
|
// Hlavni program |
int main() |
|
{ |
DDRC |=1; // Nastav port PCD0 jako vystup |
for(;;) // Nekonecna smycka |
{ |
PORTC |= 1; // Nastav 1 |
xDelay_ms(500); // Pockej 1/2 sekundy |
PORTC &= ~1; // Nastav 0 |
xDelay_ms(500); // Pockej 1/2 sekundy |
} |
|
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/AVR/ATmega801A/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"> 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 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 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 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>"C:\Documents and Settings\All |
Users\Nabídka Start\Programy\AVR8 Burn-O-Mat\"</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 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/ATmega801A/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/ATmega801A/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/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"> 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/AVR/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/AVR/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/AVR/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/AVR/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/AVR/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 |