Mikroprocesorski sistemi
Primer za lab vežbe
Napomena: invertovani signali su podvučeni!
Primer#1 (Lab3): Funkcionalna verifikacija za mode 0 paralelnog
porta 8255A
Uvodne radnje:
-
Za dovođenje signala na čip 8255A koristi
se generator signala (PC-LAB kartica). PC-LAB kartica ima izlaze
od D/O0-D/O15 i GND.
-
Signale proveravati logičkom sondom.
-
Ulazni vektori za PC-LAB karticu su organizovani kao:
D/O7...D/O0 D/O15...D/O8
XXXXXXXX XXXXXXXX
-
Spojiti GND PC-LAB kartice sa masom protoboard-a
(zajednička masa).
-
Ulazne pinove na čipu spojiti sa izlazima
iz generatora signala, i to:
WR=D/O8 (write ulaz)
RD =D/O9 (read ulaz)
CS=D/O12 (chip select ulaz)
-
Adresne ulaze na čipu spajiti na sledeći način:
A0=D/O10
A1=D/O11
-
Data ulaze na čipu spojiti na sledeći
način:
D7-D0 = D/O7-D/O0
-
Povezati ulazne pinove na čipu na sledeće
napone (direktno sa protoboard-a):
VCC ulaz na 5V
GND ulaz na 0V
RESET ulaz na 0V
Primer #1
Upis u kontrolni registar.
Port A je IN (mode 0), B je OUT (mode 0), C je OUT (mode0).U kontrolni
registar se upisuje vektor 10010000.
Ulazni vektori:
10010000 00001111
-
Proveriti signale na PC-LAB kartici i na protoboard-u.
10010000 00001110 // WR (1 -> 0 -> 1 )
10010000 00001111
00000000 00010000 // CS je neaktivan, kraj sekvence
-
Proveriti sve pinove na čipu.
Primer #2.
-
Upis u B port vektora 10101010
10101010 00000111
10101010 00000110
10101010 00000111
00000000 00010000
-
Pročitati PB7-PB0 .
Primer #3
-
Upis u C port vektora 11111111
11111111 00001011
11111111 00001010
11111111 00001011
00000000 00010000
-
Pročitaj PC7-PC0.
Primer #4
-
Set/reset komanda. Upis u PC3.
00000110 00001111
00000110 00001110
00000110 00001111
00000000 00010000
-
Pročitati PC7-PC0, PB7-PB0.
Primer #5
-
Premestiti D/O7-D/O0 na PA7-PA0
Unos u port A izvan cipa.
11111111 00000011 // upis u port A spolja
11111111 00000001 // RD 1->0
-
Pročitati D7-D0.
11111111 00000011
Primer#2 (Lab4): Funkcionalna verifikacija za mode 0 paralelnog
porta 8255A
Uvodne radnje:
-
Za dovođenje signala na čip 8255A koristi
se generator signala (PC-LAB kartica).
PC-LAB kartica ima izlaze od D/O0-D/O15 i GND.
-
Izgled signala se prati na Logic State Analyzer-u.
-
Takođe, signale proveravati logičkom sondom
-
Ulazni vektori za PC-LAB karticu su organizovani kao:
D/O7
D/O0 D/O15
D/O8
XXXXXXXX XXXXXXXX
-
Spajamo GND ulaz PC-LAB kartice sa masom protoboard-a
(zajednička masa).
Ulaze na čipu spojiti sa izlazima iz generatora
signala, i to:
WR=D/O8 (write ulaz)
RD=D/O9 (read ulaz)
CS=D/O12 (chip select ulaz)
-
Adresne ulaze na čipu spojiti na sledeći način:
A0=D/O10
A1=D/O11
-
Data ulaze na čipu spojiti na sledeći način:
D7-D0 = D/O7-D/O0
-
Povezati ulaze na čipu na sledeće napone,
direktno na protoboard (ove
signale ne menjati tokom cele vežbe):
VCC ulaz na 5V
GND ulaz na 0V
RESET ulaz na 0V
-
U programu koji je povezan sa Logic State Analyzer-om (C:\LSA\main.exe)
mogu se definisati trigger vektori: Program prikuplja podatke nakon
prepoznavanja nekog od trigger vektora.
Pinovi (PC4 strobe ulaz, PC5-IBF izlaz, PC3- INTQ
izlaz za prekid, RD) se vezuju sa prihvatnicima
Logic State Analyzer-a.
|
RD |
PC3 |
PC5 |
PC4 |
|
0) |
1 |
0 |
0 |
1 |
// početna situacija |
1) |
1 |
0 |
0 |
0 |
// strobe 1->0 |
2) |
1 |
0 |
1 |
1 |
// strobe 0->1 (spolja) |
3) |
0 |
1 |
1 |
1 |
// RD 1->0 (dovodi se na 8255A) |
4) |
1 |
0 |
1 |
1 |
// RD 0->1 (dovodi se na 8255A) |
Za trriger vektore se moze definisati
sekvenca u redosledu po kojem će se pojavljivati. Sekvenca je (0) (1) (2)
(3) (4).
Drugi način je pojedinačno upisivanje
trriger vektora.U ovom primeru
se koristi drugi način.
Primer #1.
Upisati u kontrolni registar. Port A - IN (mode 1), Port B: OUT (mode
0).
-
PC4 vezati na D/O15 ( simulira ulaz) .
-
D7-D0 vezati na D/O7-D/O0.
10110000 10001111
10110000 10001110
10110000 10001111
-
Pročitati RD, PC3, PC4,
PC5.
00000000 10010000
Primer #2.
-
Premesti D/O7-D/O0 na PA7-PA0.
11110000 10000011 // PC4 (strobe)=1
-
Upisati trigger vektor (1) 1000.
11110000 00000011 // 1->0
-
Izračunati vreme odziva PC4 (strobe
->IBF).
-
Pročitati RD, PC3, PC4
, PC5.
-
Upisati trigger vektor (2) 1011.
11110000 10000011 // PC4 0->1 (strobe)
-
Izračunati vreme odziva (strobe
->INTQ).
-
Pročitati RD, PC3, PC4,
PC5.
00001111 10000011 // promena sadržaja
na data ulazima
00001111 10000011
-
Upisati trigger vektor (3) 0111.
00001111 10000001 // RD 1->0
-
Izračunati vreme odziva ( RD->INTQ).
-
Pročitati RD, PC4, PC4,
PC5.
-
Upisati trigger vektor (4) 1011.
00001111 10000011 // 0->1
-
Izračunati vreme odziva ( RD->IBF).
-
Pročitati RD, PC3, PC4
, PC5, D7-D0.
00000000 00010000 // kraj