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>
610 miho 194 <th> Reference </th>
195 <th> Hodnota </th>
196 </tr>
197 <tr>
213 miho 198 <th colspan="2"> Odpory </th>
199 </tr>
200 <tr>
201 <td> R1 </td>
202 <td> 100 </td>
203 </tr>
204 <tr>
205 <td> R2, R101, R102, R103 </td>
206 <td> 10k </td>
207 </tr>
208 <tr>
209 <td> R3 </td>
210 <td> neosazuje se </td>
211 </tr>
212 <tr>
213 <th colspan="2"> Keramické kondenzátory </th>
214 </tr>
215 <tr>
216 <td> C4, C5 </td>
217 <td> 22pF </td>
218 </tr>
219 <tr>
220 <td> C101, C102, C103 </td>
221 <td> 10nF </td>
222 </tr>
223 <tr>
224 <td> C2, C3, C6, C7 </td>
225 <td> 100nF </td>
226 </tr>
227 <tr>
228 <th colspan="2"> Elektrolytické kondenzátory </th>
229 </tr>
230 <tr>
231 <td> C1 </td>
232 <td> 22uF/6.3V </td>
233 </tr>
234 <tr>
235 <th colspan="2"> Indukčnosti </th>
236 </tr>
237 <tr>
238 <td> L1 </td>
239 <td> 10uH </td>
240 </tr>
241 <tr>
242 <th colspan="2"> Diody </th>
243 </tr>
244 <tr>
245 <td> D1 </td>
246 <td> 1N4007SMD </td>
247 </tr>
248 <tr>
249 <th colspan="2"> Integrované obvody </th>
250 </tr>
251 <tr>
252 <td> U1 </td>
253 <td> ATmega8L-8AU </td>
254 </tr>
255 <tr>
256 <th colspan="2"> Krystaly </th>
257 </tr>
258 <tr>
259 <td> X1 </td>
260 <td> 8MHz </td>
261 </tr>
262 <tr>
263 <td> X2 </td>
264 <td> #32768Hz </td>
265 </tr>
266 <tr>
267 <th colspan="2"> Mechanické součástky </th>
268 </tr>
269 <tr>
270 <td> J1..J8, J9..J16, J17..J24, J25..J32 </td>
271 <td> JUMP2x8 </td>
272 </tr>
273 <tr>
274 <td> J33, J35 </td>
275 <td> JUMP2X3 </td>
276 </tr>
277 <tr>
278 <td> J101+J103+J105, J102+J104+J106, J107+J109+J111, J108+J110+J112 </td>
279 <td> JUMP3 </td>
280 </tr>
281 <tr>
282 <td> SW1 </td>
283 <td> P-B1720 </td>
284 </tr>
285 <tr>
286 <th colspan="2"> Konstrukční součástky </th>
287 </tr>
288 <tr>
289 <td> 4ks </td>
290 <td> Šroub M3x12 křížový s válcovou hlavou </td>
291 </tr>
292 <tr>
293 <td> 4ks </td>
294 <td> Podložka M3 </td>
295 </tr>
296 <tr>
297 <td> 4ks </td>
298 <td> Distanční sloupek M3x5 </td>
299 </tr>
300 </table>
301  
302 <h1> Konfigurační slova ATmega8 </h1>
303  
304 <h2> <span lang="en">Low Fuse Byte</span> </h2>
305  
306 <table>
307 <tr>
308 <th> Bit </th>
309 <th> Jméno </th>
310 <th> Default </th>
311 <th> Význam </th>
312 </tr>
313 <tr>
314 <td> 7 </td>
315 <td> BODLEVEL </td>
316 <td> 1 </td>
317 <td>
318 <p>
319 <span lang="en">Brown Out Detect Level</span> – úroveň napětí detekce podpětí
320 </p>
321 <p>
322  
323 1 <span lang="en">reset</span> při 3.7 až 4.5V
324 </p>
325 </td>
326 </tr>
327 <tr>
328 <td> 6 </td>
329 <td> BODEN </td>
330 <td> 1 </td>
331 <td>
332 <p>
333 <span lang="en">Brown Out Detect</span> – detekce podpětí
334 </p>
335 <p>
336  
337 1 neaktivní
338 </p>
339 </td>
340 </tr>
341 <tr>
342 <td> 5 4 </td>
343 <td> SUT1 <br>
344 SUT0 </td>
345 <td> 10 </td>
346 <td>
347 <p>
348 <span lang="en">Start Up Timer</span> – volba zpoždění startu
349 </p>
350 <p>
351 Funkce závisí na režimu hodin CKSEL
352 </p>
353 </td>
354 </tr>
355 <tr>
356 <td> 3 2 1 0 </td>
357 <td> CKSEL3 <br>
358 CKSEL2 <br>
359 CKSEL1 <br>
360 CKSEL0 </td>
361 <td> 0001 </td>
362 <td>
363 <p>
364 Clock Select – volba zdroje hodin
365 </p>
366 <p>
367 0000 – externí hodiny
368 </p>
369 <p>
370 0001 – interní RC oscilátor 1 MHz<br>
371 0010 – interní RC oscilátor 2 MHz<br>
372 0011 – interní RC oscilátor 4 MHz<br>
373 0100 – interní RC oscilátor 8 MHz
374 </p>
375 <p>
376 0101 – externí RC oscilátor 0.1 až 0.9 MHz<br>
377 0110 – externí RC oscilátor 0.9 až 3.0 MHz<br>
378 0111 – externí RC oscilátor 3.0 až 8.0 MHz<br>
379 1000 – externí RC oscilátor 8.0 až 12.0 MHz
380 </p>
381 <p>
382 101x – <span lang="en">Low Power XTAL</span> 0.4 až 0.9MHz pro CKOPT=1<br>
383 110x – <span lang="en">Low Power XTAL</span> 0.9 až 3.0MHz pro CKOPT=1<br>
384 111x – <span lang="en">Low Power XTAL</span> 3.0 až 8.0MHz pro CKOPT=1
385 </p>
386 <p>
387 101x – XTAL nad 1.0 MHz pro CKOPT=0<br>
388 110x – XTAL nad 1.0 MHz pro CKOPT=0<br>
389 111x – XTAL nad 1.0 MHz pro CKOPT=0
390 </p>
391 </td>
392 </tr>
393 </table>
394  
395 <h2> <span lang="en">High Fuse Byte</span> </h2>
396  
397 <table>
398 <tr>
399 <th> Bit </th>
400 <th> Jméno </th>
401 <th> Default </th>
402 <th> Význam </th>
403 </tr>
404 <tr>
405 <td> 7 </td>
406 <td> RSTDISBL </td>
407 <td> 1 </td>
408 <td>
409 <p>
410 <span lang="en">Reset Disable</span> – vypnutí funkce
411 <span lang="en">reset</span> nožičky PC6/RESET#
412 </p>
413 <p>
414  
415 1 PC6 je signál RESET#
416 </p>
417 </td>
418 </tr>
419 <tr>
420 <td> 6 </td>
421 <td> WDTON </td>
422 <td> 1 </td>
423 <td>
424 <p>
425 <span lang="en">Watch Dog Timer</span> – hlídač zaseknutí programu
426 </p>
427 <p>
428  
429 1 <span lang="en">Watch Dog Timer</span> lze zapnout i vypnout pomocí WDTCR
430 </p>
431 </td>
432 </tr>
433 <tr>
434 <td> 5 </td>
435 <td> SPIEN </td>
436 <td> 0 </td>
437 <td>
438 <p>
439 <span lang="en">Serial Programming Enable</span> – povolení sériového programování
440 </p>
441 <p>
442  
443 1 sériové programování zakázáno
444 </p>
445 </td>
446 </tr>
447 <tr>
448 <td> 4 </td>
449 <td> CKOPT </td>
450 <td> 1 </td>
451 <td>
452 <p>
453 Clock Option – režim oscilátoru
454 </p>
455 <p>
456  
457 1 malý rozkmit signálu (menší spotřeba)
458 </p>
459 </td>
460 </tr>
461 <tr>
462 <td> 3 </td>
463 <td> EESAVE </td>
464 <td> 1 </td>
465 <td>
466 <p>
467 EEPROM Save – úschova obsahu EEPROM při mazání čipu
468 </p>
469 <p>
470  
471 1 Obsah EEPROM se nezachovává
472 </p>
473 </td>
474 </tr>
475 <tr>
476 <td> 2 1 </td>
477 <td> BOOTSZ1 <br>
478 BOOTSZ0 </td>
479 <td> 00 </td>
480 <td>
481 <p>
482 <span lang="en">Boot Size</span> – velikost paměti programu vyhrazené pro
483 <span lang="en">Boot Loader</span>
484 </p>
485 <p>
486 11 <span lang="en">Boot</span> oblast 128B (od adresy 0xF80)<br>
487 10 <span lang="en">Boot</span> oblast 256B (od adresy 0xF00)<br>
488 01 <span lang="en">Boot</span> oblast 512B (od adresy 0xE00)<br>
489 00 <span lang="en">Boot</span> oblast 1024B (od adresy 0xC00)
490 </p>
491 </td>
492 </tr>
493 <tr>
494 <td> 0 </td>
495 <td> BOOTRST </td>
496 <td> 1 </td>
497 <td>
498 <p>
499 <span lang="en">Boot Reset</span> – volba zda se startuje
500 <span lang="en">Boot Loader</span>
501 </p>
502 <p>
503  
504 adresa viz BOTTSZ1..0<br>
505 1 Po resetu program začíná od adresy 0
506 </p>
507 </td>
508 </tr>
509 </table>
510  
511 <h2> <span lang="en">Lock Byte</span> </h2>
512  
513 <table>
514 <tr>
515 <th> Bit </th>
516 <th> Jméno </th>
517 <th> Default </th>
518 <th> Význam </th>
519 </tr>
520 <tr>
521 <td> 5 4 </td>
522 <td> BLB12 <br>
523 BLB11 </td>
524 <td> 11 </td>
525 <td>
526 <p>
527 <span lang="en">Boot Lock</span> – zámek oblasti zavaděče (<span lang="en">Boot Loader</span>)
528 </p>
529 <p>
530 11 odemčeno, není omezení<br>
531 10 zákaz zápisu do paměti zavaděče<br>
532 01 aplikace nesmí číst zavaděč<br>
533 00 oba zákazy
534 </p>
535 </td>
536 </tr>
537 <tr>
538 <td> 3 2 </td>
539 <td> BLB02 <br>
540 BLB01 </td>
541 <td> 11 </td>
542 <td>
543 <p>
544 <span lang="en">Boot Lock</span> – zámek oblasti uživatelského programu
545 </p>
546 <p>
547 11 odemčeno, není omezení<br>
548 10 zákaz zápisu do paměti uživatelského programu<br>
549 01 zavaděč nesmí číst uživatelský program<br>
550 00 oba zákazy
551 </p>
552 </td>
553 </tr>
554 <tr>
555 <td> 1 0 </td>
556 <td> LB2 <br>
557 LB1 </td>
558 <td> 11 </td>
559 <td>
560 <p>
561 Lock – zámek paměti
562 </p>
563 <p>
564 11 paměť je odemčená<br>
565 10 je zamčená paměť programu i EEPROM<br>
566 00 je zamčeno vše včetně konfigurační oblasti
567 </p>
568 </td>
569 </tr>
570 </table>
571  
572 <h2> <span lang="en">Calibration Bytes</span> </h2>
573  
574 <p>
575 Kalibrační bajty jsou celkem 4 za sebou pro 4 frekvence interního RC
576 oscilátoru. Při resetu se natahuje první z nich do OSCCAL . Kalibrační
577 bajty nejsou dostupné uživatelskému programu. V případě potřeby se musí
578 programátorem přečíst a zapsat někam jinam (EEPROM nebo paměti
579 programu).
580 </p>
581  
582 <table>
583 <tr>
584 <th> Hodnota </th>
585 <th> Minimální frekvence </th>
586 <th> Maximální frekvence </th>
587 </tr>
588 <tr>
589 <td> 0x00 </td>
590 <td> 50% </td>
591 <td> 100% </td>
592 </tr>
593 <tr>
594 <td> 0x7F </td>
595 <td> 75% </td>
596 <td> 150% </td>
597 </tr>
598 <tr>
599 <td> 0xFF </td>
600 <td> 100% </td>
601 <td> 200% </td>
602 </tr>
603 </table>
604  
605 <h2> <span lang="en">Signature Bytes</span> </h2>
606  
607 <p>
608 Signatura součástky je 0x1E (ATMEL) 0x93 (8KB FLASH) 0x07 (ATmega8).
609 </p>
610  
611 <h1> Ukázkový program </h1>
612  
613 <p>
614 Bliknutí LED diodou je základ. Tady je ukázka.
615 </p>
616  
617 <p>
618 <code>
619 #define F_CPU 1000000UL // 1MHz je deaultni frekvence interniho
620 // RC oscilatoru
621 #include &lt;avr/io.h&gt;
622 #include &lt;avr/delay.h&gt;
623 &nbsp;
624 // Spozdeni o libovolny pocet ms
625 void xDelay_ms(unsigned int Time)
626 {
627 for(;Time!=0;Time--)
628 _delay_ms(1); // Knihovni procedura ma velmi omezen
629 } // maximalni cas spozdeni
630 &nbsp;
631 // Hlavni program
632 int main()
633 &nbsp;
634 {
635 DDRC |=1; // Nastav port PCD0 jako vystup
636 for(;;) // Nekonecna smycka
637 {
638 PORTC |= 1; // Nastav 1
639 xDelay_ms(500); // Pockej 1/2 sekundy
640 PORTC &amp;= ~1; // Nastav 0
641 xDelay_ms(500); // Pockej 1/2 sekundy
642 }
643 &nbsp;
644 return 0;
645 }
646 </code>
647 </p>
648  
649 <p>
650 A takto se naprogramuje do součástky:
651 </p>
652  
653 <p>
654 <samp>avrdude -p m8 -c picoweb -P lpt1 -U flash:w:BLIK_ATmega8.hex:a -E noreset</samp>
655 </p>
656  
657 <p>
658 Zbývá připojit logickou sondu na vývod PC0.
659 </p>
660  
661 </div>
662  
663 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
664 <!-- ============== PATIČKA ============== -->
665 <div class="Footer">
666 <script type="text/javascript">
667 <!--
668 SetRelativePath("../../../../../");
669 DrawFooter();
670 // -->
671 </script>
672 <noscript>
673 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
674 </noscript>
675 </div>
676 <!-- AUTOINCLUDE END -->
677  
678 </body>
679 </html>