Mikroprocesor ke
své činnosti a správné funkci potřebuje nějaký zdroj hodinových (taktovacích)
impulzů o určité frekvenci (fosc), které využívájí vnitřní obvody
mikroprocesoru a od kterého je pak odvozena délka trvání strojového cyklu, a
tedy i doba vykonávání instrukcí. K taktování (někdy se říká také synchronizaci)
mikroprocesoru může využít buď vnitřní obvodu oscilátoru, který zabudován přímo
v čipu mikroprocesoru nebo k taktování můžeme použít externí obvod oscilátoru. V
prvním případě musíme k vývodům XTAL1 a XTAL2 připojit krystal dle obr.1, v
druhém případě vývod XTAL1 uzemníme a na vývod XTAL2 přes hradlo TTL připojíme
výstup externího obvodu oscilátoru - viz obr.2. U druhého případu je nutné
uvést, že u každého typu mikroprocesoru se může způsob připojení signálu z
externího oscilátoru li‘it. Zapojení dle obr.2 platí pro původní verzi fy Intel
v provedení HMOS. V praxi se nejvíce používá zapojení s vnitřním oscilátorem - s
připojením krystalu. Když chcete použít druhý případ - externí oscilátor -
můžete k tomu využít integrované oscilátory v pouzdrech DIL8 nebo DIL16 např. od
firmy MOTOROLA. Pokud tedy k taktování mikroprocesoru použijeme první případ,
platí jednoduchá rovnice: frekvence použitého krystalu = frekvence oscilátoru
(fosc). V druhém případě je situace jasná: frekvence externího
oscilátoru = frekvence oscilátoru (fosc). Obvod oscilátoru je ve vnitřním blokovém
schématu mikroprocesoru pojmenován jako Generátor hodin.
Zdrojem taktovacích
impulzů může být buď piezokeramická jednotka připojená k mikroprocesoru nebo
jiný externí zdroj taktovacích impulzů. Piezokeramickou jednotku představuje
krystal připojený přes vývody XTALl a XTAL2 - viz obr.1. V případě použití
vněj‘ího (externího) zdroje taktovacích impulzů, je signál z tohoto zdroje
připojen na vývod XTAL2 při současném připojení vývodu XTAL1 na zem - viz obr.2.
Frekvence taktovacího signálu určuje frekvenci oscilátoru (kterou dále v na‘em
povídání označujeme fosc), platí jednoduchý vztah - frekvence
použitého krystalu (taktovacího signálu) = frekvence oscilátoru
(fosc). Obvod, který zpracovává signál od zdroje taktovacích impulzů
a rozvádí jej k dal‘ím vnitřním obvodům mikroprocesoru, je ve vnitřním blokovém
schématu mikroprocesoru pojmenován jako Generátor hodin.
Obr.1 Taktování vnitřním oscilátorem - připojení
krystalu
Obr.2 Taktování externím oscilátorem - připojení vněj‘ího
zdroje
Jeden strojový cyklus
mikroprocesoru se skládá ze ‘esti stavů označených S1 až S6, z nichž každý stav
je dále rozdělen na dvě fáze P1 a P2. Strojový cyklus je tak tvořen celkem 12
fázemi, které se značí S1P1,S1P2,S2P1,S2P2, až S6P2. Jedna fáze má délku jedné
periody taktovacího signálu (vývod XTAL2).
Na inicializaci mikrokontroléru je k dispozici vstup RST (reset), na který je připojen interní Schmittův obvod.
Proto lze na tento vstup připojit i spojitě se měnící napětí, např. napětí na kondenzátoru při automatické inicializaci po připojení napájecího napětí. Pro verze CMOS lze rezistor vynechat,protože vstup RST má vnitřní zatěžovací rezistor. Tehdy musí být hodnota předřazené kapacity snížena na úroveň asi 6uF. Klasický mikroprocesor 8051 a jeho klony např. ATMEL
AT89C51 a AT89C2051 až AT89C4051 mají resetovací úroveň log. 1. Na tomto místě je třeba upozornit na to, že řada nástupců 8051 má aktivní úroveň nulovacího impulzu opačnou (log.0), jak bývá u vět‘iny procesorů obvyklé. Pro vysvětlení se zde budu zabývat jen
RESET-em klasického procesoru 8051. Podrobnosti o aktivní úrovni signálu RESET naleznete v dokumentaci ke každému typu procesoru.
Reset mikrokonlroléru proběhne, bude-li signál RST=1 alespoň po dobu dvou strojových cyklů (24 period hodinových impulzů oscilátoru). Samozřejmě pokud oscilátor běží.
V době inicializace se nastaví ALE a PSEN do vstupního stavu. Vnitřní inicializace se vykoná v době druhého strojového cyklu, ve které je RST=1 a opakuje se pokud RST=1.Obsah interní paměti RAM se resetem neovlivní a po zapnutí napájecího napětí je v ní náhodný obsah (
v aplikacích, kde na tom záleží je ji třeba vynulovat programově po resetu).Po připojení napájení drží obvod vstup RST ve vysoké úrovni po dobu,která je závislá na hodnotě připojené kapacity a rychlostí
náběhu napájecího napětí. Abychom si byli jisti,že RESET bude platný, musí být RESET držen ve vysoké úrovni déle než dva strojové cykly.
Přivedení napájecího napětí bez vykonání platného RESETu způsobí, že CPU mikrokontroléru začne vykonávat program z náhodného místa v paměti programu, protože programový čítač nebyl spolehlivě vynulován a jeho obsah byl náhodný.
Uvedené jednoduché nulivací obvody nejsou vhodné pro systémy se zálohovanou pamětí dat RAM nebo pamětí EEPROM, protože v případě krátkodobého poklesu napájecího napětí nevytvářejí nulovací impuls a
procesor pracující mimo tolerance napájecího napětí udaného výrobcem může snadno jakýmkoliv způsobem přepsat zálohovaná data.Pro takovéto aplikace
je třeba používat nulovací obvod nebo nulovací generátor s obvodem WATCHDOG.
Obr.4 Jednoduchý resetovací obvod pro RESET po přivedení napájecího napětí,aktivní úroveň RST=1.
Obr.5 Jednoduchý resetovací obvod pro RESET po přivedení napájecího napětí,aktivní úroveň RST=0.