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