<!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> ATmega801B </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">Atmega801B – modul procesoru Atmega8</p><p class=Autor>Milan Horkem, Jakub Kákona</p><p class="Subtitle">Procesorový modul pro práci s procesory ATMEL v pouzdruTQFP32. Modul obsahuje procesor a může být osazen krystalem standardnívelikosti nebo hodinkovým krystalem 32 768Hz. Modul je dále vybaventlačítkem RESET a programovacím konektorem ATMEL ISP 6 PIN.</p><p class="Subtitle"><img width="391" height="391" src="Pictures/image001.jpg"alt="Modul procesoru ATmega8 - strana součástek"><img width="394" height="391" src="Pictures/image002.jpg"alt="Modul procesoru ATmega8 - strana spojů"></p><p><a href="../ATmega801B.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 pouzdruTQFP32. Kromě ATmega8 lze použít i obvody ATmega48, ATmega68, ATmega88 adalší.</p><h2> Zapojení modulu </h2><p>Modul je napájen přes napájecí konektor J33. Dioda D1 slouží jakoochrana 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 filtrnapájení pro A/D převodník v procesoru. Kondenzátor C6 sloužík filtraci referenčního napětí.</p><p><img width="929" height="814" src="Pictures/image003.png"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átoruse volí programováním konfiguračního slova procesoru. Nový procesorpřichází s nastavením interní RC oscilátor s nastavenímfrekvence na 1MHz.</p><p>Firma ATMEL definovala dvě „standardní“ zapojení programovacího ISPkonektoru. 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ýmisloupky.</p><h1> Osazení a oživení </h1><h2> Osazení </h2><p>Při osazování procesoru použijte minimum pájky. V případě, ženemáte vhodné vybavení je nejsnazší plošky pro procesor předempocínovat (co nejméně) a pak přiložený procesor nejprve přichytit zadvě 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 jek dispozici jen pistolová páječka používá se smyčka ze zvonkovéhodrá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 jakoubudeme potřebovat frekvenci) nebo se osadí jen dutinky z preciznípatice do kterých se pak dá zasunout krystal dle potřeby.</p><p>SMD tlumivku je možné v nouzi nahradit propojkou nebo tlumivkouobyčejnou. Zhorší se tím šum A/D převodníku.</p><p><img width="584" height="584" src="Pictures/image004.png"alt="Osazení, strana spojů"><img width="584" height="584" src="Pictures/image005.png"alt="Osazení, strana součástí"></p><table class="Soupiska"><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> # </td></tr><tr><td> X2 </td><td> #32 768Hz </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 RCoscilá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ětiprogramu).</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 msvoid xDelay_ms(unsigned int Time){for(;Time!=0;Time--)_delay_ms(1); // Knihovni procedura ma velmi omezen} // maximalni cas spozdeni // Hlavni programint main() {DDRC |=1; // Nastav port PCD0 jako vystupfor(;;) // Nekonecna smycka{PORTC |= 1; // Nastav 1xDelay_ms(500); // Pockej 1/2 sekundyPORTC &= ~1; // Nastav 0xDelay_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>