117 lines
4.3 KiB
Plaintext
117 lines
4.3 KiB
Plaintext
|
Parallellporter i TIKI-100 Rev C
|
|||
|
--------------------------------
|
|||
|
|
|||
|
TIKI-100 inneholder en Z80 PIO krets med 2 stk. 8-bits I/O porter
|
|||
|
(hver med kvitteringssignalene RDY og STB).
|
|||
|
Begge disse er koblet opp til parallellport P3. Se portbeskrivelsen
|
|||
|
for mer informasjon om pinnetilordning.
|
|||
|
|
|||
|
Z80 PIO kontrolleres gjennom 4 I/O porter:
|
|||
|
|
|||
|
I/O-port 08H: Parallellport A, dataord
|
|||
|
|
|||
|
Her leses og skrives data for parallellport A.
|
|||
|
|
|||
|
I/O-port 09H: Parallellport B, dataord
|
|||
|
|
|||
|
Her leses og skrives data for parallellport B.
|
|||
|
|
|||
|
I/O-port 0AH: Parallellport A, styreord
|
|||
|
|
|||
|
Her skrives kontrollregisteret til parallellport A.
|
|||
|
|
|||
|
I/O-port 0BH: Parallellport B, styreord
|
|||
|
|
|||
|
Her skrives kontrollregisteret til parallellport B.
|
|||
|
|
|||
|
Operasjonsmodi
|
|||
|
|
|||
|
Parallellportene kan settes til en av 4 modi:
|
|||
|
|
|||
|
Modus 0: Data ut. Data skrevet til dataregisteret blir satt rett ut p<>
|
|||
|
porten. De kan ogs<67> leses tilbake. N<>r gyldige data settes ut
|
|||
|
p<> porten, g<>r RDY h<>y. STB kan settes h<>y av eksternt utstyr
|
|||
|
for <20> indikere at data er lest.
|
|||
|
Modus 1: Data inn. Porten klokker inn data utenfra n<>r det eksterne
|
|||
|
utstyret setter STB h<>y. Data kan hentes inn til CPU ved <20>
|
|||
|
lese dataregisteret. Da blir samtidig RDY h<>y, og indikerer
|
|||
|
til det eksterne utstyret at porten er klar for en ny byte.
|
|||
|
N<>r STB settes h<>y, g<>r RDY lav, og kretsen kan gi interrupt.
|
|||
|
Modus 2: Bidireksjonal (b<>de inn og ut). Bare port A kan fungere i
|
|||
|
modus 2. N<>r port A settes til modus 2, m<> samtidig port B
|
|||
|
settes til modus 2 og port B m<> settes til <20> ikke generere
|
|||
|
interrupts.
|
|||
|
Data ut er lik modus 0, bortsett fra at data bare settes ut
|
|||
|
n<>r ASTB er lav.
|
|||
|
Data inn er lik modus 1, bortsett fra at kvitteringssignalene
|
|||
|
og interruptmulighetene til port B benyttes.
|
|||
|
Modus 3: Bit kontroll. Individuelle bits i parallellporten kan settes
|
|||
|
enten til inn eller ut. RDY og STB er ikke brukt. I stedet
|
|||
|
genereres en interrupt hvis interruptbetingelsene til
|
|||
|
input-pinnene bestemt under programmering av porten er
|
|||
|
oppfyllt.
|
|||
|
|
|||
|
Programmering
|
|||
|
|
|||
|
Programmering av porten foreg<65>r ved skriving til portens
|
|||
|
kontrollregister.
|
|||
|
|
|||
|
F<EFBFBD>lgende styreord kan skrives til kontrollregisteret:
|
|||
|
|
|||
|
Mode Control Word:
|
|||
|
|
|||
|
Bit 6-7: Velger modus:
|
|||
|
Bit 7 Bit 6
|
|||
|
0 0 Modus 0
|
|||
|
0 1 Modus 1
|
|||
|
1 0 Modus 2
|
|||
|
1 1 Modus 3
|
|||
|
N<>r modus 3 velges, M<> etterf<72>lgende ord skrevet til
|
|||
|
kontrollregisteret v<>re et retningsord, der en ener i en
|
|||
|
bitposisjon medf<64>rer at tilsvarende I/O-pinne vil bli en
|
|||
|
inngang, mens en nuller vil medf<64>re at I/O-pinnen blir en
|
|||
|
utgang.
|
|||
|
Bit 4-5: Ubrukt
|
|||
|
Bit 0-3: M<> settes til 1111 (identifiserer at dette er Mode Control
|
|||
|
Word).
|
|||
|
|
|||
|
Interrupt Control Word:
|
|||
|
|
|||
|
Bit 7 = 1: Skrur p<> interruptfunksjonen
|
|||
|
Bit 7 = 0: Skrur av interruptfunksjonen
|
|||
|
Bit 6 = 1: OG funksjon, alle bit med i interruptbetingelsen m<> g<> til
|
|||
|
den definerte tilstanden for at interrupt skal genereres.
|
|||
|
Bit 6 = 0: ELLER funksjon, interrupt genereres n<>r minst ett bit g<>r
|
|||
|
til den definerte tilstanden.
|
|||
|
Bit 5 = 1: Definert tilstand er h<>y
|
|||
|
Bit 5 = 0: Definert tilstand er lav
|
|||
|
Bit 4 = 1: Kun utvalgte bit er med i interruptbetingelsen. Neste byte
|
|||
|
skrevet til kontrollregisteret m<> v<>re et maskeord. Dersom
|
|||
|
et utvalgt bit i maskeordet er satt vil den tilsvarende
|
|||
|
pinnen i parallellporten IKKE monitoreres for interrupt.
|
|||
|
Dersom bit 4 er satt, M<> det alts<74> skrives et slikt
|
|||
|
maskeord til kontrollregisteret umiddelbart etterp<72>.
|
|||
|
Uansett modus, ved <20> sette bit 4 til 1 vil alle ventende
|
|||
|
interrupts bli slettet.
|
|||
|
Bit 0-3: M<> settes til 0111 (identifiserer at dette er Interrupt
|
|||
|
Control Word).
|
|||
|
|
|||
|
Interrupt Disable Word:
|
|||
|
|
|||
|
Bit 7 = 1: Skrur p<> interrupts
|
|||
|
Bit 7 = 0: Skrur av interrupts
|
|||
|
Bit 4-6: Ubrukt
|
|||
|
Bit 0-3: M<> settes til 0011 (identifiserer at dette er Interrupt
|
|||
|
Disable Word).
|
|||
|
|
|||
|
Interrupt Vector Word:
|
|||
|
|
|||
|
Bit 1-7: Setter interrupt vektoren som skal benyttes ved interrupts
|
|||
|
(med implisitt 0 i minst signifikante bit).
|
|||
|
Bit 0: M<> settes til 0 (identifiserer at dette er Interrupt Vector
|
|||
|
word).
|
|||
|
|
|||
|
---
|
|||
|
18 august 2002
|
|||
|
Asbj<EFBFBD>rn Djupdal, djupdal@stud.ntnu.no
|