Projects/tigris
Projects
/
tigris
Archived
5
0
Fork 0
This repository has been archived on 2024-07-04. You can view files and clone it, but cannot push or open issues or pull requests.
tigris/reference/parallell.txt

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å leses tilbake. Når gyldige data settes ut
på porten, går RDY høy. STB kan settes høy av eksternt utstyr
for å 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 å
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 å 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år ved skriving til portens
kontrollregister.
Fø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ølgende ord skrevet til
kontrollregisteret være et retningsord, der en ener i en
bitposisjon medfører at tilsvarende I/O-pinne vil bli en
inngang, mens en nuller vil medfø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å skrives et slikt
maskeord til kontrollregisteret umiddelbart etterpå.
Uansett modus, ved å 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ørn Djupdal, djupdal@stud.ntnu.no