Atmega801A – modul procesoru Atmega8

Milan Horkel

Procesorový modul pro práci s procesorem ATMEL Atmega8 v pouzdru TQFP32. Modul obsahuje procesor a může být osazen krystalem standardní velikosti nebo hodinkovým krystalem 32768Hz. Modul je dále vybaven tlačítkem RESET a programovacím konektorem ATMEL ISP 6 PIN.

Modul procesoru ATmega8

Acrobat PDF verze

Technické parametry

Parametr Hodnota Poznámka
Napájení (1.8V) .. 2.7V .. 5.5V Dle použitého procesoru
Procesor ATmega8 / ATmega8L Nebo jiný v pouzdru TQFP32
Spotřeba 12mA Při 8MHz s krystalem
Rozměry 51x51x15mm Výška nad nosnou deskou

Popis konstrukce

Úvodem

Jedná se o standardní modul pro procesory AVR firmy ATMEL v pouzdru TQFP32. Kromě ATmega8 lze použít i obvody ATmega48, ATmega68, ATmega88 a případně další.

Zapojení modulu

Modul je napájen přes napájecí konektor J33. Dioda D1 slouží jako ochrana před přepólováním zdroje (předpokládá se, že zdroj má proudové omezení cca 1A). Tlumivka L1 s kondenzátorem C3 slouží jako filtr napájení pro A/D převodník v procesoru. Kondenzátor C6 slouží k filtraci referenčního napětí.

Schéma modulu

Zdrojem hodinového kmitočtu procesoru může být:

Zdroj hodinového kmitočtu a konfigurace (frekvenční rozsah) oscilátoru se volí programováním konfiguračního slova procesoru. Nový procesor přichází s nastavením interní RC oscilátor s nastavením frekvence na 1MHz.

Firma ATMEL definovala dvě „standardní“ zapojení programovacího ISP konektoru. Modul používá menší verzi se 6 vývody.

Mechanická konstrukce

Jedná se o standardní modul do stavebnice s upevňovacími rohovými sloupky.

Osazení a oživení

Osazení

Při osazování procesoru použijte minimum pájky. V případě, že nemáte vhodné vybavení je nejsnazší plošky pro procesor předem pocínovat (co nejméně) a pak přiložený procesor nejprve přichytit za dvě protilehlé nožičky. Další pájka se již přidávat nemusí. Zbylé vývody stačí jeden po druhém připájet. V případě, že je k dispozici jen pistolová páječka používá se smyčka ze zvonkového drátu (průměr drátu cca 0.8mm).

Krystal je možné buď osadit rovnou na desku (pokud víme předem jakou budeme potřebovat frekvenci) nebo se osadí jen dutinky z precizní patice do kterých se pak dá zasunout krystal dle potřeby.

Na desce jsou 2 krátké drátové propojky.

SMD tlumivku je možné v nouzi nahradit propojkou nebo tlumivkou obyčejnou. Zhorší se tím šum A/D převodníku.

Osazení, strana spojů Osazení, strana součástí

Reference Hodnota
Odpory
R1 100
R2, R101, R102, R103 10k
R3 neosazuje se
Keramické kondenzátory
C4, C5 22pF
C101, C102, C103 10nF
C2, C3, C6, C7 100nF
Elektrolytické kondenzátory
C1 22uF/6.3V
Indukčnosti
L1 10uH
Diody
D1 1N4007SMD
Integrované obvody
U1 ATmega8L-8AU
Krystaly
X1 8MHz
X2 #32768Hz
Mechanické součástky
J1..J8, J9..J16, J17..J24, J25..J32 JUMP2x8
J33, J35 JUMP2X3
J101+J103+J105, J102+J104+J106, J107+J109+J111, J108+J110+J112 JUMP3
SW1 P-B1720
Konstrukční součástky
4ks Šroub M3x12 křížový s válcovou hlavou
4ks Podložka M3
4ks Distanční sloupek M3x5

Konfigurační slova ATmega8

Low Fuse Byte

Bit Jméno Default Význam
7 BODLEVEL 1

Brown Out Detect Level – úroveň napětí detekce podpětí

0 reset při 2.4 až 2.9V
1 reset při 3.7 až 4.5V

6 BODEN 1

Brown Out Detect – detekce podpětí

0 aktivována
1 neaktivní

5 4 SUT1
SUT0
10

Start Up Timer – volba zpoždění startu

Funkce závisí na režimu hodin CKSEL

3 2 1 0 CKSEL3
CKSEL2
CKSEL1
CKSEL0
0001

Clock Select – volba zdroje hodin

0000 – externí hodiny

0001 – interní RC oscilátor 1 MHz
0010 – interní RC oscilátor 2 MHz
0011 – interní RC oscilátor 4 MHz
0100 – interní RC oscilátor 8 MHz

0101 – externí RC oscilátor 0.1 až 0.9 MHz
0110 – externí RC oscilátor 0.9 až 3.0 MHz
0111 – externí RC oscilátor 3.0 až 8.0 MHz
1000 – externí RC oscilátor 8.0 až 12.0 MHz

101x – Low Power XTAL 0.4 až 0.9MHz pro CKOPT=1
110x – Low Power XTAL 0.9 až 3.0MHz pro CKOPT=1
111x – Low Power XTAL 3.0 až 8.0MHz pro CKOPT=1

101x – XTAL nad 1.0 MHz pro CKOPT=0
110x – XTAL nad 1.0 MHz pro CKOPT=0
111x – XTAL nad 1.0 MHz pro CKOPT=0

High Fuse Byte

Bit Jméno Default Význam
7 RSTDISBL 1

Reset Disable – vypnutí funkce reset nožičky PC6/RESET#

0 PC6 je běžná IO nožička
1 PC6 je signál RESET#

6 WDTON 1

Watch Dog Timer – hlídač zaseknutí programu

0 Watch Dog Timer nelze vypnout (je trvale zapnutý)
1 Watch Dog Timer lze zapnout i vypnout pomocí WDTCR

5 SPIEN 0

Serial Programming Enable – povolení sériového programování

0 sériové programování povoleno
1 sériové programování zakázáno

4 CKOPT 1

Clock Option – režim oscilátoru

0 výkonový výstup (například pro rychlé krystaly)
1 malý rozkmit signálu (menší spotřeba)

3 EESAVE 1

EEPROM Save – úschova obsahu EEPROM při mazání čipu

0 Obsah EEPROM se zachovává
1 Obsah EEPROM se nezachovává

2 1 BOOTSZ1
BOOTSZ0
00

Boot Size – velikost paměti programu vyhrazené pro Boot Loader

11 Boot oblast 128B (od adresy 0xF80)
10 Boot oblast 256B (od adresy 0xF00)
01 Boot oblast 512B (od adresy 0xE00)
00 Boot oblast 1024B (od adresy 0xC00)

0 BOOTRST 1

Boot Reset – volba zda se startuje Boot Loader

0 Po resetu se aktivuje Boot Loader, adresa viz BOTTSZ1..0
1 Po resetu program začíná od adresy 0

Lock Byte

Bit Jméno Default Význam
5 4 BLB12
BLB11
11

Boot Lock – zámek oblasti zavaděče (Boot Loader)

11 odemčeno, není omezení
10 zákaz zápisu do paměti zavaděče
01 aplikace nesmí číst zavaděč
00 oba zákazy

3 2 BLB02
BLB01
11

Boot Lock – zámek oblasti uživatelského programu

11 odemčeno, není omezení
10 zákaz zápisu do paměti uživatelského programu
01 zavaděč nesmí číst uživatelský program
00 oba zákazy

1 0 LB2
LB1
11

Lock – zámek paměti

11 paměť je odemčená
10 je zamčená paměť programu i EEPROM
00 je zamčeno vše včetně konfigurační oblasti

Calibration Bytes

Kalibrační bajty jsou celkem 4 za sebou pro 4 frekvence interního RC oscilátoru. Při resetu se natahuje první z nich do OSCCAL . Kalibrační bajty nejsou dostupné uživatelskému programu. V případě potřeby se musí programátorem přečíst a zapsat někam jinam (EEPROM nebo paměti programu).

Hodnota Minimální frekvence Maximální frekvence
0x00 50% 100%
0x7F 75% 150%
0xFF 100% 200%

Signature Bytes

Signatura součástky je 0x1E (ATMEL) 0x93 (8KB FLASH) 0x07 (ATmega8).

Ukázkový program

Bliknutí LED diodou je základ. Tady je ukázka.

#define F_CPU 1000000UL // 1MHz je deaultni frekvence interniho // RC oscilatoru #include <avr/io.h> #include <avr/delay.h>   // Spozdeni o libovolny pocet ms void xDelay_ms(unsigned int Time) { for(;Time!=0;Time--) _delay_ms(1); // Knihovni procedura ma velmi omezen } // maximalni cas spozdeni   // Hlavni program int main()   { DDRC |=1; // Nastav port PCD0 jako vystup for(;;) // Nekonecna smycka { PORTC |= 1; // Nastav 1 xDelay_ms(500); // Pockej 1/2 sekundy PORTC &= ~1; // Nastav 0 xDelay_ms(500); // Pockej 1/2 sekundy }   return 0; }

A takto se naprogramuje do součástky:

avrdude -p m8 -c picoweb -P lpt1 -U flash:w:BLIK_ATmega8.hex:a -E noreset

Zbývá připojit logickou sondu na vývod PC0.