Procesor H8S/2633F má rozsah adresního prostoru 16 MB. K adresování pamětí slouží 24 adresních vodičů. Část adresního prostoru je obsazena vnitřní pamětí Flash o kapacitě 128 kB, vnitřní 16 kB pamětí RAM a sadou SFR registrů. Zbývající část adresního prostoru může být obsazena vnějšími paměťmi, případně IO obvody mapovanými v paměťovém adresním prostoru.
Celý adresní prostor je rozdělen na 8 stejných bloků o velikosti 2 MB. Pro každý blok lze nezávisle nastavit šířku datové sběrnice na 8 nebo 16 bitů, délku zápisových a čtecích cyklů 2 nebo 3 takty hodin, počet vkládaných čekacích taktů (0 - 3 takty Tw) a povolit vkládání dalších čekacích taktů v závislosti na signálu /WAIT. Pro bloky č. 2, 3, 4 a 5 lze dále uzpůsobit časování přístupových cyklů pro dynamickou paměť, včetně automatického zotavování pamětí.
Paměťové bloky a jejich využití v EVB2633F
Tři nejvyšší adresní vodiče (A23, A22, A21) jsou dekódovány přímo v mikrokontroléru a výstup dekodéru je vyveden jako signály /CS0 - /CS7, které jsou aktivovány v případě generování čtecího nebo zápisového cyklu paměti s adresou odpovídající příslušnému paměťovému bloku. Z důvodů omezeného počtu vývodů pouzdra procesoru H8S/2633F jsou však vývody /CS0 - /CS7 využívány současně jako vývody portu PG resp. P7, případně mohou mít některou z dalších funkcí (viz podrobný manuál k procesorům H8S/2633F). Pro přepnutí daného vývodu procesoru do funkce /CSx je proto zapotřebí zapsat do různých SFR registrů příslušné hodnoty. Potřebné nastavení je shrnuto v následující tabulce:
Rozsah adres |
Aktivovaný vývod /CSx | Potřebné nastavení SFR |
---|---|---|
0x000000 - 0x1FFFFF | /CS0 | PGDDR: PG4DDR = 1 |
0x200000 - 0x3FFFFF | /CS1 | PGDDR: PG3DDR = 1 |
0x400000 - 0x5FFFFF | /CS2 | PGDDR: PG2DDR = 1 |
0x600000 - 0x7FFFFF | /CS3 | PGDDR: PG1DDR = 1, BCRL: OES = 0 |
0x800000 - 0x9FFFFF | /CS4 | P7DDR: P70DDR = 1 |
0xA00000 - 0xBFFFFF | /CS5 | P7DDR: P71DDR = 1 |
0xC00000 - 0xDFFFFF | /CS6 | P7DDR: P72DDR = 1, TCSR0: OS3 - OS0 = 0 |
0xE00000 - 0xFFFFFF | /CS7 | P7DDR: P73DDR = 1, TCSR1: OS3 - OS0 = 0 |
Zápis PGDDR: PG4DDR = 1 v tabulce znamená, že bit PG4DDR v SFR registru PGDDR musí být nastaven na hodnotu 1 atd.
Ve vývojovém modulu EVB2633F jsou některé signály /CSx využívány v dekodérech adres připojených vnějších pamětí a dalších obvodů. Využití je shrnuto v následující tabulce:
Vývod /CSx | Využití |
---|---|
/CS0 | -- (blok č. 0 je obsazen vnitřní pamětí Flash mikrokontroléru) |
/CS1 | Vnější paměť 256 kB na základní desce EVB2633F |
/CS2 | Dekodér adres desky Mem_Com_2 |
/CS3 | Obvod CPLD XC95108 na desce Disp_Kbd_1 |
/CS4 | -- |
/CS5 | -- |
/CS6 | -- |
/CS7 | -- (blok č. 7 je částečně obsazen vnitřní
RAM a SFR registry mikrokontroléru) |
Jak vyplývá z tabulky, je signál /CS1 využíván v dekodéru adres vnější paměti RAM na základní desce EVB2633F. Povolení jeho funkce je standardně prováděno monitorem ve vnitřní Flash mikrokontroléru zápisem 1 do bitu PG3DDR. Tuto skutečnost je nutné respektovat v případě, že potřebujeme povolit funkci /CS2 nebo /CS3 (pro desku Mem_Com_2 nebo Disp_Kbd_1). Registr PGDDR je totiž typu WO tj. pouze pro zápis a není proto možné zjistit jeho okamžitou hodnotu. Při zápisu nové hodnoty (např. pro povolení funkce /CS2 nebo /CS3) nelze postupovat tak, že je nejprve přečtena původní hodnota registru, potom je nastaven příslušný bit a nová hodnota zapsána do registru. Nelze tedy např. použít příkaz
PGDDR = PGDDR | 0x04;
Nastavení celého registru musí být provedeno "natvrdo" a přitom musí být nastaven i bit PG3DDR. Povolení funkce /CS2 může být provedeno příkazem
PGDDR = 0x0C;
a podobně povolení funkce /CS3 příkazem
PGDDR = 0x0A; .
k nastavení některých dalších SFR registrů pro připojení desek Mem_Com_2 a Disp_Kbd_1:
Počet taktů v paměťových cyklech
Pro připojení desky Mem_Com_2 i Disp_Kbd_1 je vhodné používat 3taktové čtecí a zápisové cykly. Příslušné nastavení je možné provést nastavením bitů ASTCR: AST2 resp. ASTCR: AST3 na hodnotu 1. Toto nastavení je provedeno standardně po RESETU mikrokontroléru a obvykle není nutné jej v aplikačním programu opakovat.
Počet programově vkládaných čekacích taktů
Bus Controller lze zápisem do registru WCRH a WCRL nastavit na programové vkládání 0 - 3 čekacích taktů. Po RESETU jsou oba registry nastaveny na vkládání 3 čekacích taktů. Toto nastavení vyhovuje i pro připojení desek Mem_Com_2 a Disp_Kbd_1.
Vkládání čekacích taktů signálem /WAIT
Kromě programově vkládaných čekacích taktů lze povolit i vkládání čekacích taktů na základě aktivity signálu /WAIT. Standardně je toto vkládání čekacích taktů zakázáno. Pro práci s deskou Disp_Kbd_1 v konfiguraci pro připojení alfanumerického LCD displeje (konfigurace DK_2) musí být vkládání čekacích taktů signálem /WAIT povoleno zápisem 1 do bitu BCRL: WAITE.
Šířka adresní sběrnice
Mikrokontrolér H8S/2633F má vyvedenou 24 bitovou adresní sběrnici. Podobně jako další vývody mohou i adresní vývody mít řadu dalších funkcí. Pokud není všech 24 adresních vývodů využito pro dekódování adresy, lze nepotřebné adresní vodiče uvolnit pro využití v jiné funkci. Ve vývojovém modulu EVB2633F jsou využívány jen adresní vodiče A0 - A19. Vodiče A20 - A23 lze proto využít v jiné funkci, např. jako port P1.0 - P1.3 . Pro odpojení vodičů A20 - A23 od adresní sběrnice je nutné zapsat do bitů PFCR: AE3 - PFCR: AE0 hodnotu 1100.
SFR registr |
Adresa |
---|---|
PGDDR | 0xFFFE3F |
P7DDR | 0xFFFE36 |
WCRL | 0xFFFED3 |
ASTCR | 0xFFFED1 |
BCRL | 0xFFFED5 |
PFCR | 0xFFFDEB |
TCSR0 | 0xFFFF6A |
TCSR1 | 0xFFFF69 |
Rozšiřující desky pro EVB2633F:
Poslední změna stránky byla provedena 23.03.2005