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