Obyektif
Peralatan
: 1. Modul FZ80CPU
2. Modul FZ80 I/O
3. DC Power Supply (regulated +5V)
Teori
FZ80 (Fukushima Zilog 80) adalah suatu mikrokomputer berbasis CPU Z84C00
yang didisain oleh N.HONDA seorang peneliti di Fukhusima Research Center, Jepang.
FZ80 dirancang khusus untuk mempelajari mikroprosesor beserta sistemnya.
FZ80 terbagi dalam dua papan utama. Satu adalah FZ80CPU dan FZ80PU.
FZ80PU adalah modul yang berisi kelengkapan standar dari suatu rangkaian berbasis
mikroprosesor, yaitu CPU, memory dan Peripheral Input/Output.
FZ80CPU dibentuk dari CPU, Memory, I/O Port, rangkaian control DMA, rangkaian
back-up battery dan rangkaian eksekusi step. Diagram Blok FZ80CPU ditunjukkan gambar
3.
Data-data FZ80CPU adalah :
1. Menggunakan CPU TMPZ84C00
2. Frekuensi Clock 4Mhz
3. Memory 64 Kilobytes (dalam IC soket 1&2). Memory RAM dilengkapi dengan
battery untuk mem-backup memory RAM selama tegangan supply dimatikan.
4. Tersedia 3 buah Port (A, B dan C) dari PPI8255 yang terdiri dari masing-masing 8
jalur. Port ini dapat diprogram sebagai input atau output.
5. Address bus dan data bus dilengkapi dengan LED yang bila menyala menunjukkan
jalur alamat atau data berada dalam logika 1.
6. Tersedia fasilitas untuk memasukkan / mengubah data di dalam RAM secara
langsung tanpa melibatkan CPU melalui fasilitas DMA.
7. Program yang sedang dijalankan dapat dideteksi langkah demi langkah dengan
mengatur kedudukan switch MERAH dan HITAM.
Bila FZ80CPU ini digunakan sendirian maka Operating System FZRTM tidak dapat
digunakan, karena FZRTM memerlukan keyboard dan LCD display. Dengan papan
FZ80CPU saja pemakai dapat menggunakannya sebagai system minimum dengan memory
maksimum 64 Kilobytes dan 3 buah Port I/O dari PPI8255. Tersedia juga fasilitas DMA
yang dapat digunakan untuk menuliskan/memasukkan data ke memory RAM secara
FZ80CPU memiliki tiga buah konektor, dua buah konektor untuk Port A, B dan C
dari PPI8255 dan sebuah konektor Amphenol 50 pin yang memiliki fungsi seperti
ditunjukkan tabel 1-1.
Gambar 1-4 menunjukkan bagian rangkaian CPU, rangkaian RESET dan rangkaian
clock dari FZ80CPU. Tiap bus dihubungkan ke konektor kabel flat 50 pin untuk
pengembangan ke rangkaian peripheral atau rangkaian eksternal lainnya.
CPU membutuhkan reset untuk re-start suatu program. Setelah reset ini diberikan,
nilai dari Program Counter di-set nol kembali, dan kemudian CPU memulai mengeksekusi
program dengan membaca instruksi yang ditulis di dalam memory alamat 0000H.
Rangkaian yang menghasilkan sinyal reset ini adalah bagian rangkaian yang terdiri dari
IC16 pada rangkaian gambar 1-4. Sebagai tambahan, reset juga dapat dilakukan melalui
reset eksternal pada conector CN1.
Fungsi
Sifat I/O
No.
Fungsi
Sifat I/O
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
+5V
Do
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
RD
WR
MREQ
IORQ
RFSH
MI
HALT
CLK
IN
IN/OUT
IN/OUT
IN/OUT
IN/OUT
IN/OUT
IN/OUT
IN/OUT
IN/OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
IN
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
46
48
40
42
44
46
48
50
+5V
INT
NMI
A8
A9
A10
A11
A12
A13
A14
A15
RESET
WAIT
GND
GND
IN
IN
IN
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
IN
IN
-
Gambar 1-4. Rangkaian Utama CPU Z80, Clock & Rangkaian Reset dilengkapi dengan
Battery Backup
Pembangkit Clock dioperasikan pada frekuensi 4 Mhz. Rangkaian ini terdiri dari
XTAL, sebuah gate IC16 (74HC00), sebuah gate IC13 (74HC04), C9 & C10, R3 dan R5.
Untuk pengoperasian pada 4 MHz ini CPU yang digunakan harus memiliki kemampuan
kerja yang setara. FZ80CPU dirancang untuk tipe CPU Z80A dari keluarga CMOS.
Meskipun demikian tidak tertutup kemungkinan untuk menggantinya dengan tipe Z80A
yang biasa dengan syarat frekuensi kerja diturunkan ke 2 MHz.
Rangkaian RESET dioperasikan dalam dua cara. Pertama, RESET beroperasi
sebagai Auto Reset Power ON. Bila tegangan supply diberikan, pada saat t=0dt C16 akan
terhubung singkat antar kaki-kakinya, sehingga kaki 2 dari IC 74HC00 mendapat logika
0, atau 1 setelah melewati NOT. Sedangkan kaki 1 mendapat logika 1, atau 0
setelah melewati NOT. Maka output kaki 3 akan 1. Setelah di NOT oleh IC6 pada kaki 3
akan berlogika 0. Vb men-supply logika 1, maka output OR kaki 11 akan 1 sehingga di
output kaki 6 menjadi 0. Logika 0 ini akan memicu Z80 ke kondisi RESET aktif.
Beberapa mikro/mili detik kemudian C16 akan terisi penuh melalui R11 dan R10. Dalsm
keadaan penuh tegangan di kaki C16 yang tidak berhubungan dengan Ground menjadi
tinggi dan men-supply kaki 2 C16 dengan logika 1, atau 0 setelah melewati NOT.
Karena kaki-kaki 1 dan 2 IC16 menjadi 0 semua maka output dari rangkaian RESET ini
akan berubah dari 0 ke 1, sehingga Z80 akan dipicu ke kondisi RESET non-aktif. Cara
RESET kedua adalah dengan menekan tombol RESET pada saat tegangan supply sudah
diberikan, atau rangkain dalam keadaan ON. Dengan menekan tombol ini muatan C16
dibuang sehingga di kaki 2 IC16 menjadi rendah. Tegangan ini cukup menyebabkan
perubahan output kaki 3 IC16 dari 0 menjadi 1, sehingga output rangkaian RESET akan
berubah ke 0 atau aktif. Beberapa mikro/mili detik kemudian kembali C16 diisi sampai
penuh. Bila penuh maka tegangan di kaki 2 IC16 menjadi tinggi kembali, sehingga RESET
kembali ke kondisi non-aktif.
c) RANGKAIAN MEMORY
Gambar 1-5 adalah rangkaian memory dari FZ80CPU. Soket IC memory yang tersedia
adalah soket IC1 dan IC2. Soket IC1 dapat diisi dengan RAM atau EPROM seperti
pada Tabel 1-2. Sedang soket IC2 hanya dapat diisi dengan RAM seperti tabel 1-3.
6116
1
1
1
6264
1
2
1
2
62256
2
1
2
2
2
TIPE EPROM
2732
2
1
2
2764
1
2
1
2
27128
1
2
1
2
2
27256
1
2
3
2
2
Tabel 1-3. Hubungan antara Setting Jumper dengan Pemilihan IC Memory soket IC2
TIPE RAM
Jumper
JP6
JP7
6116
1
1
6264
1
2
62256
2
2
Kapasitas
Memory
2 KB
8 KB
16 KB
4 KB
8 KB
16 KB
32 KB
Alamat Kerja
IC2
8000H 87FFH
8000H 9FFFH
Alokasi memory seperti Tabel 1-4 menunjukkan bahwa pemakai dapat menentukan
se-efisien mungkin penggunaan IC memory disesuaikan dengan panjang program yang akan
dimasukkan.
Untuk Operating System FZRTM oleh karena membutuhkan memory sekitar 17
KB, maka harus disimpan di IC EPROM 27256. Sisanya, (32-17) KB atau 15 KB ini masih
dapat digunakan untuk mengembangkan FZRTM dalam versi yang baru.
d) Rangkaian Input/Output (I/O)
FZ80CPU menggunakan PPI 8255 sebagai piranti Parallel Input Output seperti pada
gambar 1-6.
Alamat Kerja dari tiap Port PPI8255 dapat ditentukan dengan mengatur kedudukan
jumper JP9 seperti pada Tabel 1-5. Karena pada papan rangkaian FZ80CPU hanya terdapat
sebuah IC PPI8255 saja maka untuk aplikasi program cukup ditentukan sebuah kedudukan
saja yang tetap untuk memberikan kemungkinan persediaan 7 lokasi alamat yang lain dalam
hal pengembangan fasilitas I/O di luar papan rangkaian FZ80CPU.
Port A
80H
84H
88H
8CH
90H
94H
89HJ
9CH
Port A
81H
85H
89H
8DH
91H
94H
99H
9DH
Port A
82H
86H
8AH
8EH
92H
95H
9AH
9EH
Control Word
83H
87H
8BH
8FH
93H
96H
9BH
9FH
Fungsi
+5V
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
Gnd
Rangkaian display LED untuk alamat dan data pada FZ80CPU ditunjukkan gambar
1-7. Rangkaian ini berfungsi untuk menampilkan status atau isi setiap saat dari address dan
data bus. Rangkaian ini menggunakan 3 buah TTL IC Buffer 74HC240. Tiap output gate
74HC240 ini dihubungkan ke LED melalui R 360 . Display LED ini sangat berguna pada
saat FZ80CPU dikerjakan pada mode STEP, atau melakukan pengubahan/pengisian data
melalui proses DMA. Analisis STEP akan sering dilakukan untuk memeriksa satu-persatu
operasi dari suatu program.
Gambar 1-7. Rangkaian Display LED untuk Address Bus dan Data Bus
Gambar 1-8.
Rangkaian untuk
Operasi STEP
FZ80CPU dapat dioperasikan dalam dua mode, yaitu AUTO dan STEP. Pemilihan
operasi ini dapat dilakukan dengan mengatur kedudukan switch SW1 ke posisi AUTO atau
STEP. Posisi Auto menunjukkan bahwa CPU Z80 secara otomatis melaksanakan perintah
demi perintah berdasarkan kenaikan nilai Program Counter-nya. Bila di-set ke posisi STEP
maka setiap CPU melaksanakan sebuah perintah berdasarkan sebuah posisi Program
Counter, maka secara otomatis sebuah siklus Wait State ditambahkan pada akhir siklus
perintah yang telah dilaksanakan.
Rangkaian control AUTO dan STEP ini ditunjukkan gambar 1-8. Perhatikan bahwa
SWRS dan R3 membentuk rangkaian control BUSRQ. Bila SWRS ON maka BUSRQ
diberi sinyal non-aktif, sehingga CPU akan bekerja dalam posisi RUN. Bila SWRS OFF
maka CPU akan mendapat sinyal aktif BUSRQ sehingga CPU menghentikan proses
kerjanya, atau STOP.
Pada gambar 1-8, kombinasi sebuah flip-flop (74HC74: IC17), sebuah rangkaian
terpadu (dibentuk oleh C12 dan R6) dan sebuah NAND gate (IC16) menghasilkan sebuah
pulsa pendek sekitar 72 nano detik. Pulsa ini dihasilkan bila switch SWST ditekan.
WAIT akan aktif bila mendapat sinyal 0. Bila pada saat CPU sedang mengeksekusi
sebuah instruksi mendapatkan sinyal WAIT aktif, maka ia akan menunda penyelesaian
transfer data antara CPU dengan peripheral atau memory sampai CPU tersebut
mendapatkan kembali sinyal WAIT non-aktif. Bila rangkaian STEP diaktifkan, setiap kali
CPU mengeksekusi sebuah instruksi, M1 akan aktif (0). Melalui inverter IC16 akan
memicu input CK D Latch Flip-Flop sehingga output Q menjadi 0. Akibatnya WAIT
menjadi aktif. Bila SWST ditekan kemudian dilepaskan, sebuah pulsa 0 akan dihasilkan di
output NAND kaki No.6 yang dihubungkan ke CLR (output NAND kaki 6 adalah normally
high). Sehingga WAIT kembali non-aktif untuk beberapa nano-detik dan cukup
menyebabkan CPU bekerja kembali untuk mengeksekusi sebuah instruksi berikutnya. Bila
M1 aktif kembali, output Q D Latch Flip-flop akan rendah kembali, sehingga WAIT
menjadi aktif lagi. Demikian seterusnya.
Rangkaian penghasil sinyal pulsa aktif WAIT dibentuk oleh rangkaian debounce
switch dan sebuah D Latch Flip-flop. Untuk mengaktifkan rangkaian ini, JP8 harus
dihubung singkat, SWWT ditutup dan SWST ditekan. Switch SWST adalah push-botton
Contoh sederhana proses DMA pada percobaaan ini adalah pemanfaatan DMA
untuk melakukan proses penulisan data ke RAM 62256 secara manual. Address dan data
diatur secara manual dengan mengatur posisi-posisi switch address dan data. Bila switch
alamat (address) di-set ke atas, LED akan menyala dan menunjukkan logika satu. Bila ke
bawah, LED padam dan menunjukkan logika 0. Sedang pada switch data, posisi ke atas
menunjukkan logika 1, ke bawah menunjukkan logika 0. LED data ini tidak langsung
menunjukkan data yang diatur pada swict, tetapi begitu tombol WRITE ditekan yang
menunjukkan data yang diatur di switch dituliskan ke data bus atau ke RAM maka LED
akan menyala sesuai dengan data yang telah diatur melalui switches tersebut sebelumnya.
Dalam hal ini sebenarnya sinyal WR sudah nonaktif kembali, berlawanan dengan sinyal RD
yang menjadi aktif. Sehingga data yang ditunjukkan oleh susunan nyala LED adalah data
yang dibaca dari RAM yang sudah terisi tadi.
Rangkaian DMA pada FZ80CPU ditunjukkan pada gambar 1-11. Rangkaian terdiri
dari dua bagian. Bagian pertama, IC5, IC9 dan IC15 membentuk rangkaian switch address
dan data. Bila BUSAK nonaktif output IC5 dan IC9 akan tri-state.
Sedang bila BUSAK aktif, logika pada address switch akan di-buffer ke output yang
dalam hal ini berarti sedang terjadi suatu proses pengalamatan langsung dari address switch
ke address bus tanpa melalui CPU. IC15 yang membentuk rangkaian data switch akan aktif
atau outputnya tidak tri-state bila pin 19 diaktifkan, sama seperti pada IC5 dan IC9. Data
yang di-set pada switch dipersiapkan untuk diisikan ke data bus. Bagian kedua adalah
rangkaian debounce switch yang membentuk rangkaian kontrol write manual. Output dari
rangkaian debounce switch yang memiliki logika berlawanan masing-masing dihubungkan
ke jalur WR dan RD. Output ini akan mengisi logika WR atau RD bila IC19 diaktifkan
dengan member logika 0 pada pin 19. Dalam hal ini pin 19 dari IC19, IC5 dan IC9
bersama-sama dihubungkan ke jalur BUSAK, yang maksudnya bila CPU sudah
memberitahu bahwa CPU bus menjadi tri-state dengan memberikan indicator BUSAK pada
0 maka proses DMA dari address switch ke address bus dan proses DMA dari sinyal
kontrol WRITE secara manual sudah dapat dilakukan. Pada saat ini bila tombol WRITE
ditekan, output pin 3 akan 0, sehingga output IC7 akan 0 dan mengaktifkan rangkaian
data switch. Dengan demikian proses DMA dari data switch ke data bus berlangsung.
Begitu tombol WRITE dilepas, output IC16 akan tri-state kembali, jalur WR menjadi 1
dan jalur RD menjadi 0. LED data akan menyala, menunjukkan bahwa data sudah terisi ke
alamat yang ditunjukkan oleh nyala LED alamat. Selanjutnya data switch dan address
switch dapat diatur
untuk
proses
pengisian
data
berikutnya.
Gambar 1-
12.
Rangkaian Modul FZ80I/O
Peralatan
1. Modul FZ80CPU
2. Modul FZ80 I/O
3. DC Power Supply