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