Jste zde

ATMEL AVR® mikroprocesor AT90S1200

Pokračování miniseriálu o mikrokontrolérech ATMEL AVR se tentokrát věnuje podrobnému popisu

mikroprocesoru AT90S1200 a jeho vlastnostem.

AT90S1200

Od svého vzoru AT90S1300 se AT90S1200 liší především rozšířeným instrukčním souborem z původních 83 na 89 instrukcí. Byly přidány dvě instrukce s nepřímým adresováním (Load register a Store register), dvě instrukce manipulující s bity vstupního/výstupního registru (portu) a dvě instrukce testující bity vstupního/výstupního registru (portu). I když mikroprocesor má velmi malou paměť RAM pro data, pouhých 32byte, chybějící instrukce pro manipulaci s daty pomocí nepřímého adresování v původním AT90S1300 citelně chyběly.


Obr. 1 - Blokové schéma mikroprocesoru AT90S1200

To, že jde opravdu co do schopností o nejmenšího zástupce, můžeme usoudit i podle toho, že byl implementován pouze tříúrovňový hardwarový zásobník návratových adres (stack pointer), a též podle toho, že je implementován pouze jeden registr (registr Z) pro nepřímé adresování. Přes tato zjednodušení má řadu vylepšení (výhod) oproti klasickým mikroprocesorům řady 89C51. Jde především o vnitřní obvod „Watchdog“, který je velmi důležitou součástí celého systému, neboť „dohlíží“ nad správnou činností samotného mikroprocesoru. Dále zde nalezneme 64 byte paměti EEPROM pro úschovu různých konfiguračních dat, či jiných důležitých dat, která musí být uschována i v případě výpadku napájení systému. Pro mnoho jednoduchých aplikací je požadavkem co nejmenší počet součástí systému. Jelikož je tento mikroprocesor směřován právě do této oblasti, najdeme na čipu mikroprocesoru implementován obvod interního oscilátoru s pevným kmitočtem 1MHz, s kterým můžeme v mnoha aplikacích vystačit. Pozorný čtenář si zajisté na blokovém schématu tohoto mikroprocesoru zajisté všimnul, že je zde blok sériového rozhraní. V mnoha případech je nutné programovat mikroprocesor, až když je zapájen na desce plošných spojů. Typickou situací je upgrade programového vybavení. Aby nebylo nutno mikroprocesor složitě nejdříve z desky vypájet, přeprogramovat a znovu zapájet, což není z hlediska spolehlivosti nejlepší, vybavili návrháři i tento nejjednodušší mikroprocesor možností programování přes sériové rozhraní SPI., které vystačí s třemi piny portu B (PB5, PB6 a PB7). Co je důležité, přes toto rozhraní lze měnit i obsah interní datové paměti EEPROM. Pojďme se na některé bloky mikroprocesoru podívat podrobněji.


Obr. 2 - Blokové schéma obvodu WatchDog

K částem, které ve předchozí řadě mikroprocesorů citelně chyběly, patří obvod hlídající regulérní „běh“ programového vybavení, tzv. obvod „Watchdog“. Jeho blokové schéma můžeme vidět na obr.2. Jedná se o spojení RC oscilátoru s kmitočtem 1MHz a děličky s nastavitelným dělícím poměrem. Díky nastavitelné děličce si můžeme vybrat pro danou aplikaci nejvhodnější dobu cyklu obvodu „Watchdog“. Dovolte mi poznamenat, že RC oscilátor může být použit jako hlavní oscilátor hodinového kmitočtu mikroprocesoru v režimu mikroprocesoru s interním oscilátorem. Je však nutné si uvědomit, že se jedná o RC oscilátor, který není tak stabilní jako oscilátor krystalový. Jak můžeme vidět na obr.3, je interní oscilátor především citlivý na změnu napájecího napětí.


Obr. 3 - Závislost kmitočtu interního RC oscilátoru na napájecím napětí

K částem, která též doznala menších změn, je obvod Resetu, jehož částí je též již zmiňovaný obvod „Watchdog“ (obr. 4). Nyní mi dovolte srovnání s podobným obvodem v mikrokontrolérech firmy Microchip. Ač je obvod Resetu v mikroprocesoru AVR dokonalejší než v jeho předchůdcích 89Cxx, nedosahuje kvality obvodu implementovaného v mikrokontrolérech PIC. Částí, která citelně chybí, je tzv. obvod „Brown-out“, tj. obvod, který reaguje na krátkodobé poklesy napájecího napětí mikroprocesoru pod přípustnou mez. Takže v případě, kdy je nutná ochrana před těmito krátkodobými výpadky, nezbývá nic jiného než použít externí obvod, jak ostatně k tomu výrobce sám nabádá.


Obr. 4 - Blokové schéma obvodu RESET mikroprocesoru AT90S1200

Čítač/Časovač 0 - Timer/Counter 0

Jedinou periférií, kterou najdeme v tomto nejjednodušším zástupci řady AVR je 8bitový čítač/časovač. Jelikož 8 bitů nedovoluje velkou flexibilitu v možnosti volby časových intervalů v režimu (čítání hodinového kmitočtu procesoru), je vlastnímu čítači/časovači předřazen předdělič s možností výběru dělícího poměru v rozsahu 1 až 1024 v krocích 1, 8, 64, 256 a 1024 (obr.6). V režimu čítače je si možné vybrat pouze aktivní hranu signálu, na kterou bude čítač reagovat. Celkové blokové schéma čítače/časovače 0 včetně příslušných řídicích registrů vidíme na obr. 5.


Obr. 5 - Blokové schéma čítače/časovače 0


Obr. 6 - Blokové schéma předděličky čítače/časovače 0

Analogový komparátor – Analog comparator

Co se týká dalších periférií, disponuje mikroprocesor dále pouze analogovým komparátorem (obr.7), který lze přes jeho jednoduchost mnohostranně využít, např. pro konstrukci jednoduchého A/D převodníku s rozlišením cca 8 bitů, který může být v řadě případů užitečný, jehož ideové schéma můžeme vidět na obr.8.


Obr. 7 – Blokové schéma analogového komparátoru


Obr. 8 – Ideové schéma A/D převodníku

Z dalších vlastností, které nebyly výše vzpomenuty, jmenujme paměť programu, která má velikost 1kB s organizací 512 x 16, a vstup pro jedno externí přerušení. Jelikož je maximální hodinový kmitočet až 12MHz , a to v rozmezí napájecího napětí 4V až 6V, je schopen mikroprocesor dosáhnout špičkového výkonu až 12MIPS. Pro aplikace vyžadující nízkou spotřebu může být mikroprocesor provozován s napájecím napětím pouze 2.7 V. Při 3V napájení je schopen pracovat na frekvenci 4 MHz při typické spotřebě 2 mA. V režimu „stand-by“, kdy jsou zachovány funkce periférií, odebírá mikroprocesor méně než 0.4 mA. V režimu „power-down“ (režim „spánku“), kdy je zachován obsah paměti dat, odebírá méně než 1 µA. Z obou úsporných režimů lze mikroprocesor „vzbudit“ mimo signálu Reset též signálem externího přerušení, pokud toto není zakázáno. Posledním, ale z hlediska konstruktéra též důležitým parametrem, je proudová zatížitelnost výstupních portů mikroprocesoru. Maximální proud jednotlivého bitu výstupního portu může být až 20 mA (sink), což umožňuje přímé buzení diod LED či LED displejů. Bohužel výstupy však nejsou schopny dodávat velký proud, typicky jen 3 mA, neboť výstup není typu push-pull.

Jiří KOPELENT
jiri.kopelent@ gme.cz

DOWNLOAD & Odkazy

Hodnocení článku: