EMBEDDED SISTEM I
PROGRAM STUDI S1 ELEKTRONIKA DAN INSTRUMENTASI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2009
Daftar Isi
Prologue Fitur dalam FPGA Objective Uji Kasus Step 1 Frequency Divider Step 2 Scankey Step 3 Register Step 4 Processing Unit A. Calculator B. Digital Lock C. Digital Watch Step 5 Control Unit A. Calculator B. Digital Lock C. Digital Watch Step 6 Build System A. Calculator B. Digital Lock C. Digital Watch
Gambar 0.3 elemen suatu sistem Terdapat berbagai sistem yang dapat dirancang dan dikembangkan, namun disini hanya akan dibatasi menjadi 3 sistem saja, yaitu: 1. Kalkulator Dengan ketentuan : a. Tipe data : Signed Integer 8 bit b. Operasi : adder, subtractor, shift left, shift right dan invers c. Input : matriks key d. Output : 6 x seven segment (LCD) 2. Kunci Digital Dengan ketentuan : a. Fungsi : membuka kunci b. Input : matriks key c. Output : 6 x seven segment (LCD), buzzer 3. Jam Digital Dengan ketentuan : a. Fungsi : Jam / stop watch / count down b. Input : matriks key, dip-switch, push button c. Output : 6 x seven segment (LCD)
Gambar 0.6 sistem jam digital Dari ketiga sistem tersebut terdapat beberapa bagian yang sama, yaitu : 1. 2. 3. 4. 5. Frequency Divider (Pembagi Frekuensi) Matrix button scankey LCD Control Register Control Unit (berbeda untuk tiap sistem)
Control unit, adalah bagian terpenting dalam sistem yang berfungsi mengatur instruksi dan data dalam sistem. Ketiganya menggunakannya namun memiliki struktur dan fungsi yang berbeda. Frequency divider dan LCD control merupakan bagian dari control unit. Sedangkan bagian yang berbeda adalah bagian processing unit, pada bagian kalkulator dibutuhkan ALU. Sedangkan pada kunci digital dibutuhkan komparator. Pada jam digital dibutuhkan counter 6 x 4 bit.
Gambar 1.1 waveform frequency divider 32 Sehingga untuk mendapatkan frekuensi 1Hz dan 1kHz dari internal clock 9,6MHz dibutuhkan counter 9.600.000 dan counter 9.600.
Membuat Frequency Divider Untuk membuat sebuah frequency divider dengan nilai yang besar, dibutuhkan sebuah counter dengan nilai yang besar.pula. Tentu saja untuk membuat counter sebesar itu dengan cara yang bisaa (truth table) akan sangat menyulitkan. Namun perancangan ini dapat dipermudah dengan menggabungkan beberapa counter sinkron secara ripple/asinkron (combined counter). Prinsipnya adalah penggabungan counter secara ripple akan meng-kalikan nilai-nilai dari masing-masing counter. Pada gambar 1.2 adalah sebuah counter yang terdiri dari counter sinkron sebanyak n tersambung secara asinkron. Nilai counter yang dihasilkan adalah s(1)*s(2)*s(3)**s(n).
Gambar 1.2 combined counter Bila terdapat 4 counter dengan nilai-nilai : s(1) = 8, s(2)=12, s(3)=10, s(4)=10 Maka akan didapat sebuah counter 8*12*10*10 = 9.600 Dengan memecah counter menjadi counter-counter yang lebih kecil akan mempermudah perancangan frequency divider. Lebih mudah untuk membuat counter 4 bit sebanyak n daripada langsung merancang counter n bit, namun cara ini akan mengurangi akurasi nilai counter karena menggunakan faktor pengali (skala).
Sinyal baca
Pada setiap tombol, apabila tidak ditekan maka akan meneruskan tegangan high. Sedangkan bila ditekan maka tegangan row akan diteruskan ke column. Pada gambar a, tombol dalam matriks tidak ditekan sama sekali dan didapatkan sinyal hasil 1111. Gambar b dan c adalah proses yang terjadi bila salah satu tombol dari baris yang mendapat tegangan low ditekan. Gambar d dan e menunjukkan bila tombol yang tidak mendapatkaan tegangan low ditekan. Gambar a, d dan e menghasilkan sinyal hasil 1111.
Sinyal baca akan terus diberikan dari 0111 1011 1101 1110 0111 dst. (seperti pada table 2.1)
Masukan (read) Baris (1..4) xxxx 0111 0111 0111 0111 1011 1011 1011 1011 1101 1101 1101 1101 1110 1110 1110 1110 Keluaran (result) Kolom (1..4) 1111 0111 1011 1101 1110 0111 1011 1101 1110 0111 1011 1101 1110 0111 1011 1101 1110 Tombol Tidak ada yang ditekan / salah 0 (1) 1 (2) 2 (3) 3 (enter) 4 (4) 5 (5) 6 (6) 7 (cancel) 8 (7) 9 (8) A (9) B (esc) C (*) D (0) E (#) F (spc) Key Code 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Tabel 2.1 tabel data scankey Dengan melihat cara kerja sistem scankey, komponen yang diperlukan untuk membuat scankey 4x4 adalah : 1. 2. 3. 4. Pembuat sinyal baca, yang dapat berupa decoder 2 ke 4 Pembaca sinyal hasil baca, yang dapat berupa encoder 4 ke 2 Counter 4, sebagai masukan decoder Push/flags detector, untuk mengecek ada tidaknya tombol yang ditekan.
Praktikum Buatlah sebuah scankey dengan ketentuan : 1. Masukan : 1bit clock 1kHz, 4 bit result signal 2. Keluaran : 4 bit read signal, 4 bit key code, 1 bit flags 3. Sambungkan output key code dengan led atau seven segmen Contoh skematik scankey
Gambar 2.5 contoh library dari skema ! pisahkan library scankey dengan library frekuensi divider !pencacah, decoder dan encoder dapat menggunakan IC maupun gerbang dasar
Step 3 Register
Register merupakan salah satu jenis memori sementara. Perbedaan dengan sebuah memori adalah pada memori digunakan mode pengalamatan (address), karena memori berfungsi menyimpan banyak data dengan lokasi tertentu. Sedangkan pada segister tidak digunakan mode addressing, karena register hanya berfungsi menyimpan data sementara pada tujuan khusus. Register geser (shift register) merupakan jenis register yang memiliki kemampuan menggeser bit-bit datanya, baik geser kanan maupun geser kiri. Contoh penggunaan shift register digambarkan pada gambar 3.1. pada bagian kiri adalah tampilan lcd sebuah kalkulator, dimana setiap kita menekan tombol akan disimpan hingga mecapai batas orde tertentu, contoh yang lainnya adalah melakukan pembagian atau perkalian, dengan melakukan geser kiri (ke MSB) akan menaikkan orde data, sedangkan menggeser ke kanan (ke LSB) akan menurunkan orde data.
Gambar 3.1 contoh penggunaan shift register Berdasarkan masukannya dan keluarannya register dibagi beberapa macam yaitu : Serial In Serial Out (SISO)
Gambar 3.3 contoh shift register SIPO Paralel In Serial Out (PISO)
Gambar 3.4 contoh shift register PISO Paralel In Paralel Out (PIPO)
Praktikum Buatlah shift register SIPO 6 bit, dengan ketentuan : 1. Memiliki fungsi reset, enable dan clock 2. lebar data tiap-tiap masukan dan keluaran 4 bit
Tugas Hubungkanlah dengan scankey yang dibuat sebelumnya dengan shift-register yang anda buat, dan tampilkan dalam seven segmen !