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