Cvičný modul Z80
Základní popis
Celková koncepce
Cvičný modul je postaven na bázi obvodů Z80. Plně osazená deska obsahuje tyto základní obvody:
Jeden obvod Z80 PIO a oba obvody Z80 SIO jsou vyvedeny na konektory pro připojení přídavných zařízení a obvodů.
Obr. 1 Blokové schéma cvičného modulu
Bázové adresy periferních obvodů
Výběrové signály pro jednotlivé periferní obvody jsou generovány na základě dekódování adresních vodičů A3 – A7. Vodiče A0 – A2 jsou podle potřeby využívány jednotlivými IO nebo jsou nevyužity. Bázové adresy jednotlivých IO jsou v Tab. 1 .
Typ IO |
Bázová adresa |
Označení IO |
DMA0 |
88h |
U21 |
DMA1 |
90h |
U22 |
PIO0 |
80h |
U23 |
PIO1 |
A8h |
U36 |
SIO0 |
98h |
U35 |
SIO1 |
A0h |
U34 |
CTC0 |
B0h |
U33 |
CTC1 |
B8h |
U32 |
Tab. 1 Bázové adresy periferních obvodů
Blokové přenosy
Pro blokové přenosy lze použít DMA kanály DMA0 a DMA1. Pro SIO0 a SIO1 lze dále využít vývody W/RDYB ve funkci WAIT – synchronizují blokové přenosy, řízené procesorem při provádění instrukce OTIR nebo INIR.
Signál READY pro řízení kanálů DMA0 a DMA1 může být generován různými zdroji. Jejich přepínání je řízeno vývody PB2 a PB3 obvodu PIO0 (viz Tab. 2). Je-li jako zdroj signálu použit obvod PALPIO, musí být v patici P2 zasazen patřičně naprogramovaný GAL (16V8). Schematické uspořádání signálů pro blokové přenosy je na obr. 2 signály pro řízení blokových přenosů. na obrázku není respektována polarita signálů.
Obr. 2 Signály pro řízení blokových přenosů. Na obrázku není respektována polarita signálů.
stav výstupů PIO0:PB3,PB2 |
00 |
01 |
10 |
11 |
DMA0 |
PALPIO:DRQ |
SIO0:ARDY |
SIO0:ARDY |
SIO1:ARDY |
DMA1 |
SIO0:ARDY |
PALPIO:DRQ |
SIO1:ARDY |
SIO0:ARDY |
Tab. 2 Přepínání zdroje signálu READY pro DMA
PALPIO
PALPIO je GAL 16V8. Je určeno pro zpracování resp. generování signálů RDY a STB od PIO1. Dále generuje signál DRQ zavedený do přepínače zdrojů signálu READY pro DMA kanály.
Obr. 3 Vstupy a výstupy obvodu PALPIO
Priority přerušení
Signál DIR je výstup z PIO0:PB1 a určuje uspořádání prioritního řetězce. Signál IEO ® IEI je předáván následujícím způsobem:
DIR=0: SIO0 ® SIO1 ® DMA0 ® DMA1 ® CTC0 ® CTC1 ® PIO0 ® PIO1
DIR=1: SIO1 ® SIO0 ® DMA0 ® DMA1 ® CTC0 ® CTC1 ® PIO0 ® PIO1
Priority přidělení sběrnice
Signál BAO ® BAI je předáván z procesoru následujícím způsobem:
CPU ® DMA0 ® DMA1
Čítače
Propojení čítačů CTC0 a CTC1:
Část čítačů slouží jako generátory hodin RXTXCB pro SIO0 a SIO1. Ostatní vstupy a výstupy jsou vyvedeny na konektory.
Signály RXTXCA a RXTXCB jsou připojeny přímo na odpovídající vývod obvodů SIO0 a SIO1. Signály TRXCA a TRXCB jsou vyvedeny na konektory K1 a K2 pro připojení kodéru / dekodéru a budičů sériové linky.
Obr. 4 Propojení čítačů / časovačů CTC0 a CTC1
Budiče sériových kanálů
Kanál B každého modulu je trvale vyveden přes budiče rozhraní RS232 na konektor CN12. Kanál A lze podle konfigurace připojit přes budiče RS232 na konektor CN11 nebo přes kodér, resp. dekodér (U1 resp U2 + U3, GAL 16V8 resp. 2´ 22V10) na konektor CN13 buď přímo, nebo přes budiče / přijímače symetrického vedení 75110PC a 75107PC. Vysílací a přijímací hodiny pro kanál A mohou být odvozeny ze signálů TRXCA resp. TRXCB nebo mohou být generovány kodérem a dekodérem.
Kanál B obvodu SIO1 je použit pro komunikaci s PC.
Obr. 5 Propojovací možnosti na desce budičů sériových kanálů
Mapa paměti
Adresování pamětí je řízeno vývodem PB0 obvodu PIO0. Tento vývod umožňuje mapovat adresy 0000 – 3FFF do paměti EPROM (PB0 = H) nebo RAM (PB0 = L). Výběrové signály pro paměti EPROM a řídicí signálu pro dynamické RAM jsou generovány obvodem PALPIO (GAL 16V8).
Po RESETU je na adresách 0000 – 3FFF namapována paměť EPROM. Přesouvací program postupně přemístí některé oblasti (s programem ZSLAP a CDOS) z EPROM do RAM. Následuje přepnutí paměti na adresách 0000 – 3FFF na RAM a přesun ZSLAP na adresu 0100. Po spuštění se ZSLAP sám přesune do paměti pod program CDOS (viz popis tohoto programu).
Obr. 6 Mapa paměti v průběhu inicializace systému
Rozložení součástek
Obr. 7 Rozložení součástek na hlavní desce. Číslování vývodů konektorů vylisované na jejich těle nemusí být správné.
Obr. 8 Rozložení součástek na desce budičů sériových linek.
Synchronní přenos dat
Při synchronním přenosu jsou hodiny TxC a RxC generovány v obvodech GAL16V8 resp. GAL22V10. Na hodinový vstup obou GAL je zaveden signál 14 Mhz. Protože max. rychlost vysílání a příjmu v synchronním režimu je pro Z80 SIO povolena 550 kHZ, musí být základní frekvence 14 Mhz dělena alespoň v poměru 1 : 32.
Zakódovaná data mohou být vysílána v úrovni TTL nebo po symetrické lince s budičem 75110PC; v tomto případě je na vstupu použit převodník 75107PC pro převod ze symetrického signálu na úroveň TTL.
Pozn.: Hodinový signál pro GAL22V10 je zaváděn na jeho vstup z výstupu 13 obvodu GAL16V8.
Obr. 9 Uspořádání pro synchronní přenos dat
Připojení kávesnice Consul 262.3 (paralelní)
Klávesnice je připojena ke konektoru K3. Datové vodiče -D0 – -D7 jsou připojeny na port A, signál STROBE z klávesnice je zaveden na pin SCI konektoru K3. Celkové propojení je znázorněno na Obr. 8.
Obr. 10 Připojení klávesnice Consul (paralelní)
Připojení klávesnice Consul 262.4 (sériová)
Klávesnice vysílá kód stisknuté klávesy po sériové lince ve formátu:
Obr. 11 Připojení sériové klávesnice Consul
Připojení Colorgrafu
Z Colorgrafu jsou vyvedeny signály pro přímé řízení krokových motorů. Aktivní úroveň je H (tj. při úrovni H teče proud příslušným vinutím motoru). Vstupy jsou udržovány na úrovni H pomocí kolektorových odporů zabudovaných přímo v Colorgrafu.
Signály z koncových spínačů jsou vyvedeny na konektor. Aktivní úroveň je L. Dále je na konektor vyveden signál pro spouštění pera.
Obr. 12 Připojení Colorgrafu na konektor PIO 1
Připojení maticové klávesnice
Maticová klávesnice 4´ 4 je připojena na PIO1. Vývody PB3, PB2, PB1 a PB0 jsou připojeny na jednotlivé řádky. Port B musí být naprogramován jako výstupní. Vývody PA3, PA2, PA1 a PA0 jsou připojeny na sloupce klávesnice. Port A musí být naprogramován jako vstupní. Na jednotlivých sloupcových vodičích je udržována úroveň H pomocí odporů 10k, připojených na +5V. Schematicky je připojení maticové klávesnice znázorněno na Obr. 13.
Obr. 13 Připojení maticové klávesnice
Poznámka: U Z80PIO nelze konfigurovat výstupní porty jako otevřené kolektory. Při současném stisku dvou tlačítek ve stejném sloupci dochází k nepřímému propojení příslušných řádkových vodičů. Jsou-li na těchto vodičích rozdílné logické úrovně, dochází ke zkratu a detekce stisknutých tlačítek nemůže nefungovat, protože na sloupcovém vodiči je napětí dané elektrickým propojením úrovně L a úrovně H na dvou výstupech portu B. Protože výstupy Z80PIO jsou v tomto případě nadměrně namáhány, je lépe současné stisky dvou a více tlačítek v jednom sloupci nepoužívat.
Poslední změna stránky byla provedena 04.10.2001