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.
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 |
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ší.
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í.
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.
Jedná se o standardní modul do stavebnice s upevňovacími rohovými sloupky.
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.
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 |
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 |
6 | BODEN | 1 |
Brown Out Detect – detekce podpětí
0 aktivována |
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
0101 – externí RC oscilátor 0.1 až 0.9 MHz
101x – Low Power XTAL 0.4 až 0.9MHz pro CKOPT=1
101x – XTAL nad 1.0 MHz pro CKOPT=0 |
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 |
6 | WDTON | 1 |
Watch Dog Timer – hlídač zaseknutí programu
0 Watch Dog Timer nelze vypnout (je trvale zapnutý) |
5 | SPIEN | 0 |
Serial Programming Enable – povolení sériového programování
0 sériové programování povoleno |
4 | CKOPT | 1 |
Clock Option – režim oscilátoru
0 výkonový výstup (například pro rychlé krystaly) |
3 | EESAVE | 1 |
EEPROM Save – úschova obsahu EEPROM při mazání čipu
0 Obsah EEPROM se zachovává |
2 1 | BOOTSZ1 BOOTSZ0 |
00 |
Boot Size – velikost paměti programu vyhrazené pro Boot Loader
11 Boot oblast 128B (od adresy 0xF80) |
0 | BOOTRST | 1 |
Boot Reset – volba zda se startuje Boot Loader
0 Po resetu se aktivuje Boot Loader,
adresa viz BOTTSZ1..0 |
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í |
3 2 | BLB02 BLB01 |
11 |
Boot Lock – zámek oblasti uživatelského programu
11 odemčeno, není omezení |
1 0 | LB2 LB1 |
11 |
Lock – zámek paměti
11 paměť je odemčená |
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% |
Signatura součástky je 0x1E (ATMEL) 0x93 (8KB FLASH) 0x07 (ATmega8).
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.