Rev Author Line No. Line
331 miho 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
213 miho 2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title> ATmega801A </title>
6 <meta name="keywords" content="stavebnice MLAB modul procesoru ATMEL ATmega8">
7 <meta name="description" content="Projekt MLAB, modul procesoru ATMEL ATmega8">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
381 miho 10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
213 miho 11 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13 <!-- AUTOINCLUDE END -->
14 </head>
15  
16 <body lang="cs">
17  
18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
19 <!-- ============== HLAVICKA ============== -->
20 <div class="Header">
21 <script type="text/javascript">
22 <!--
23 SetRelativePath("../../../../../");
24 DrawHeader();
25 // -->
26 </script>
27 <noscript>
28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
29 </noscript>
30 </div>
31 <!-- AUTOINCLUDE END -->
32  
33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
34 <!-- ============== MENU ============== -->
35 <div class="Menu">
36 <script type="text/javascript">
37 <!--
38 SetRelativePath("../../../../../");
39 DrawMenu();
40 // -->
41 </script>
42 <noscript>
43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
44 </noscript>
45 </div>
46 <!-- AUTOINCLUDE END -->
47  
48 <!-- ============== TEXT ============== -->
49 <div class="Text">
50 <p class="Title">
51 Atmega801A – modul procesoru Atmega8
52 </p>
53 <p class=Autor>
54 Milan Horkel
55 </p>
56 <p class="Subtitle">
57 Procesorový modul pro práci s procesorem ATMEL Atmega8 v pouzdru
58 TQFP32. Modul obsahuje procesor a může být osazen krystalem standardní
59 velikosti nebo hodinkovým krystalem 32768Hz. Modul je dále vybaven
60 tlačítkem RESET a programovacím konektorem ATMEL ISP 6 PIN.
61 </p>
62 <p class="Subtitle">
63 <img width="324" height="324" src="Pictures/image001.jpg"
64 alt="Modul procesoru ATmega8">
65 </p>
66 <p>
67 <a href="../ATmega801A.cs.pdf"><img class="NoBorder"
68 src="../../../../../Web/PIC/FileIco_PDF.ico"
69 alt="Acrobat">&nbsp;PDF verze</a>
70 </p>
71  
72 <h1> Technické parametry </h1>
73  
74 <table>
75 <tr>
76 <th> Parametr </th>
77 <th> Hodnota </th>
78 <th> Poznámka </th>
79 </tr>
80 <tr>
81 <td> Napájení </td>
82 <td> (1.8V) .. 2.7V .. 5.5V </td>
83 <td> Dle použitého procesoru </td>
84 </tr>
85 <tr>
86 <td> Procesor </td>
87 <td> ATmega8 / ATmega8L </td>
88 <td> Nebo jiný v pouzdru TQFP32 </td>
89 </tr>
90 <tr>
91 <td> Spotřeba </td>
92 <td> 12mA </td>
93 <td> Při 8MHz s krystalem </td>
94 </tr>
95 <tr>
96 <td> Rozměry </td>
97 <td> 51x51x15mm </td>
98 <td> Výška nad nosnou deskou </td>
99 </tr>
100 </table>
101  
102 <h1> Popis konstrukce </h1>
103  
104 <h2> Úvodem </h2>
105  
106 <p>
107 Jedná se o standardní modul pro procesory AVR firmy ATMEL v pouzdru
108 TQFP32. Kromě ATmega8 lze použít i obvody ATmega48, ATmega68, ATmega88
109 a případně další.
110 </p>
111  
112 <h2> Zapojení modulu </h2>
113  
114 <p>
115 Modul je napájen přes napájecí konektor J33. Dioda D1 slouží jako
116 ochrana před přepólováním zdroje (předpokládá se, že zdroj má proudové
117 omezení cca 1A). Tlumivka L1 s kondenzátorem C3 slouží jako filtr
118 napájení pro A/D převodník v procesoru. Kondenzátor C6 slouží k
119 filtraci referenčního napětí.
120 </p>
121  
122 <p>
123 <img width="683" height="599" src="Pictures/image002.gif"
124 alt="Schéma modulu">
125 </p>
126  
127 <p>
128 Zdrojem hodinového kmitočtu procesoru může být:
129 </p>
130  
131 <ul>
132 <li> Vnitřní RC oscilátor (defaultní nastavení nového procesoru, kmitočet 1MHz) </li>
133 <li>Vnější krystalový oscilátor s krystalem X1 nebo X2 (hodinkový krystal) </li>
134 <li>Vnější RC oscilátor R3/C5 </li>
135 <li>Zdroj vnějšího hodinového signálu na vývod XTAL1 </li>
136 </ul>
137  
138 <p>
139 Zdroj hodinového kmitočtu a konfigurace (frekvenční rozsah) oscilátoru
140 se volí programováním konfiguračního slova procesoru. Nový procesor
141 přichází s nastavením interní RC oscilátor s nastavením frekvence na
142 1MHz.
143 </p>
144  
145 <p>
146 Firma ATMEL definovala dvě „standardní“ zapojení programovacího ISP
147 konektoru. Modul používá menší verzi se 6 vývody.
148 </p>
149  
150 <h2> Mechanická konstrukce </h2>
151  
152 <p>
153 Jedná se o standardní modul do stavebnice s upevňovacími rohovými
154 sloupky.
155 </p>
156  
157 <h1> Osazení a oživení </h1>
158  
159 <h2> Osazení </h2>
160  
161 <p>
162 Při osazování procesoru použijte minimum pájky. V případě, že nemáte
163 vhodné vybavení je nejsnazší plošky pro procesor předem pocínovat (co
164 nejméně) a pak přiložený procesor nejprve přichytit za dvě protilehlé
165 nožičky. Další pájka se již přidávat nemusí. Zbylé vývody stačí jeden
166 po druhém připájet. V případě, že je k dispozici jen pistolová páječka
167 používá se smyčka ze zvonkového drátu (průměr drátu cca 0.8mm).
168 </p>
169  
170 <p>
171 Krystal je možné buď osadit rovnou na desku (pokud víme předem jakou
172 budeme potřebovat frekvenci) nebo se osadí jen dutinky z precizní
173 patice do kterých se pak dá zasunout krystal dle potřeby.
174 </p>
175  
176 <p>
177 Na desce jsou 2 krátké drátové propojky.
178 </p>
179  
180 <p>
181 SMD tlumivku je možné v nouzi nahradit propojkou nebo tlumivkou
182 obyčejnou. Zhorší se tím šum A/D převodníku.
183 </p>
184  
185 <p>
186 <img width="321" height="321" src="Pictures/image003.jpg"
187 alt="Osazení, strana spojů">
188 <img width="321" height="320" src="Pictures/image004.jpg"
189 alt="Osazení, strana součástí">
190 </p>
191  
192 <table class="Rospiska">
193 <tr>
194 <th colspan="2"> Odpory </th>
195 </tr>
196 <tr>
197 <td> R1 </td>
198 <td> 100 </td>
199 </tr>
200 <tr>
201 <td> R2, R101, R102, R103 </td>
202 <td> 10k </td>
203 </tr>
204 <tr>
205 <td> R3 </td>
206 <td> neosazuje se </td>
207 </tr>
208 <tr>
209 <th colspan="2"> Keramické kondenzátory </th>
210 </tr>
211 <tr>
212 <td> C4, C5 </td>
213 <td> 22pF </td>
214 </tr>
215 <tr>
216 <td> C101, C102, C103 </td>
217 <td> 10nF </td>
218 </tr>
219 <tr>
220 <td> C2, C3, C6, C7 </td>
221 <td> 100nF </td>
222 </tr>
223 <tr>
224 <th colspan="2"> Elektrolytické kondenzátory </th>
225 </tr>
226 <tr>
227 <td> C1 </td>
228 <td> 22uF/6.3V </td>
229 </tr>
230 <tr>
231 <th colspan="2"> Indukčnosti </th>
232 </tr>
233 <tr>
234 <td> L1 </td>
235 <td> 10uH </td>
236 </tr>
237 <tr>
238 <th colspan="2"> Diody </th>
239 </tr>
240 <tr>
241 <td> D1 </td>
242 <td> 1N4007SMD </td>
243 </tr>
244 <tr>
245 <th colspan="2"> Integrované obvody </th>
246 </tr>
247 <tr>
248 <td> U1 </td>
249 <td> ATmega8L-8AU </td>
250 </tr>
251 <tr>
252 <th colspan="2"> Krystaly </th>
253 </tr>
254 <tr>
255 <td> X1 </td>
256 <td> 8MHz </td>
257 </tr>
258 <tr>
259 <td> X2 </td>
260 <td> #32768Hz </td>
261 </tr>
262 <tr>
263 <th colspan="2"> Mechanické součástky </th>
264 </tr>
265 <tr>
266 <td> J1..J8, J9..J16, J17..J24, J25..J32 </td>
267 <td> JUMP2x8 </td>
268 </tr>
269 <tr>
270 <td> J33, J35 </td>
271 <td> JUMP2X3 </td>
272 </tr>
273 <tr>
274 <td> J101+J103+J105, J102+J104+J106, J107+J109+J111, J108+J110+J112 </td>
275 <td> JUMP3 </td>
276 </tr>
277 <tr>
278 <td> SW1 </td>
279 <td> P-B1720 </td>
280 </tr>
281 <tr>
282 <th colspan="2"> Konstrukční součástky </th>
283 </tr>
284 <tr>
285 <td> 4ks </td>
286 <td> Šroub M3x12 křížový s válcovou hlavou </td>
287 </tr>
288 <tr>
289 <td> 4ks </td>
290 <td> Podložka M3 </td>
291 </tr>
292 <tr>
293 <td> 4ks </td>
294 <td> Distanční sloupek M3x5 </td>
295 </tr>
296 </table>
297  
298 <h1> Konfigurační slova ATmega8 </h1>
299  
300 <h2> <span lang="en">Low Fuse Byte</span> </h2>
301  
302 <table>
303 <tr>
304 <th> Bit </th>
305 <th> Jméno </th>
306 <th> Default </th>
307 <th> Význam </th>
308 </tr>
309 <tr>
310 <td> 7 </td>
311 <td> BODLEVEL </td>
312 <td> 1 </td>
313 <td>
314 <p>
315 <span lang="en">Brown Out Detect Level</span> – úroveň napětí detekce podpětí
316 </p>
317 <p>
318  
319 1 <span lang="en">reset</span> při 3.7 až 4.5V
320 </p>
321 </td>
322 </tr>
323 <tr>
324 <td> 6 </td>
325 <td> BODEN </td>
326 <td> 1 </td>
327 <td>
328 <p>
329 <span lang="en">Brown Out Detect</span> – detekce podpětí
330 </p>
331 <p>
332  
333 1 neaktivní
334 </p>
335 </td>
336 </tr>
337 <tr>
338 <td> 5 4 </td>
339 <td> SUT1 <br>
340 SUT0 </td>
341 <td> 10 </td>
342 <td>
343 <p>
344 <span lang="en">Start Up Timer</span> – volba zpoždění startu
345 </p>
346 <p>
347 Funkce závisí na režimu hodin CKSEL
348 </p>
349 </td>
350 </tr>
351 <tr>
352 <td> 3 2 1 0 </td>
353 <td> CKSEL3 <br>
354 CKSEL2 <br>
355 CKSEL1 <br>
356 CKSEL0 </td>
357 <td> 0001 </td>
358 <td>
359 <p>
360 Clock Select – volba zdroje hodin
361 </p>
362 <p>
363 0000 – externí hodiny
364 </p>
365 <p>
366 0001 – interní RC oscilátor 1 MHz<br>
367 0010 – interní RC oscilátor 2 MHz<br>
368 0011 – interní RC oscilátor 4 MHz<br>
369 0100 – interní RC oscilátor 8 MHz
370 </p>
371 <p>
372 0101 – externí RC oscilátor 0.1 až 0.9 MHz<br>
373 0110 – externí RC oscilátor 0.9 až 3.0 MHz<br>
374 0111 – externí RC oscilátor 3.0 až 8.0 MHz<br>
375 1000 – externí RC oscilátor 8.0 až 12.0 MHz
376 </p>
377 <p>
378 101x – <span lang="en">Low Power XTAL</span> 0.4 až 0.9MHz pro CKOPT=1<br>
379 110x – <span lang="en">Low Power XTAL</span> 0.9 až 3.0MHz pro CKOPT=1<br>
380 111x – <span lang="en">Low Power XTAL</span> 3.0 až 8.0MHz pro CKOPT=1
381 </p>
382 <p>
383 101x – XTAL nad 1.0 MHz pro CKOPT=0<br>
384 110x – XTAL nad 1.0 MHz pro CKOPT=0<br>
385 111x – XTAL nad 1.0 MHz pro CKOPT=0
386 </p>
387 </td>
388 </tr>
389 </table>
390  
391 <h2> <span lang="en">High Fuse Byte</span> </h2>
392  
393 <table>
394 <tr>
395 <th> Bit </th>
396 <th> Jméno </th>
397 <th> Default </th>
398 <th> Význam </th>
399 </tr>
400 <tr>
401 <td> 7 </td>
402 <td> RSTDISBL </td>
403 <td> 1 </td>
404 <td>
405 <p>
406 <span lang="en">Reset Disable</span> – vypnutí funkce
407 <span lang="en">reset</span> nožičky PC6/RESET#
408 </p>
409 <p>
410  
411 1 PC6 je signál RESET#
412 </p>
413 </td>
414 </tr>
415 <tr>
416 <td> 6 </td>
417 <td> WDTON </td>
418 <td> 1 </td>
419 <td>
420 <p>
421 <span lang="en">Watch Dog Timer</span> – hlídač zaseknutí programu
422 </p>
423 <p>
424  
425 1 <span lang="en">Watch Dog Timer</span> lze zapnout i vypnout pomocí WDTCR
426 </p>
427 </td>
428 </tr>
429 <tr>
430 <td> 5 </td>
431 <td> SPIEN </td>
432 <td> 0 </td>
433 <td>
434 <p>
435 <span lang="en">Serial Programming Enable</span> – povolení sériového programování
436 </p>
437 <p>
438  
439 1 sériové programování zakázáno
440 </p>
441 </td>
442 </tr>
443 <tr>
444 <td> 4 </td>
445 <td> CKOPT </td>
446 <td> 1 </td>
447 <td>
448 <p>
449 Clock Option – režim oscilátoru
450 </p>
451 <p>
452  
453 1 malý rozkmit signálu (menší spotřeba)
454 </p>
455 </td>
456 </tr>
457 <tr>
458 <td> 3 </td>
459 <td> EESAVE </td>
460 <td> 1 </td>
461 <td>
462 <p>
463 EEPROM Save – úschova obsahu EEPROM při mazání čipu
464 </p>
465 <p>
466  
467 1 Obsah EEPROM se nezachovává
468 </p>
469 </td>
470 </tr>
471 <tr>
472 <td> 2 1 </td>
473 <td> BOOTSZ1 <br>
474 BOOTSZ0 </td>
475 <td> 00 </td>
476 <td>
477 <p>
478 <span lang="en">Boot Size</span> – velikost paměti programu vyhrazené pro
479 <span lang="en">Boot Loader</span>
480 </p>
481 <p>
482 11 <span lang="en">Boot</span> oblast 128B (od adresy 0xF80)<br>
483 10 <span lang="en">Boot</span> oblast 256B (od adresy 0xF00)<br>
484 01 <span lang="en">Boot</span> oblast 512B (od adresy 0xE00)<br>
485 00 <span lang="en">Boot</span> oblast 1024B (od adresy 0xC00)
486 </p>
487 </td>
488 </tr>
489 <tr>
490 <td> 0 </td>
491 <td> BOOTRST </td>
492 <td> 1 </td>
493 <td>
494 <p>
495 <span lang="en">Boot Reset</span> – volba zda se startuje
496 <span lang="en">Boot Loader</span>
497 </p>
498 <p>
499  
500 adresa viz BOTTSZ1..0<br>
501 1 Po resetu program začíná od adresy 0
502 </p>
503 </td>
504 </tr>
505 </table>
506  
507 <h2> <span lang="en">Lock Byte</span> </h2>
508  
509 <table>
510 <tr>
511 <th> Bit </th>
512 <th> Jméno </th>
513 <th> Default </th>
514 <th> Význam </th>
515 </tr>
516 <tr>
517 <td> 5 4 </td>
518 <td> BLB12 <br>
519 BLB11 </td>
520 <td> 11 </td>
521 <td>
522 <p>
523 <span lang="en">Boot Lock</span> – zámek oblasti zavaděče (<span lang="en">Boot Loader</span>)
524 </p>
525 <p>
526 11 odemčeno, není omezení<br>
527 10 zákaz zápisu do paměti zavaděče<br>
528 01 aplikace nesmí číst zavaděč<br>
529 00 oba zákazy
530 </p>
531 </td>
532 </tr>
533 <tr>
534 <td> 3 2 </td>
535 <td> BLB02 <br>
536 BLB01 </td>
537 <td> 11 </td>
538 <td>
539 <p>
540 <span lang="en">Boot Lock</span> – zámek oblasti uživatelského programu
541 </p>
542 <p>
543 11 odemčeno, není omezení<br>
544 10 zákaz zápisu do paměti uživatelského programu<br>
545 01 zavaděč nesmí číst uživatelský program<br>
546 00 oba zákazy
547 </p>
548 </td>
549 </tr>
550 <tr>
551 <td> 1 0 </td>
552 <td> LB2 <br>
553 LB1 </td>
554 <td> 11 </td>
555 <td>
556 <p>
557 Lock – zámek paměti
558 </p>
559 <p>
560 11 paměť je odemčená<br>
561 10 je zamčená paměť programu i EEPROM<br>
562 00 je zamčeno vše včetně konfigurační oblasti
563 </p>
564 </td>
565 </tr>
566 </table>
567  
568 <h2> <span lang="en">Calibration Bytes</span> </h2>
569  
570 <p>
571 Kalibrační bajty jsou celkem 4 za sebou pro 4 frekvence interního RC
572 oscilátoru. Při resetu se natahuje první z nich do OSCCAL . Kalibrační
573 bajty nejsou dostupné uživatelskému programu. V případě potřeby se musí
574 programátorem přečíst a zapsat někam jinam (EEPROM nebo paměti
575 programu).
576 </p>
577  
578 <table>
579 <tr>
580 <th> Hodnota </th>
581 <th> Minimální frekvence </th>
582 <th> Maximální frekvence </th>
583 </tr>
584 <tr>
585 <td> 0x00 </td>
586 <td> 50% </td>
587 <td> 100% </td>
588 </tr>
589 <tr>
590 <td> 0x7F </td>
591 <td> 75% </td>
592 <td> 150% </td>
593 </tr>
594 <tr>
595 <td> 0xFF </td>
596 <td> 100% </td>
597 <td> 200% </td>
598 </tr>
599 </table>
600  
601 <h2> <span lang="en">Signature Bytes</span> </h2>
602  
603 <p>
604 Signatura součástky je 0x1E (ATMEL) 0x93 (8KB FLASH) 0x07 (ATmega8).
605 </p>
606  
607 <h1> Ukázkový program </h1>
608  
609 <p>
610 Bliknutí LED diodou je základ. Tady je ukázka.
611 </p>
612  
613 <p>
614 <code>
615 #define F_CPU 1000000UL // 1MHz je deaultni frekvence interniho
616 // RC oscilatoru
617 #include &lt;avr/io.h&gt;
618 #include &lt;avr/delay.h&gt;
619 &nbsp;
620 // Spozdeni o libovolny pocet ms
621 void xDelay_ms(unsigned int Time)
622 {
623 for(;Time!=0;Time--)
624 _delay_ms(1); // Knihovni procedura ma velmi omezen
625 } // maximalni cas spozdeni
626 &nbsp;
627 // Hlavni program
628 int main()
629 &nbsp;
630 {
631 DDRC |=1; // Nastav port PCD0 jako vystup
632 for(;;) // Nekonecna smycka
633 {
634 PORTC |= 1; // Nastav 1
635 xDelay_ms(500); // Pockej 1/2 sekundy
636 PORTC &amp;= ~1; // Nastav 0
637 xDelay_ms(500); // Pockej 1/2 sekundy
638 }
639 &nbsp;
640 return 0;
641 }
642 </code>
643 </p>
644  
645 <p>
646 A takto se naprogramuje do součástky:
647 </p>
648  
649 <p>
650 <samp>avrdude -p m8 -c picoweb -P lpt1 -U flash:w:BLIK_ATmega8.hex:a -E noreset</samp>
651 </p>
652  
653 <p>
654 Zbývá připojit logickou sondu na vývod PC0.
655 </p>
656  
657 </div>
658  
659 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
660 <!-- ============== PATIČKA ============== -->
661 <div class="Footer">
662 <script type="text/javascript">
663 <!--
664 SetRelativePath("../../../../../");
665 DrawFooter();
666 // -->
667 </script>
668 <noscript>
669 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
670 </noscript>
671 </div>
672 <!-- AUTOINCLUDE END -->
673  
674 </body>
675 </html>