Základní charakteristiky
- pouzdro 8pin nebo 16pin DIL či SOIC (16pin též TSSOP)
- vnitřní generátor hodin (taktování CPU na 13,8MHz, tedy 3,2MHz BUSCLK)
- možnost externího taktování až do 32MHz, t.j. 8MHz BUSCLK (pro 3V provoz pouze 16MHz)
- napájení 2,7-5,5V
- spotřeba (napájení 5V, BUSCLK 8MHz): 7mA, v režimu se sníženou spotřebou: pod 100nA
- standardní procesorové jádro CPU08
- paměť FLASH 1,5-4kB, paměť RAM 128B
- přímá podpora ladění a programování FLASH v aplikaci (po sériové lince)
- 6, resp. 14 vývodů k dispozici uživateli
- dvoukanálový IC/OC/PWM časovač
- A/D převodník 8bit (jeden převod za 17us) s čtyřkanálovým multiplexorem
- šestivstupové klávesnicové rozhraní
- programovatelný externí IRQ a RESET
Mikrokontrolery NITRON typ QT mají 8 vývodů, typ QY 16 vývodů. Z toho jsou vždy dva napájecí a zbývajících 6, resp. 14 vývodů je volně k dispozici uživateli. Na většinu z nich jsou kromě obvyklých GPIO linek vyvedeny signály vnitřních periferií (časovač, A/D, ...). S ohledem na množství takových signálů a omezený počet vývodů je nemožné každému signálu přiřadit vlastní vývod mikrokontroleru. Řešení naznačuje obrázek, ke každému vývodu náleží skupina signálů, z níž se podle priority vybírá, který signál bude na vývod připojen.
Detailní popis periferií a signálů najde laskavý čtenář v technické dokumentaci, např. v katalogovém listě.
CPU
Stejně jako každý jiný zástupce rodiny mikrokontrolerů HC08 jsou i typy QT a QY (NITRON) vystavěny na jádře CPU08. Mezi typické vlastnosti jádra CPU08 patří minimum pracovních registrů (CPU obsahuje jen akumulátor, indexovací registr, SP, PC a příznakový registr), což je ale vyváženo rychlým a flexibilním přístupem do paměti (16 adresovacích módů). Lze pracovat s proměnnými na přímých adresách, indexovat, pracovat s proměnnými na zásobníku, či tyto techniky kombinovat. To je zároveň podpořeno jednotným adresním prostorem pro paměť dat, programu i I/O periferie. Instrukční sada tak vychází jednodušší a přehlednější.
Charakteristika CPU08
- von Neumannova architektura
- periferie mapovány do paměťového prostoru
- minimum registrů
- rychlý (jednocyklový) přístup do paměti jedním z 16 adresovacích módů
- podpora proměnných na zásobníku
- až dva přístupy do paměti v jedné instrukci
- kompatibilita s HC05 na úrovni zdrojového kódu (směrem vzhůru)
- taktování CPU a sběrnice 0 - 8MHz
- běžné instrukce 1-3T, složitější do 7T
- podpora vyšších jazyků jednotnou paměťovou strukturou
- hardwarové násobení a dělení
- přepínání celého obvodu do režimu se sníženou spotřebou (WAIT a STOP) a následné rychlé probuzení
FLASH
Ze zajímavých vlastností HC08 stojí za zmínku paměť FLASH. Zároveň s vlastní pamětí je na čipu instalován jako periferie též programátor včetně nábojové pumpy, takže lze jednak mikrokontroler programovat bez potřeby speciálního programátoru a zvláštního napájení a navíc může i uživatelský program během normální činnosti s pamětí FLASH pracovat. Může takto emulovat paměť EEPROM, zapisovat do FLASH provozní informace, či sám sebe přepsat novější verzí (lze implementovat bootstrap, apod.).
Vlastnosti FLASH
- vnitřní programátor
- mazání po stránkách velikosti 64/128B za 1ms
- mazání celé FLASH za 4ms
- programování po bytech (30us/Byte)
- lze emulovat EEPROM
- část paměti lze uzamknout proti nechtěnému přepisu (odemknutí je možné za zvláštních podmínek)
- garantováno 10000 přepisů a 10 let udržení informace v celém teplotním rozsahu -40 až 125°C (za příznivějších podmínek pak vychází počet přepisů a doba uchování informace o několik řádů větší)
- ve spolupráci s MON08 je paměť FLASH programovatelná např. po sériovém portu
MON08 - Ladění na čipu (ICD)
Jednou z předností mikrokontrolerů řady HC08, tedy i modelů NITRON, je podpora ladění a programování přímo v aplikaci, tzv. In Circuit Development – ICD. To umožňuje MON08 – vestavěný monitor. Za normálních okolností, kdy HC08 pracuje v uživatelské aplikaci, jsou k dispozici všechny vývody uživateli (není žádný trvale blokovaný pin např. pro JTAG apod.). V momentě, kdy si uživatel vyžádá přepnutí do MONITOR MODE, přestane se vykonávat uživatelský program a spustí se vnitřní monitor (uložený v ROM mikrokontroleru). Požadavek na přepnutí do MONITOR MODE se dává mikrokontroleru nastavením vstupů do požadovaného stavu v momentě zapnutí napájení. Aby nemohlo dojít k náhodnému nastartování monitoru, je na vývodu IRQ požadováno nestandardní napětí VCC+2,5V.
Po nastartování v MONITOR MODE mikrokontroler očekává komunikaci s nadřízeným systémem (nejčastěji vývojové prostředí v PC). Vlastní komunikace je realizována velmi jednoduše, monitor vyhradí jeden vývod pro obousměrnou komunikaci s rychlostí 1/1024 hodinového taktu (obvykle se užívá 9600bd). Lze takto posílat monitoru příkazy jako zápis do paměti, čtení z paměti či spuštění nějakého programu. Tím programem pak může být například program pro vypalování FLASH, ladění software apod. Následující obrázek schematicky znázorňuje princip komunikace s monitorem.
S ohledem na to, že příkazy monitoru i příkladová řešení ladicího adaptéru jsou volně k dispozici, může uživatel kromě vlastního ladění použít tuto formu komunikace s mikrokontrolerem i pro vlastní potřebu jako servisní vstupy, výměnu firmware, diagnostiku zařízení, nastavování provozních parametrů či čtení stavových informací.
Programování a podpora vývoje
Mikrokontrolery HC08 se běžně programují v ASM a/nebo C. Pro oba jazyky jsou k dispozici vývojové prostředky buď zcela zdarma, nebo zdarma s omezením velikosti výsledného kódu.
Krok první – ASM
Pro vývoj software pro platformu HC08 v assembleru je volně k dispozici například vývojový systém ICS08 firmy P&E Micro http://www.pemicro.com. Kompletní prostředí ICS08 je zdarma a lze jej stáhnout z výše zmíněné adresy. Pro svoji jednoduchost a přehlednost jej lze doporučit zvláště pro první kroky s mikrokontrolery HC08, jejich studia a vývoje menších projektů. Prostředí obsahuje vedle editoru, kompilatoru a programatoru rovněž úplný obvodový simulátor, který simuluje kromě jádra procesoru též všechny periferie. Lze tak bez účasti hardware testovat různé funkce, rutiny nebo celé části kódu. Výhoda simulátoru je, že simulace probíhá velmi rychle a uživatel má nad dějem plnou kontrolu.
Schematicky lze situaci znázornit například takto:
Další součástí prostředí je ne zcela obvyklý nástroj tzv. In-circuit-simulator (ICS). Je to ve své podstatě simulátor, ale vlastní vstupy a výstupy obvodu nejsou simulovány, nýbrž přebírány z reálné aplikace. ICS se při startu spojí pomocí MON08 s aplikací (např. s kitem nebo s mikrokontrolerem ve vyvíjeném zařízení přes MON08 adaptér) a během trasování přebírá vstupní hodnoty (logické i analogové) z ní a výstupní hodnoty vysílá do ní. Lze takto testovat algoritmy, které nějak spolupracují s okolím mikrokontroleru (čtení klávesnice, ovládání display, apod.).
Stejně jako úplný simulátor i ICS simuluje vnitřní činnost mikrokontroleru, a to včetně paměti FLASH, takže před započetím simulace není třeba program do paměti FLASH nahrávat.
Posledními dvěma moduly v ICS08 jsou programátor, který za pomoci MON08 naprogramuje či přečte paměť FLASH mikrokontroleru, a debugger. Debugger se chová obvyklým způsobem, tedy trasuje (či spouští a monitoruje) běh programu přímo v mikrokontroleru samotném. Oproti simulátoru tedy vlastně monitoruje činnost mikrokontroleru, ale žádnou z jeho funkcí nesimuluje.
Krok druhý – C
Pro větší projekty je C velmi vhodným nástrojem. Překladačů jazyka C pro HC08
existuje několik (www.cosmic-software.com, www.imagecraft.com, www.metrowerks.com). Překladače se liší svými schopnostmi,
komplikovaností prostředí a rovněž cenou.
Pro projekty do velikosti výsledného kódu 4kB (což v případě NITRONu zcela stačí,
neboť obsahuje max. 4kB FLASH) lze např. překladač CodeWarrior od firmy Motorola – MetroWerks získat
zdarma. Zájemce si může prostřednictvím webu www.metrowerks.com objednat CD s tzv. „Special Edition“
– SE. CodeWarrioru pro HC08, která se od plné verze liší pouze omezením
velikosti výsledného kódu a limitací na vývoj pod MON08 (velké
obvodové emulátory, jako např. MMDS, nejsou v této licenci podporovány).
Krok třetí – NITRON nestačí
Při návrhu jednotlivých modelů řady HC08 je důsledně dodržována kompatibilita v rámci řady. Ve všech modelech je stejné jádro CPU08, periferie jsou vybírány ze stejného „katalogu“ a pokud je to možné, jsou mapovány na stejné adresy. Uživatel HC08 tak zvládnutím jednoho modelu (třeba NITRONu) automaticky zvládne celou řadu. Se stejnými znalostmi a stejným vývojovým software tak může vybírat pro svou aplikaci z desítech různých modelů ten nejvhodnější. Navíc může i během vývoje aplikace model změnit a aktuální stav software přenést jen s minimálními úpravami.
Závěr
Cílem tohoto článku bylo seznámit čtenáře se základními vlastnostmi mikrokontroleru Motorola HC08 – NITRON, místy mírně zobecněnými na celou řadu mikrokontrolerů HC08. V článku bylo zdůrazněno několik klíčových vlastností těchto obvodů a dále stručný přehled vývojového software.
Jiri.Naprstek@ motorola.com
DOWNLOAD & Odkazy
- Datasheet k NITRONu - nitron.pdf
- Stránky polovodičové divize Motoroly - http://e-www.motorola.com
- Stránka o mikrokontroleru HC08 – NITRON - Datasheety, manuály, aplikační zprávy, atd.
- Manuál k jádru CPU08 - http://e-www.motorola.com/brdata/PDFDB/docs/CPU08RM.pdf
- Stránky českého zastoupení Motoroly - http://www.motorola.cz
- Stránky podpory HC08 v angličtině (přehledy hardware a software vybavení pro práci s HC08)- http://www.hc08.cz
- Stránky firmy P&E Micro (komerční výrobky pro vývoj na HC08, vývojový software ICS08 pro ASM zdarma)- http://www.pemicro.com
- Stránky o vývojovém prostředí CodeWarrior (lze objednat i CodeWarrior pro HC08) - http://www.metrowerks.com
- Další z možných překladačů C (jako CW je do 4kB zdarma) - http://www.cosmic-software.com