TUGAS AKHIR APLIKASI I2C BUS UNTUK KOMUNIKASI TELEVISI DENGAN PC PADA PROSES BACA-TULIS EEPROM
Disusun Oleh : Nama : Uswatun Hasanah NIM : 41405110-151
PEMINATAN TEKNIK TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCUBUANA JAKARTA 2007
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini,
Nama
:
USWATUN HASANAH
NIM
:
41405110151
Jurusan
:
Teknik Elektro
Fakultas
:
Teknologi Industri
Judul Skripsi
:
Aplikasi I2C Bus untuk Komunikasi antara PC dan TV pada Proses Baca-Tulis EEPROM
Dengan ini menyatakan bahwa hasil penulisan Skripsi yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata dikemudian hari penulisan Skripsi ini merupakan hasil plagiat atau penjiplakan terhadap karya orang lain, maka saya bersedia mempertanggungjawabkan sekaligus bersedia menerima sanksi berdasarkan aturan tata tertib di Universitas Mercu Buana. Demikian, pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.
Penulis,
Uswatun Hasanah
ii
LEMBAR PENGESAHAN APLIKASI I2C BUS UNTUK KOMUNIKASI ANTARA PC DAN TV PADA PROSES BACA-TULIS EEPROM
Disusun Oleh : Nama
: USWATUN HASANAH
NIM
: 41405110151
Program Studi
: Teknik Elektro
Peminatan
: Teknik Telekomunikasi
Menyetujui,
Pembimbing
Koordinator TA
( Ir. Said Attamimi )
( Ir. Yudhi Gunardi, MT )
Mengetahui, Ketua Program Studi Teknik Elektro
(Ir. Budiyanto Husodo, M.sc)
iii
ABSTRAKSI APLIKASI I2C BUS UNTUK KOMUNIKASI TELEVISI DENGAN PC PADA PROSES BACA-TULIS EEPROM
Perkembangan dunia elektronik semakin pesat menuntut adanya peningkatan mutu. Desain yang simpel, ringkas dan fleksibel dengan dukungan teknologi tinggi selalu menjadi harapan. Pada proses desain, sebelum barang elektronika diproduksi secara massal, singkatnya waktu desain sampai proses pengecekan menjadi hal yang sangat penting untuk dipertimbangkan. Karena waktu pengerjaan serta kualitas akan berpengaruh sekali terhadap laba perusahaan. Dalam dunia industri televisi proses desain secara garis besar bisa dibagi menjadi desain mekanik dan desain elektrik. Pengecekan EEPROM adalah salah satu bagian dari proses desain elektrik. Sebelum diproduksi massal, performansi dan kualitas harus dicek terlebih dahulu. Proses pengecekan EEPROM bisa dilakukan berkali-kali dengan melepas EEPROM pada board TV untuk dibaca pada alat pembaca EEPROM dan kemudian memasangkan kembali. Tentunya hal ini menghabiskan banyak waktu dan bisa merusak board TV. Metode I2C bus dirancang untuk memecahkan persoalan ini. Dengan alat yang simpel berupa kabel yang disebut kabel I2C bus, proses pembacaan dan penulisan EEPROM sebagai upaya pengecekan bisa dilakukan tanpa melepas EEPROM dari board TV, melainkan dengan menyambungkan PC dengan port TV dan kedua device ini akan dikomunikasikan melalui I2C bus. Bahasa Pemrograman simpel Visual Basic digunakan untuk menampilkan hasil pembacaan dan penulisan EEPROM.
iv
KATA PENGANTAR
Puji syukur Penulis panjatkan ke Hadirat Allah SWT yang telah melimpahkan rahmat, nikmat dan hidayah-Nya kepada Penulis, sehingga Tugas Akhir yang berjudul “ APLIKASI I2C BUS UNTUK KOMUNIKASI ANTARA TELEVISI DAN PC PADA PROSES BACA TULIS EEPROM “ bisa diselesaikan. Tugas Akhir ini dirancang untuk memberikan alternatif membaca dan menulis EEPROM pada televisi yang lebih simpel, yaitu dengan menghubungkan televisi dengan PC melalui suatu kabel yang disebut kabel I2C bus. Aplikasi ini dibuat untuk digunakan pada sisi pengecekan EEPROM TV sebelum diproduksi massal. Keuntungan yang diperoleh dengan cara ini adalah proses yang lebih sederhana, waktu yang lebih singkat dan tidak merusak board televisi karena tidak lagi melepas dan memasang EEPROM berkali-kali dari boardnya dan membacanya di suatu alat yang disebut EEPROM Reader/Writer. Dalam menyelesaikan Tugas Akhir ini, Penulis banyak mendapatkan bantuan dan dukungan dari berbagai pihak. Oleh karena itu, Penulis ingin menyampaikan terima kasih kepada : 1. Bapak Ir. Budiyanto Husodo selaku Ketua Program Stusi Teknik Elektro Universitas Mercubuana 2. Bapak Said Attamimi yang telah meluangkan waktu untuk membimbing dan banyak memberikan saran sampai terselesaikanya tugas akhir ini 3. Bang Harry, atas banyak bantuan, dukungan dan do'anya. Melalui apa yang Abang berikan selama ini, akhirnya Nyus bisa selesaikan tugas akhir dengan lebih banyak kemudahan 4. Bapak& Ibu, Mama & Papa mertua, dan seluruh Keluarga besar Kediri dan Jakarta atas dukungan dan do'anya 5. Bapak Istakhry Malik dan rekan-rekan Design Engineering
dari PT.
Sanyo Electronics Indonesia atas bantuan referensi, dan penjelasanya yang sangat memberikan pencerahan dalam pengerjaan tugas akhir ini
v
Semoga tugas akhir ini memberikan manfaat bukan hanya untuk penulis dan pembaca, tetapi juga untuk kemajuan dunia elektronik. Penulis menyadari, bahwa pada tugas akhir ini masih terdapat kekurangan baik yang penulis sadari karena keterbatasan penulis maupun yang tidak penulis sadari. Oleh karena itu, penulis mengharapkan saran serta kritik demi pengembangan teknologi I2C bus khususnya dan dunia elektronika pada umumnya. Sehingga tugas akhir ini bisa menjadi referensi yang akurat dan lebih bermanfaat.
Jakarta, Desember 2007 Penulis,
Uswatun Hasanah
vi
DAFTAR ISI
HALAMAN JUDUL
i
LEMBAR PERNYATAAN
ii
LEMBAR PENGESAHAN
iii
ABSTRAKSI…………..…………………………………………………….........
iv
KATA PENGANTAR ……………………………………………………............
v
DAFTAR ISI ………………………………………………………………..........
vii
DAFTAR TABEL …………………………………………………………..........
ix
DAFTAR GAMBAR ………………………………………………………..........
x
BAB I PENDAHULUAN 1. 1 Latar Belakang ………………………………………...................
1
1. 2 Tujuan Penulisan........................................……………................
2
1. 3 Perumusan Masalah ………………...………………....................
2
1. 4 Batasan Masalah ……...…………………………….....................
2
1. 5 Metodologi Penulisan .............. …………………….....................
2
1. 6 Sistematika Penulisan.…………...……………….........................
3
BAB II DASAR TEORI 2.1 Konsep I2C………………………………………...........................
4
2.1.1 Cara Kerja I2C Bus……………...........................................
6
2.1.2 Karakter Hardware……………….......................................
6
2.1.3 Karakter Transfer Data dan Pensinyalan………..................
7
2.2 EEPROM…………………………….. ……………......................
10
2.2.1
Cara Kerja……………………………………....................
12
2.2.2
Operasi Write…………………………………...................
13
2.2.3
Operasi Read…………………………………....................
14
BAB III PERANCANGAN 3.1 Umum……………………………………………..........................
17
3.2 Perancangan Hardware…………………........................................
18
3.3 Perancangan Software......................................................................
20
3.4 Perancangan Komunikasi dan Tampilan……..................................
23
vii
BAB
IV PENGUJIAN KOMUNIKASI TELEVISI DENGAN PC PADA PROSES BACA – TULIS EEPROM 4.1 Umum………………….....................................................……….
26
4.1.1 Program Tulis ……………………………………………….
26
4.1.2 Program Baca ……………………………………………….
26
4.2 Alat Uji yang digunakan .......................................………………..
27
4.3 Instalasi ...........................................................................................
29
4.4 Data EEPROM ................................................................................
30
4.5 Pengujian .........................................................................................
32
4.5.1 Operasi Tulis ………………………………………………..
34
4.5.2 Operasi Baca ………………………………………………..
40
BAB V KESIMPULAN DAN SARAN 5.1
Kesimpulan …………………................................................
45
5.2
Saran …………………...…………………...........................
45
DAFTAR PUSTAKA
46
LAMPIRAN
47
viii
DAFTAR TABEL Hal
Tabel 2.1 Tabel 2.2
Konfigurasi pin EEPROM
11
Kebutuhan Pin Address Input pada masing-masing Ukuran EEPROM
12
Tabel 3.1
Kebutuhan Spesifikasi PC
21
Tabel 3.2
Alamat Port Paralel
21
ix
DAFTAR GAMBAR Hal
Gambar 2.1
Sistem Kontrol pada TV dengan I2C bus
4
Gambar 2.2
Konfigurasi Master – Slave
5
Gambar 2.3
Kondisi Sinyal START dan STOP
7
Gambar 2.4
Sinyal START dan STOP
7 2
Gambar 2.5
Sinyal Acknowledge pada I C bus
8
Gambar 2.6
Proses Transfer Data
9
Gambar 2.7
Penampang EEPROM
10
Gambar 2.8
Device Address EEPROM
12
Gambar 2.9
Byte Write
13
Gambar 2.10
Proses Byte Write
14
Gambar 2.11
Current Adress Read
15
Gambar 2.12
Random Address Read
15
Gambar 2.13
Sequential Read
16
Gambar 3.1
Komunikasi PC dengan TV melalui kabel I2C bus
17
Gambar 3.2
I2C board
18
Gambar 3.3
Konfigurasi Slot DB 25 Female
19
Gambar 3.4
Konfigurasi Kabel I2C bus
20
Gambar 3.5
Langkah-langkah Melihat Alamat Paralel Port
22
Gambar 3.6
Tampilan Printer Port Properties
23
Gambar 3.7
Skema Pengoperasian Sistem
24
Gambar 3.8
Cara Komunikasi Master – Slave
25
Gambar 4.1
Tampilan VB – EEPROM RW
27
Gambar 4.2
Kabel I2C
28
Gambar 4.3
I2C Board
28
Gambar 4.4
I2C Bus analyzer YOKOGAWA DL 1740
29
Gambar 4.5
Diagram Instalasi Sistem
29
x
Gambar 4.6
Instalasi saat Pengujian
30
Gambar 4.7
Hasil Pengujian Sinyal START
33
Gambar 4.8
Hasil Pengujian Sinyal STOP
34
Gambar 4.9
Operasi Penulisan per Sub Address pada Program EEPROM R/W
35
Gambar 4.10
Hasil Pengujian Operasi Write per Sub Address
36
Gambar 4.11
Frame Operasi Tulis per Sub Address
37
Gambar 4.12
Operasi Penulisan per Bank
38
Gambar 4.13
Hasil Pengujian Operasi Tulis per Bank
39
Gambar 4.14
Operasi Baca per Sub Address
41
Gambar 4.15
Hasil Pengujian Operasi Baca per Sub Address
41
Gambar 4.16
Operasi Baca per Bank
43
Gambar 4.17
Hasil Pengujian Operasi Baca per Bank
43
Gambar 4.18
Frame Operasi Baca
44
xi
DAFTAR LAMPIRAN
Lampiran A : Flowchart Program Lampiran B : Listing program
xii
BAB I PENDAHULUAN
1. 1
Latar Belakang
Pada saat ini semua desain elektronik dituntut untuk semakin simpel, ringkas dan fleksibel dengan didukung teknologi tinggi . Fleksibilitas pemakaian, serta kemudahan dalam proses desain dan produksinya menjadi salah satu tolak ukur pemilihan suatu teknologi. Dalam proses desain sebagai bagian dari proses produksi, waktu yang dibutuhkan untuk perancangan, pengecekan dan waktu produksi merupakan suatu hal yang perlu dipertimbangkan. Seperti pada perancangan Televisi Sanyo, proses pengecekan baca-tulis EEPROM
harus dilakukan berkali-kali agar dapat dipastikan tidak terjadi
kesalahan atau penyimpangan saat EEPROM membaca dan menulis, karena kesalahan pada EEPROM akan berakibat fatal. Dan hal ini akan memerlukan waktu yang lama bila alat yang digunakan tidak mendukung. Oleh karena itu pada Tugas akhir yang berjudul Aplikasi I2C Bus untuk Komunikasi Antara PC dan TV pada Proses Baca-Tulis EEPROM ini akan dirancang suatu metode baca-tulis EEPROM melalui kabel I2C bus sebagai alternatif baca-tulis EEPROM TV dengan cepat dan mudah untuk digunakan dengan hasil pembacaan dan penulisan EEPROM bisa dilakukan dengan menghubungkan jalur data TV ke PC dengan bantuan software. Jadi dengan I2C bus ini baca-tulis EEPROM akan lebih mudah dikerjakan tanpa melepas EEPROM dari PCB Board TV yang kemudian membacanya di EEPROM Writer Board.
1
2
1. 2 Tujuan penulisan Tujuan penulisan Tugas akhir ini adalah untuk merancang komunikasi antara PC dan TV dengan menggunakan teknologi I2C Bus , yang selanjutnya dengan terbangunnya komunikasi ini, EEPROM TV bisa dibaca dan ditulis melalui PC dengan bantuan software. Dan dengan terlaksananya proses baca-tulis EEPROM TV melalui PC ini diharapkan akan memudahkan proses desain dan pembuatan TV, khususnya pada tahap pengecekan EEPROMnya.
1. 3
Perumusan Masalah Dalam Tugas Akhir yang berjudul Aplikasi I2C Bus untuk komunikasi
antara PC dan TV pada proses baca-tulis EEPROM ini ada beberapa masalah yang menjadi rumusan, antara lain : •
Bagaimanakah komunikasi antara PC dengan TV bisa dibangun dengan I2C bus ?
•
Bagaimanakah cara PC membaca dan menulis EEPROM TV ?
•
Keuntungan apa yang diperoleh melalui perancangan ini ?
1. 4
Batasan Masalah Dalam penulisan tugas akhir ini, masalah yang akan dibahas akan dibatasi.
Batasan-batasan masalah yang dimaksud, antara lain : •
Membahas perancangan I2C bus sebagai media komunikasi antara PC dan TV
•
Membahas cara I2C bus berkomunikasi
•
Tidak membahas performansi TV dan PC
•
Tidak membahas software PC yang digunakan dalam penampilan data EEPROM
1. 5
Metodologi Penulisan Untuk memperoleh keakuratan data dan teori dari tugas akhir ini, akan
dilakukan metodologi Gabungan melalui Studi Pustaka dan Studi Lapangan yang dilakukan di PT. Sanyo Electronics Indonesia.
3
1. 6
Sistematika Penulisan Berikut ini akan diberikan gambaran dari penulisan Tugas akhir, antara
lain : Bab I
PENDAHULUAN Menguraikan latar belakang penulisan, rumusan masalah, batasan masalah, tujuan penulisan, metodologi san sistematikan penulisan.
Bab II
LANDASAN TEORI Menjelaskan tentang konsep I2C bus dan spesifikasinya serta sedikit menjelaskan tentang rangkaian Pesawat Televisi.
Bab III
PERENCANAAN Merupakan uraian yang berisi proses perancangan kabel I2C bus sebagai media komunikasi antara PC dengan TV untuk proses bacatulis EEPROM dan I2C bus mengkomunikasikan satu sama lain.
Bab IV
PEMBAHASAN Membahas data dari perancangan komunikasi yang dibangun oleh I2C bus dan hasil yang diperoleh dari rancangan tersebut.
Bab V
PENUTUP Bagian ini berisi Kesimpulan dari hasil yang didapatkan dari perancangan serta saran yang dapat berguna untuk perkembangan teknologi selanjutnya.
BAB II DASAR TEORI
I2C Bus (dibaca aiskasi ) atau bisa juga ditulis dengan IIC adalah kepanjangan dari Inter-Intergrated circuit. I2C ini dikembangkan oleh Philips Semiconductor sejak tahun 1992 dengan konsep komunikasi serial 2 arah. .
2.1
Konsep I2C I2C bus merupakan metode komunikasi 2 arah antar IC atau antar sistem
secara serial menggunakan 2 kabel. Sistemnya terdiri dari 2 saluran yaitu SCL ( Serial clock ) dan SDA ( Saluran data ). SDA membawa informasi data antara IC dengan pengontrolnya ( PC ). Piranti yang dihubungkan dengan sistem I2C bus ini dapat berperan sebagai master dan slave. Sebagai contoh, televisi menggunakan sebuah fungsi microcontroller yang akan mengontrol beberapa fungsi dengan menggunakan metode I2C bus. Microcontroller tersebut akan mengontrol system audio, video, memori dan beberapa fungsi lainya. Maka, microcontroller tersebut akan berperan sebagai master dan yang lainya akan berfungsi sebagai slave.
Gambar 2.1 Sistem Kontrol pada TV dengan I2C bus
4
5
Master adalah piranti yang memulai transfer data dengan membentuk sinyal START, membangkitkan sinyal clock dan mengakhiri data dengan membentuk sinyal STOP. Sedangkan slave adalah piranti yang dialamati oleh master, dan memberikan tanggapan atas request dari master.
START DATA STOP
M A S T E R
CLOCK
ACK / NACK DATA
S L A V E
Gambar 2.2 Konfigurasi Master-Slave I2C bus memiliki fitur-fitur utama, antara lain : a.
Dalam pengiriman datanya, I2C bus hanya melibatkan 2 kabel, yaitu SDA dan SCL.
b.
Setiap IC/piranti yang terhubung dengan I2C memiliki alamat yang dapat diakses secara software dengan master/slave protocol sederhana dan mampu mengakomodasikan multimaster.
c.
I2C merupakan serial bus dengan orientasi data 8 bit ( byte ), komunikasi 2 arah dengan kecepatan transfer data sampai 100Kbit/s pada mode standart dan 3,4 Mbit/s pada mode kecepatan tinggi.
d.
Jumlah IC yang dapat dihubungkan pada I2C bus hanya dibatasi oleh beban kapasitansi pada bus yaitu maksimum 400 pF.
6
2.1.1 Cara Kerja I2C bus Sebelum memahami cara kerjanya, ada beberapa terminologi, karakter dan kondisi penting dalam I2C yang perlu dipahami terlebih dahulu, yaitu : a.
Terminologi Ada beberapa terminologi dalam proses pengiriman data yang perlu diketahui,
antara lain : •
Transmitter yaitu perangkat yang mengirimkan data ke bus
•
Receiver yaitu perangkat yang menerima data dari bus
•
Master yaitu perangkat yang memiliki inisiatif ( memulai dan mengkahiri ) transfer data dan yang membangkitkan sinyal clock.
•
Slave yaitu perangkat yang dialamati oleh master ( yang akan diakses berdasarkan alamatnya
•
Multi-master yaitu sisten yang memungkinkan lebih dari 1 master yang melakukan inisiatif transfer data dalam waktu yang bersamaan tanpa terjadi korupsi data
•
Arbitration yaitu prosedur yang memastikan bahwa jika ada lebih dari 1 master melakukan inisialisasi transfer data, maka hanya akan ada 1 master yang dapat diperbolehkan dengan tanpa ada kecacatan pada data yang ditransfer
•
Syncronization yaitu prosedur untuk menyelaraskan sinyal clock dari 2 atau lebih perangkat
2.1.2
Karakter Hardware Seperti yang sudah dijelaskan pada point sebelumnya, bahwa I2C merupakan
komunikasi serial 2 kabel. Maka perangkat keras I2C terdiri dari 2 pin yaitu pin data ( SDA ) dan pin clock ( SCL ) yang keduanya harus memiliki kemampuan Input / Output serta bersifat open drain/open collector. Kedua pin yang dimiliki I2C bus ini harus terhubung dengan busnya dengan cara di pull-up dengan resistor ke suplay
7
tegangan positif dari sistem. Dan semua perangkat yang terhubung pada bus harus memiliki jalur ground yang sama sebagai referensi.
2.1.3
Karakter Transfer Data dan Pensinyalan Data bit dikirim dan diterima melalui SDA, sedangkan sinyal clock
dikirim/diterima melalui SCL. Dalam setiap transfer data bit, satu sinyal clock dihasilkan dan transfer data dianggap valid jika data bit pada SDA tetap stabil selama sinyal clocknya high. Sehingga data bit hanya boleh berubah jika sinyal clock dalam kondisi Low.
Gambar 2.3 Kondisi S inyal START dan STOP
Bila data berubah dari kondisi high ke low pada saat clock dalam kondisi high, kondisi ini akan dianggap sebagai sinyal START. Dan sebaliknya, bila data berubah dari kondisi low ke high pada saat kondisi clocknya high, maka akan dianggap sebagai sinyal STOP. Kondisi START dan STOP ini selalu dibangkitkan oleh perangkat yang berperan sebagai master.
DATA VALID
PERUBAHAN DATA YANG DIPER BOLEHKAN
Gambar 2.4 Sinyal START dan STOP
8
Dalam melakukan transfer data pada I2C Bus, harus mengikuti prosedur yang telah ditetapkan, yaitu transfer data hanya dapat dilakukan ketika bus tidak dalam keadaan sibuk, yaitu saat setelah START dan dikatakan bus dalam keadaan bebas setelah STOP. DATA DARI TRANSMITTER NACK DATA DARI RECEIVER ACK SCL DARI MASTER PULSA CLOCK ACK
Gb.2.5 Sinyal Acknowledge pada I2C bus
Selain sinyal START dan STOP, terdapat sinyal acknowledge yang biasa disingkat ACK. ACK merupakan sinyal yang memberikan tanggapan atau report atas berhasil tidaknya pentransmisian data. Setelah transfer data oleh master berhasil diterima oleh slave, slave akan menjawabnya dengan mengirim sinyal ACK yaitu dengan membuat SDA menjadi "0" selama siklus clock ke 9 ( transmisi 8 bit ). Hal ini menunjukkan bahwa slave telah menerima 8 bit data dari master. Secara detail bisa dituliskan bahwa, Sinyal ACK akan dikirimkan bila : Dari Slave ke Master Transmitter : •
Sesudah address byte diterima dengan baik oleh slave
•
Setiap kali slave selesai menerima data byte dengan baik
9
Dari Master Receiver ke Slave : •
Setiap kali master selesai menerima data byte dengan baik
Bila ACK merupakan tanggapan positif, yang akan dikirimkan setiap transfer data berjalan dengan baik dengan kondisi data yang sampi ke slave dengan baik. Maka terdapat pula NACK yaitu negative acknowledge. Dan secara detail akan dituliskan juga saat-saat NACK dikirimkan.
Dari Slave ke Master Transmitter : •
Setelah slave gagal menerima address byte dengan baik
•
Setiap kali slave gagal menerima data byte dengan baik
•
Slave tidak terhubung pada bus
Dari Master Receiver ke Slave : •
Setelah master menerima data byte yang terakhir dari slave. I2C bus bisa bekerja pada format transmisi 7 bit addressing dan format 10 bit
addressing. Inisiatif komunikasi/transfer data selalu oleh master dengan mengirimkan sinyal START diikuti dengan address byte ( 7 bit address + 1data direction bit ), yang akan diilustrasikan pada gambar dibawah ini.
Gb. 2.6 Proses transfer data
10
Dalam proses komunikasinya I2C bus memiliki 2 jenis komunikasi dasar, yaitu master sebagai transmitter menulis data ke slave sebagai receiver yang sudah teralamati. Dan yang kedua, master sebagai receiver membaca data dari slave yang berperan sebagai transmitter yang teralamati.
2.2 EEPROM EEPROM adalah salah satu jenis ROM ( Read Only Memory ) yang mempunyai kemampuan untuk menyimpan data dan merupakan jenis Non Volatile Memory. EEPROM adalah kepanjangan dari (Electrical Erasable Programmable Read Only Memory ). EEPROM dapat diprogram dan dihapus untuk dapat dipakai kembali. Penghapusan data EEPROM menggunakan aliran listrik.
Gb 2.7 Penampang EEPROM
Ukuran EEPROM dinyatakan dalam byte dan nomor pada EEPROM merefleksikan ukuranya. Sebagai contoh
AT24C02A ini berarti EEPROM
mempunyai ukuran 2KB, AT24C04A berarti 4KB, AT24C08A berarti 8 KB dan AT24C16A untuk 16 KB. EEPROM terdiri atas beberapa pin, antara lain pin alamat input ( address input ), pin SDA , pin SCL, pin WP ( Write Protect ), pin Ground dan pin VCC.
11
Tabel 2.1 Konfigurasi Pin EEPROM
PIN
DESKRIPSI
A0 – A2
Address Input
SDA
Serial Data
SCL
Serial Clock
WP
Write protect
NC
No - Connect
Masing-masing pin mempunyai peran yang berbeda-beda, dan dapat dideskripsikan sebagai berikut : a. Pin SCL
: merupakan pin yang digunakan sebagai jalur clock
b. Pin SDA
: merupakan pin bidirectional yang digunakan sebagai jalur data. Pin ini bersifat
open drain dan berlogika OR dengan beberapa
perangkat open drain/open collector. c. Pin WP ( Write Protect ) : Pin ini menyediakan proteksi terhadap data hardware yang bekerja pada operasi read/write saat dihubungkan dengan Ground. Sedangkan bila
dihubungkan dengan VCC, pin WP ini
tidak akan bekerja d. PIN address input : Pin ini berjumlah tiga, yaitu A2,A1,A0. Pin ini digunakan untuk menentukan device address input. Penggunaan pin address input ini berbeda-beda untuk setiap ukuran EEPROM.
12
Tabel 2.2 Kebutuhan Pin address input pada masing-masing ukuran EEPROM Jenis EEPROM
Ukuran
Pin
EEPROM 2K
32 Pages, 8 Byte
A2, A1,A0
EEPROM 4K
32 Pages, 16 Byte
A2, A1
EEPROM 8K
64 Pages, 16 Byte
A2
EEPROM 16K
128 Pages, 16 Byte
N/A
2.2.1 Cara Kerja Pin SDA secara normal berada pada kondisi high. Data pada pin SDA diperbolehkan berubah dari kondisi high ke low atau sebaliknya hanya pada saat SCL low. Perubahaan data dari high ke low akan diidentifikasi sebagai sinyal START, dan sebaliknya bila data berubah dari low ke high pada saat SCL high akan diidentifikasi sebagai sinyal STOP. Semua data, baik data alamat maupun data word akan dikirimkan secara serial. EEPROM akan mengirimkan sinyal low = ' 0 ', bila data yang dikirimkan kepadanya sampai dengan baik yang terdapat pada siklus ke 9. Pada EEPROM terdapat 2 operasi, yaitu operasi read dan operasi write.Agar bisa dilakukan operasi write/read, diperlukan alamat device yang dimaksud agar data dapat sampai dan diakses dengan benar. EEPROM 2K, 4K, dan 8K membutuhkan 8 bit device address word. Device address word ini terdiri atas mandatory one, zero sequence sampai ke-empat MSB pertama, kemudian bit device address ( A2,A1,A0 ) dan operation bit ( R = ' 1 ' ; W = ' 0 ' ).
Gb 2.8 Device Address EEPROM
13
2.2.2
Operasi Write Write adalah proses penulisan data ke dalam EEPROM. Proses write
membutuhkan 8 bit data word address, berikut device address word dan ACK. Penulisan EEPROM bisa dilakukan dengan cara menulis perbyte secara langsung ( Byte Write ) dan juga menulis per page secara langsung ( Page Write ).
a. Byte Write Bila data penulisan 1 byte diterima dengan baik oleh EEPROM, maka ACK akan dikirimkan berupa sinyal Low = ' 0 ', berikut device address . Setelah EEPROM mengirimkan tanggapan positifnya ini, maka master akan mengirim sinyal STOP. Pada saat inilah terjadi operasi internal, yaitu proses menulis selama tWR ( timed write cycle ) ke dalam non volatile memory. Maka selama tWR ini, semua instruksi akan diabaikan sampai proses penulisan komplit.
Gb 2.9 Byte Write b. Page Write Berdasarkan Tabel, diketahui bahwa 2K/4K EEPROM mempunyai 32 page, 8K mempunyai 64 page dan 128 page untuk EEPROM 16K. Proses page write akan melakukan penulisan dalam 1 kali intruksinya untuk 1 page sekaligus. Prosesnya hampir sama dengan dengan byte write, hanya saja master tidak akan mengirimkan sinyal STOP setelah
pertama ditransmisikan. Pada proses page write, setelah
EEPROM mengirimkan ACKnya, master akan mengirimkan data selanjutnya sampai
14
1 page. Sinyal STOP baru dikirimkan oleh master, setelah 1 page data telah selesai ditransmisikan.
Gb 2.10 Proses Byte Write
2.2.3 Operasi Read Read adalah proses yang terjadi pada sisi receiver yang berperan dalam menerima dan membaca data yang dikirimkan oleh transmitter. Operasi read sama dengan operasi write, hanya saja direction bit yang menentukan operasi pada device address word di set menjadi satu R/W = ‘1’ . Pada operasi read terdapat 3 operasi, antara lain current address read, random address dan sequential read. a. Current Address Read Current address read adalah proses membaca data yang terdapat pada alamat pada saat permintaan read oleh slave diterima. Data word address akan selalu pada alamat dimana akses terakhir dilakukan baik operasi read maupun write, dan data word address + 1 akan dibaca. Alamat akses terakhir ini akan dijaga sehingga akan tetap valid selama masih terdapat sumber tegangan. Bila operasi terakhir adalah proses read pada byte terakhir pada akhir memory page, maka address akan roll over menuju byte pertama pada page pertama. Akan tetapi, bila operasi terakhir adalah write pada byte terakhir maka current page address akan menuju byte pertama pada page yang sama.
15
Gb 2.11 Current Address Read Pada saat device address dengan direction bitnya diset ‘1’ dan EEPROM memberikan ACK-nya, maka current address data word akan di clock out secara serial dan master tidak akan merespon dengan mengirimkan sinyal STOP.
b. Random Read Random read memerlukan dummy write sequence untuk meakses data word address. Pada saat device address word dan data word address di clock-in, EEPROM mengirimkan ACK-nya dan master akan mengirimkan sinyal START. Master menginisialisasi
current read address dengan mengirimkan device
address dan secara serial meng-clock out kan data word. Setelah proses tersebut selesai, master tidak akan merespon dengan mengirimkan ACK, melainkan dengan mengirimkan sinyal STOP.
Gb 2.12 Random Address Read
16
c. Sequential Read Sequential read diinisialisasi oleh current address read atau random address read. Setelah master menerima data word, master akan merespon dengan ACK. Selama EEPROM menerima ACK, data word address akan ditambah ‘1’ dan secara serial sequential data word akan di clock out. Selama masih terdapat memory address limit, data word address akan roll over dan sequential read akan terus ditambahkan. Sequantial read operation akan berakhir bila master tidak merespon dengan ACK melainkan meresponnya dengan mengirimkan sinyal STOP.
Gb 2.13 Sequential Read
BAB III PERANCANGAN
3.1
Umum I2C bus sebagai media komunikasi antara PC dan TV ini dirancang untuk
mempermudah saat proses baca tulis EEPROM. Sesuai dengan latar belakang yang sudah diuraikan pada Bab I sebelumnya, dengan I2C bus ini nantinya diharapkan proses baca-tulis EEPROM tidak lagi dilakukan dengan melepas EEPROM dari board TV dan kemudian membacanya pada device lain yaitu EEPROM writer/reader. Dengan melepas dan memasang kembali EEPROM secara berulang-ulang, dapat merusak pattern dan bisa memakan waktu lama. Oleh karena itu, untuk menghindari sebab diatas, I2C bus dalam mengkomunikasikan PC dengan TV pada baca-tulis EEPROMnya akan diimplementasikan menjadi sebuah kabel yang menguhubungkan suatu port PC ke jalur bus TV. Dan hasil baca-tulis EEPROMnya akan ditampilkan pada PC dengan bantuan software.
Sanyo TV PC I2C Board
Gambar 3.1
Komunikasi PC dengan TV melalui kabel I2C bus
Bila pada TV, kabel I2C bus dihubungkan dengan plug TV bus, dari PC nya akan dihubungkan dengan port paralel. Hal ini dirancang untuk memudahkan proses pentransmisian data dari PC ke TV
17
18
3.2
Perancangan Hardware Hardware I2C bus berupa kabel yang terdiri dari port, kabel dan board I2C
bus. Karakter perangkat keras I2C terdiri 2 jalur yaitu jalur data ( SDA ) dan jalur clock ( SCL ). Kedua jalur memiliki kemampuan input dan output. Kedua pin tersebut akan dihubungkan dengan I2C bus yang telah di pull up dengan suatu resistor ke suplay positif.
Gambar 3.2 I2C board Board I2C bus melalui kabel akan disambungkan dengan DB 25 male dan akan dihubungkan dengan DB 25 female yang terdapat pada komputer. DB 25 adalah port paralel atau disebut juga port printer. Port paralel terdiri dari tiga bagian, antara lain : a.
DP ( Data port ) : Merupakan port yang digunakan untuk jalur data. Data port ini bersifat read/write.
19
b.
Printer Control (PC) : Merupakan port yang digunakan untuk pengiriman kode-kode kontrol dari komputer ke perangkat yang terhubung denganya. Port PC ini bersifat read/write.
c.
dan Printer Status ( PS ) : Merupakan port yang digunakan untuk mengirimkan kode-kode status perangkat yang terhubung ke PC. Port ini bersifat read only.
Port Address : 378h (888)
Port Address : 379h (889)
Data Register
Status Register
D0 D1 D2 D3 D4 D5 D6 D7
1
2 14
3 15
4 16
5 17
6 18
7 19
8 20
9 21
S7 S6 S5 S4 S3 S2 S1 S0
10 22
11 23
12 24
13 25
C0 C1 C2 C3 C4 C5 C6 C7 Control Register Port Address : 37Ah (890)
Gambar 3.3 Konfigurasi slot DB 25 Female Selain dihubungkan dengan port DB 25 pada komputer, I2C board juga akan dihungkan dengan port I2C bus pada TV. Karena sesuai dengan tujuanya, bahwa I2C bus ini akan menghubungkan TV dengan PC maka dibutuhkan 2 port, masing-masing port penghubung ke TV dan port penghubung ke PC. Dibawah ini adalah gambar konfigurasi kabel I2C bus.
20
I2C Board
DB 25 Male
Plug Gambar 3.4 Konfigurasi Kabel I2C bus
Berdasarkan gambar diatas, DB 25 male adalah port paralel pada kabel I2C bus untuk disambungkan ke port paralel ( DB 25 Female ) pada PC dan plug adalah port pada kabel I2C bus yang akan disambungkan ke plug TV yang merupakan jalur I2C .
3.3
Perancangan Software Seperti pada uraian sebelumnya, kabel I2C bus akan mengkomunikasikan
PC dengan EEPROM TV, dengan hasil pembacaan atau perintah penulisan EEPROM dilakukan dari PC. Hasil pembacaan dan penulisan dilakukan melalui PC, tentunya dengan menggunakan bantuan software. Agar proses pembacaan dan penulisan dapat dioperasikan dengan mudah, akan digunakan software VB ( Visual Basic). Visual Basic adalah perangkat lunak yang digunakan untuk membuat program aplikasi yang bekerja dalam lingkungan sistem operasi windows. Seperti yang telah kita ketahui, bahwa windows sudah familiar dioperasikan pada setiap komputer. Hal ini akan mempermudah pemindahan software dari komputer 1 ke komputer lain tanpa menginstal suatu program lagi untuk menjalankan suatu aplikasi. Dengan Visual Basic ini, kemampuan windows dapat dimanfaatkan secara optimal. Selain itu VB memiliki kemudahan dalam penyusunan progam aplikasi dengan tampilan grafis yang baik yang bisa dibuat dalam waktu yang singkat.
21
Pada pembuatan tugas akhir ini akan digunakan PC dengan fitur sebagai berikut : Tabel 3.1 Kebutuhan Spesifikasi PC
System
Kapasitas
Operating System
Microsoft Windows XP Pro 2002
Processor
1,73 GHz
RAM
366 MHz, 760 MB
Harddisk
40 GB
Agar VB dapat mengakses paralel port, alamat masing-masing port harus diketahui terlebih dahulu. Hal ini diperlukan untuk penulisan script softwarenya. Alamat paralel port setiap PC berbeda-beda, tergantung pada jenis PC. Setelah mengetahui alamat port paralel, maka kita dapat menentukan alamat DP, PC dan PS. Alamat DP adalah base address dari port paralel tersebut, sedangkan alamat PS adalah base address + 1 dan PC adalah base address + 2. Pada Tugas akhir ini PC yang digunakan adalah IBM R52. Berikut ini adalah table alamat masing-masing port paralel pada IBM R52 :
Tabel 3.2 Alamat Port Paralel Nama Port
Alamat Register
LPT1 DP
03BC
LPT1 PS
03BD
LPT1 PC
03BE
22
Alamat port paralel tersebut dapat dilihat dengan cara melihatnya di properties my computer. Berikut adalah langkah-langkah melihat alamat port paralel pada PC.
Klik START
Klik kanan My computer
Klik Properties
Klik Hardware
Klik Device Manager
Klik Ports
Klik 2X Printer port
Klik Resources Gambar 3.5 Langkah-langkah Melihat Alamat Paralel Port
23
Dengan melakukan cara diatas, pada IBM R52 yang akan digunakan sebagai PC/master diperoleh tampilan seperti pada gambar dibawah ini.
Gambar 3.6 Tampilan Printer Port Properties
3.4
Perancangan Komunikasi dan Tampilan Kabel I2C bus yang menguhungkan PC dengan EEPROM TV akan
mengkomunikasikan keduanya untuk proses baca tulis. Oleh karena itu pengoperasian nantinya akan terdiri dari 2 tahapan, antara lain : a.
Proses Tulis ( Write ) Pada tahapan ini, I2C bus akan menyampaikan perintah penulisan EEPROM yang ditulis melalui tampilan VB pada PC. Proses Tulis, bisa dilakukan per sub address atau per bank.
24
b.
Proses Baca ( Read ) Proses Read merupakan operasi yang dilakukan oleh PC sebagai master untuk mengetahui data pada EEPROM pada sub address maupun pada banknya. Pada proses baca juga bisa dilakukan per sub address atau per bank.
START
BACA
PER BANK
TULIS
PER SUB ADDRESS
PER SUB ADDRESS
ACK ?
ACK ?
Gambar 3.7
PER BANK
Skema Pengoperasian Sistem
PC sebagai master, akan mengirimkan sinyal start diikuti dengan slave address (EEPROM address) kemudian data direction bit yaitu write = 1 (R/W = 1). Setelah frame tersebut terkirim EEPROM akan mengirimkan tanggapanya, baik berupa ACK maupun NACK. ACK dikirimkan bila data/request yang dikirimkan oleh PC sampai dengan benar ke EEPROM. Bila EEPROM bermaksud mengirimkan ACK-nya, maka SDA akan dibuat LOW = '0' oleh EEPROM. Kondisi tanggapan EEPROM berupa ACK ini akan ditampilkan oleh VB melalui tampilanya yaitu dengan mencetak kata 'OK'. Data tidak selalu diterima dengan baik oleh EEPROM. Maka pada kondisi seperti ini, EEPROM sebagai slave juga harus mengirimkan tanggapanya untuk
25
menginformasikan kepada master bahwa data tidak sampai, sehingga master bisa mengulangi kembali pengiriman datanya. Kesalahan pengiriman data ini akan diinformasikan dalam bentuk NACK ( Negative Acknowledge ). NACK ini dikirimkan oleh EEPROM berupa sinyal SDA High = '1'. Dan NACK ini akan ditampilkan oleh VB melalui tampilanya dengan mencetak kata NG ( Not Good ).
M A
START
S
Alamat EEPROM
L
Data direction bit
S T
Negative NACK START
A V
Alamat EEPROM
E R /
E Data direction bit
DATA ACK
P C
/
ACK
STOP
E P R O M
Gambar 3.8 Cara Komunikasi Master - Slave
BAB IV PENGUJIAN KOMUNIKASI TELEVISI DENGAN PC PADA PROSES BACA -TULIS EEPROM
4.1
Umum Pada bab ini akan diuraikan tentang pengujian dan analisa hasil. PC
berkomunikasi dengan TV menggunakan I2C bus yang dibantu dengan software visual basic. Kabel I2C yang dihubungkan melalui port paralel ke PC akan membuat PC mampu mengirim request dan instruksi ke EEPROM TV untuk membaca dan menulis kedalamnya. Melalui pin nomor 17 yaitu pin control register pada port paralel, PC akan mengirimkan clock kedalam jalur SCL I2C bus. Data yang keluar dari PC seperti request/instruksi START dan STOP keluar melalui pin 11 yaitu status register dan data yang masuk ke PC dari EPROM seperti ACK akan masuk melalui pin nomer 9 yaitu data register. Berikut adalah hal-hal yang akan diujikan, antara lain :
4.1.1
Program Tulis Sesuai dengan penamaanya, program tulis merupakan program I2C bus
yang akan mengkomunikasikan PC dengan menulis kedalam EEPROM TV. Pada program tulis ini akan dilakukan pengujian antara lain: 1. PC menulis kedalam EEPROM TV pada sub address 2. PC menulis kedalam EEPROM TV pada satu bank / device address sekaligus 3. Pensinyalan dan pengoperasian
4.1.2
Program Baca Program baca, adalah program I2C bus yang akan mengkomunikasikan PC
dengan membaca data pada EEPROM baik data per sub address maupun data satu bank sekaligus. Pengujian yang dilakukan antara lain : 1. PC membaca data sub address EEPROM TV 2. PC membaca data satu bank EEPROM TV
26
27
3. Pensinyalan dan pengoperasian Perlu diketahui bahwa pengujian sistem ini dapat dilakukan dengan 2 cara, yaitu dengan membaca EEPROM yang sudah terpasang pada TV dan yang kedua adalah dengan membuat jig EEPROM yang di pull up ke power supply 5 volt melalui sebuah resistor.
4.2
Alat Uji yang Digunakan Dalam pengujian dibutuhkan beberapa peralatan sebagai berikut : 1. Satu buah PC, pada pengujian digunakan PC IBM R52 dengan software Visual basic untuk Baca/tulis EEPROM.
Gambar 4.1
Tampilan VB – EEPROM RW
27
28
2. Kabel I2C
I2C board
Plug ke TV ( EEPROM Gambar 4.2
Kabel I2C
Gambar 4.3
I2C board
DB 25 Male ke PC
3. TV atau jig EEPROM 4. Power supply 5 volt untuk supply jig EEPROM 5. I2C bus analyzer, pada pengujian digunakan Yokogama I2C bus analyzer DL 1740. Dengan I2C bus analyzer ini, sinyal yang tertampil bisa langsung disimpan dalam disket. Sehingga dengan alat ini pengujian akan lebih mudah dilakukan.
29
Gambar 4.4
I2C Bus Analyzer YOKOGAWA DL 1740
6. 2 buah probe, probe ini digunakan untuk menghubungkan I2C bus analyzer
dengan
EEPROM
untuk
menampilkan
sinyal
hasil
komunikasi antara EEPROM dengan PC. Masing-masing berwarna kuning dan hijau, yaitu untuk dihubungkan ke jalur clock dan data. 7. 2 buah kabel aligator to aligator, kabel ini digunakan untuk mensupply EEPROM dengan sumber tegangan 5 volt.
4.3
Instalasi I2C bus merupakan media komunikasi antara PC dan TV, maka I2C bus
pastinya kan dipasang diantara keduanya.
SCL I2C board
PC Port paralel
EEPROM Port paralel
Gambar 4.5
I2C bus analyzer
SDA
PS 5 volt
Diagram Instalasi Sistem
30
I2C bus analyzer PS 5 volt
PC
Jig EEPROM
Jig EEPRO M
Gambar 4.6
Instalasi saat Pengujian
Jig EEPROM sebagai pengganti TV disupply tegangan sebesar 5 volt dihubungkan dengan kabel I2C dengan memasangkan plug antara keduanya dan menuju ke PC dengan menghubungkan DB-25 male pada kabel I2C kedalam DB25 female pada PC. Untuk melihat sinyal, jig EEPROM dihubungkan dengan I2C bus analyzer. I2C bus analyzer ini mempunyai 4 chanel. Untuk pengujian ini hanya digunakan 2 chanel, yaitu chanel 1 dan chanel 2. Chanel 1 dihubungkan ke EEPROM jalur clock dan chanel 2 dihubungkan ke jalur data melalui sebuah probe.
4.4
Data EEPROM Berdasarkan spesifikasi televisi sanyo yang digunakan sebagai bahan uji,
EEPROM yang digunakan adalah EEPROM 16K. Berdasarkan teori dasar, hal ini berarti EEPROM ini terdiri atas 128 Pages, 16 Byte.
31
Tabel 4.1 A 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
1 01 11 21 31 41 51 61 71 81 91 A1 B1 C1 D1 E1 F1
2 02 12 22 32 42 52 62 72 82 92 A2 B2 C2 D2 E2 F2
3 03 13 23 33 43 53 63 73 83 93 A3 B3 C3 D3 E3 F3
4 04 14 24 34 44 54 64 74 84 94 A4 B4 C4 D4 E4 F4
5 05 15 25 35 45 55 65 75 85 95 A5 B5 C5 D5 E5 F5
6 06 16 26 36 46 56 66 76 86 96 A6 B6 C6 D6 E6 F6
7 07 17 27 37 47 57 67 77 87 97 A7 B7 C7 D7 E7 F7
Bank
8 08 18 28 38 48 58 68 78 88 98 A8 B8 C8 D8 E8 F8
9 09 19 29 39 49 59 69 79 89 99 A9 B9 C9 D9 E9 F9
A 0A 1A 2A 3A 4A 5A 6A 7A 8A 9A AA BA CA DA EA FA
B 0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AB BB CB DB EB FB
C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AC BC CC DC EC FC
D 0D 1D 2D 3D 4D 5D 6D 7D 8D 9D AD BD CD DD ED FD
E 0E 1E 2E 3E 4E 5E 6E 7E 8E 9E AE BE CE DE EE FE
Tabel 4.1 diatas adalah gambaran bank. A adalah address, angka 0-F vertikal dan horisontal adalah panduan untuk membaca alamat masing-masing sub address dalam satu bank. EEPROM 16K, mempunyai 8 Bank. Masing- masing bank mempunyai device address. Alamat 00 sampai FF disebut sub address. Jadi dalam 1 bank terdiri dari 256 sub address.
Tabel 4.2 Device address Bank
Device Address
Bank 1
A0
Bank 2
A2
Bank 3
A4
Bank 4
A6
Bank 5
A8
Bank 6
AA
Bank 7
AC
Bank 8
AE
F 0F 1F 2F 3F 4F 5F 6F 7F 8F 9F AF BF CF DF EF FF
32
Berdasarkan tabel 4.1, bisa dijelaskan bahwa EEPROM 16k terdiri atas 128 pages, 16byte. 00, 01, 02 sampai dengan 0F masing-masing sel pada tabel 4.1 tersebut disebut sub address atau word address. Sedangkan 1 page address adalah dari sub address 00 sampai 0F atau 10 sampai 1F dan seterusnya F0 sampai FF, atau bisa disimpulkan 1 page terdiri dari 16 sub address. masing-masing sel terdiri dari 1 byte atau 8 bit, jadi 1 pagenya terdiri atas 16 X sub address yaitu sama dengan 16byte. Karena EEPROM 16 K terdiri atas 8 bank, dan tiap bank terdiri atas 16 page, maka dalam EEPROM 16K terdiri atas 16 X 8 = 128 page. Pengertian diatas sebagai dasar untuk proses pembacaan dan penulisan. Hal ini dikarenakan masing-masing sub address sudah dialokasikan
untuk
menyimpan data-data televisi. Data-data tersebut antara lain data frekuensi, color system, volume, sound system, dan beberapa fitur lainya. Oleh karena itu pada saat ingin menulis atau membaca data volume atau data lainya harus diketahui addressnya.
4.5
Pengujian Setelah instalasi dilakukan dan alamat EEPROM sudah diketahui,
pengujian bisa dilakukan. Pertama kali yang dilakukan adalah dengan melihat sinyal START dan STOP. Hal ini dimaksudkan untuk melihat apakah sistem sudah bisa berjalan dengan benar. Berdasarkan Gambar 4.1 yaitu tampilan program EEPROM R/W (read/write)
untuk mengirimkan perintah start, cukup dengan klik icon START
dan untuk perintah stop dengan mengklik sinyal STOP. Dan sinyal bisa dilihat pada I2C bus analyzer. Pada pengujian didapatkan hasil seperti pada gambar dibawah ini .
33
diperbesar SCL SDA
Gambar 4.7
Hasil Pengujian – Sinyal START
PC sebagai master, mengirimkan request untuk memulai komunikasi berupa sinyal start. Pada gambar 4.7 terlihat, sinyal start berupa perubahan sinyal data dari high ke low pada saat SCL tinggi.
34
diperbesar SCL SDA
Gambar 4.8 Hasil pengujian Sinyal STOP
Perintah STOP dikirimkan PC untuk mengakhiri komunikasi. Terlihat pada gambar 4.8 sinyal STOP berupa sinyal transisi dari low ke high saat SCL high.
4.5.1
Operasi Tulis Operasi tulis bisa dilakukan dengan 2 metode, yaitu penulisan per sub
address dan penulisan per bank sekaligus. 1. Operasi tulis per sub address Pada pengujian ini, operasi tulis persub address dilakukan pada sub address A6 pada bank 1 yaitu sub address yang dialokasikan untuk volume. Sub address
= A6 = 1010 0110
Bank 1
= A0 = 1010 0000
Data input
= 10 = 0001 0000
35
1. Input alamat bank
4. Klik 2. input sub add 3. data
Gambar 4.9 Operasi Penulisan per Sub Address pada Program EEPROM R/W
Langkah – langkah : 1. Menginputkan device address pada form EEPROM bank 2. Menginputkan sub address pada form kolom sub address 3. Menginputkan data yang akan ditulis pada form kolom data 4. Mengklik write
36
Dari data tersebut diatas, diperoleh gambar sinyal sebagai berikut.
SCL SDA
Gambar 4.10 Hasil Pengujian – Operasi Write per Sub Address
Data dibaca pada saat clock high. Berdasar gambar diatas terlihat data hasil = 1Æ0
1010 0000 0
1010 0110 0
0001 0000 0
0Æ1. 1Æ0 adalah
transisi high ke low yaitu sinyal START. PC merequest hubungan dengan EEPROM dengan mengirimkan sinyal START. EEPROM mengirimkan ACKnya sebagai tanda bahwa EEPROM siap untuk melakukan komunikasi dengan PC. Setelah mendapatkan jawaban dari EEPROM, PC melanjutkan mengirimkan intruksinya dengan mengirimkan device address A0 yang akan ditulisi dan intruksi write dengan mengirimkan bit R/W =’0’ . EEPROM menanggapinya dengan mengirimkan kembali ACKnya. Tanggapan positif EEPROM ini membuat PC mengirimkan kembali word address A6 yang dimaksud pada device address A0 yang sebelumnya telah dikirimkan. Dan sama seperti pada proses sebelumnya, EEPROM akan mengirimkan kembali ACKnya sebagai pertanda bahwa request PC telah diterima
37
oleh EEPROM dan EEPROM dapat menerima perintah selanjutnya yaitu PC mengirimkan data yang akan dituliskan, yaitu 10. EEPROM kembali mengirimkan ACKnya. Karena proses tulis sudah selesai, PC akan mengakhiri komunikasinya dengan mengirimkan sinyal STOP. Pada saat ini, semua intruksi akan diabaikan oleh EEPROM. Proses inilah yang disebut operasi internal, yaitu proses menulis selama tWR ( timed write cycle 0 kedalam non volatile memory. Bila data tersebut dituliskan dalam sebuah frame, maka :
START
A0 ACK A6 ACK
Device START
Address
ACK
Sub Address
10
ACK
ACK
Data
STOP
ACK
STOP
+ R/W = 0
Gambar 4.11 Frame Operasi Tulis per Sub Address
2. Operasi Tulis per Bank Pada operasi tulis per bank ini diujikan pada bank 2 yang merupakan bank yang dialokasikan untuk color system masing-masing chanel. Televisi sanyo mempunyai kode biner untuk masing-masing color system, kode-kode biner tersebut antara lain : AUTO
= 19 Æ 0001 1001
PAL
= 08 Æ 0000 1000
SECAM
= 10 Æ 0001 0000
NTSC 4.43 = 04 Æ 0000 0010 NTSC
= 07 Æ 0000 0111
Jadi bank 2 yaitu A4 ( 1010 0100 ), semua sub address akan ditulis sekaligus dengan beberapa color system dengan operasi tulis per bank.
38
Langkah-langkah pengoperasian pada program EEPROM R/W antara lain : 1.
Menginputkan data yang ingin dituliskan pada masing-masing sel dengan mengetikkan pada masing-masing sel 00 sampai dengan FF. Bila ingin menulis bank dengan satu data yang sama, cukup mengetikkan nilai pada form FILL BANK kemudian klik ikon FILL BANK.
2.
Klik ikon WRITE BANK
1.Input nilai yang akan dituliskan
2. Klik
2. Klik
1. Input nilai pada semua sub address
Gambar 4.12 Operasi Penulisan per Bank
39
Dari pengujian ini didapatkan data hasil sebagai berikut :
Gambar 4.13 Hasil Pengujian – Operasi Tulis per Bank
Dari hasil pengujian diperoleh data hasil seperti gambar tersebut diatas. Pada gambar terbaca data : 1 Æ0 1010 010 0 0 1111 1111 0 1Æ0 1010 0101 0 0000 0000 0Æ1
STARTÆ A4 + R/W = 0 Æ ACK Æ FF Æ ACK Æ START Æ A5ÆACKÆ00 Æ STOP
Data sinyal pada gambar diatas adalah data terakhir yang terjadi, yang tertangkap oleh analyzer. Dari data tersebut dapat diketahui, bahwa frame yang dihasilkan adalah frame random read. Setelah dummy write , EEPROM mengirim ACK dan PC meresponya dengan mengirimkan word address yang
40
terakhir pada satu bank, yaitu FF dan ditanggapi kembali oleh EEPROM ACK. PC memulai kembali komunikasi dengan mengirimkan sinyal START dan device address A4 + R/W = 1 (read) = A5 dan ACK diterima kembali oleh PC beserta data pada sub address FF yaitu 00. Pada operasi tulis per bank ini, byte write diekseskusi dari sub address 00 sampai FF setelah itu proses read diinstruksikan oleh PC. Hal ini bertujuan untuk pengecekan secara otomatis oleh program EEPROM write/read, apakah penulisan yang dilakukan diterima dengan benar oleh EEPROM TV.
4.5.2
Operasi Baca
1. Operasi baca per sub address Pada operasi baca per sub address, diujikan dengan membaca sub address yang ditulis pada proses sebelumnya yaitu proses tulis per sub address pada device address A0, sub address A6. Langkah pengoperasian program EEPROM R/W : 1.
Menginputkan device address di form EEPROM BANK
2.
Menginputkan sub address pada form sub address
3.
Mengklik ikon READ
4.
Melihat hasil proses baca pada form data
41
1. Input device address
4. Lihat hasil
3. Klik
2. Input sub address
Gambar 4.14 Operasi Baca per Sub Address
Gambar 4.15 Hasil Pengujian – Operasi Baca per Sub Address
42
Berdasarkan hasil pengujian sinyal, bisa dibaca data logiknya sebagai berikut : 1Æ0 1010 0000 0 1010 0110 0 1Æ0 1010 0001 0 0001 0000 0Æ 1 Setelah PC mengirimkan sinyal Start, kemudian dummy write yang terdiri atas mandatory one + zero sequence + (A2,A1,A0) bit write yaitu R/W diset 0, ACK, word address yaitu A6. Karena EEPROM
mengirimkan ACK, maka master menanggapinya
dengan mengirim sinyal START. PC menginisialisasi suatu alamat yaitu current read address dengan mengirimkan device address A0 dan ditambah dengan 1 yang menandakan proses read yaitu R/W = 1 (read) menjadi A1. Setelah PC menginisialisasi device address, dan ditanggapi oleh EEPROM dengan mengirimkan respon positifnya yaitu ACK maka PC secara serial meng-clock outkan data word yang terdapat pada word address yang diminta yaitu 10. Setelah proses tersebut selesai, PC tidak akan merespon dengan mengirimkan ACKnya melainkan dengan mengirimkan sinyal STOP.
2. Operasi baca per Bank Pada operasi baca per bank ini, akan diujikan dengan membaca bank 1 ( device address A0 ). Untuk memudahkan pembacaan, sebelumnya bank 1 ditulis FF untuk semua sub addressnya. Langkah – langkah pengoperasian : 1. Menuliskan bank 1 dengan FF 2. Menginputkan bank yang akan dibaca dengan mengetikkan di form EEPROM BANK 3. Mengklik READ BANK 4. Melihat hasilnya pada tabel bank
43
1. Menginputkan device address
2. Klik
3. Hasil baca
Gambar 4.16 Operasi Baca per Bank
Gambar 4.17 Hasil Pengujian – Operasi Baca per Bank
44
Terbaca : 1010 000 0 0 1111 1110 0Æ1 1010 0001 0 1111 1111 0Æ1 9 bit pertama adalah device address word yang terdiri atas mandatory one, zero sequence sampai ke-4 MSB yaitu 1010 kemudian bit device address A2, A1, A0 yaitu 000. nilai bit tersebut mencerminkan bahwa EEPROM yang digunakan adalah EEPROM 16 K, karena seperti yang dijelaskan pada bab sebelumnya bahwa pada EEPROM 16K A2, A1, A0 tidak dihubungkan. 0 berikutnya adalah ACK yang menginformasikan bahwa EEPROM sebagai slave telah menerima intruksi dari master/PC. Kemudian bit write R/W = 0, word address FE yang disebut dummy write. Sama halnya dengan proses proses tulis per sub address PC mengirimkan sinyal start lagi setelah menerima ACK dari EEPROM. Terlihat pada 8 bit sebelum bit stop terlihat data senilai FF. Dari data yang didapatkan, dihasilkan suatu frame data sebagai berikut :
Start 1010
Start
000
0 0
1010 0110
Mandatory
A2
Write
one + Zero
A1
R/W
sequence
A0
=0
ACK
0 Start
Word address
1010 0001
ACK
Start
0
Device address
0001 0000
0
Data
Gambar 4. 18 Frame operasi baca
Berdasarkan frame dari data yang diperoleh, dapat disimpulkan bahwa proses baca per sub address menggunakan metode random.
Stop
Stop
BAB V PENUTUP
5.1
Kesimpulan Berdasarkan hasil dari perencanaan komunikasi PC dan TV dengan I2C bus ini diperoleh beberapa kesimpulan, antara lain : 1.
I2C bus sebagai media komunikasi antara PC dan TV diimplementasikan sebagai kabel
dengan port paralel untuk
menghubungkan ke PC dan plug untuk menghubungkan TV 2.
Proses tulis PC ke EEPROM dengan cara byte write dan proses read dengan cara random read
3.
Proses baca-tulis EEPROM akan lebih praktis karena melalui sebuah kabel dan sebuah software yang mudah diinstal serta tanpa melepas EEPROM dari PCB board TV.
5.2
Saran 1.
Agar I2C board mempunyai performansi yang kuat, sebaiknya board dilengkapi dengan casing
2.
Agar kabel I2C bisa digunakan di berbagai PC dan lebih praktis, sebaiknya port paralel digantikan dengan USB port mengingat perkembangan teknologi komputer port paralel sudah mulai tereliminir
45
DAFTAR PUSTAKA
1. Atmel corporation, 2-wire serial EEPROM, Atmel Corporation, San jose, 2003 2. Philips Semiconductors Corporation, The I2C-Bus Specification version 2.1, Philips Semiconductors Corporation, Eindhoven, Januari, 2000 3. Retna Prasetia, Catur Edi Widodo, Teori dan Praktek Interfacing Port Paralel dan Port Serial komputer dengan Visual Basic 6.0, ANDI Yogyakarta, Semarang, 2004 4. Tim Micon Sanyo Electronics Indonesia, FB1A Spesification Software, Tim Micon Sanyo Electronics Indonesia, Cikarang, 2004
46
LAMPIRAN
PROGRAM EEPROM WRITER/READER ( VB – SCRIPT )
HEADER FILE Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" _ (ByVal PortAddress As Integer) _ As Integer Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" _ (ByVal PortAddress As Integer, _ ByVal Value As Integer) Public Declare Sub Tunda Lib "Port_IO.dll" (ByVal lama As Integer) Dim sub_address, control_byte, data_byte As Byte Dim n, j, r, c, NVM_Bank As Integer Dim bank, data, temp As Byte Public data_buffer(255) As Byte Public wdata_buffer(255) As Byte
Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim
BaseAddress As Integer d0 As Integer d1 As Integer d2 As Integer d3 As Integer d4 As Integer d5 As Integer d6 As Integer d7 As Integer d8 As Integer myTimer As Integer countit As Integer
1
2
PROGRAM Private Sub CommandButton3_Click() 'Read 1 Bank Button Read_Bank End Sub Private Sub CommandButton4_Click() 'Write 1 Bank Button Get_Data Write_Bank Read_Bank End Sub Private Sub CommandButton5_Click() Fill_Bank Read_Bank End Sub Public Sub Fill_Bank() For n = 0 To 255 Send_START bank = NVM_Bank(TextBox1.Value) 'Convert Bank # to NVM Slave Addres Send_byte (bank) Read_ack sub_address = n 'Convert Sub Addres from HEX to Dec Send_byte (sub_address) 'Sub Address Read_ack data = HexToByte2(TextBox7.Value) 'Convert Data from HEX to Dec Send_byte (data) Read_ack Send_STOP Next n End Sub Public Sub Write_Bank() For n = 0 To 255 Send_START bank = NVM_Bank(TextBox1.Value) NVM Slave Addres Send_byte (bank) Read_ack sub_address = n Addres from HEX to Dec Send_byte (sub_address) Read_ack 'data = HexToByte2(TextBox7.Value) from HEX to Dec data = wdata_buffer(n) Send_byte (data) Read_ack Send_STOP Next n End Sub
'Convert Bank # to
'Convert Sub 'Sub Address 'Convert Data
3
Public Sub Read_Bank() For j = 0 To 255 Dim address, rdata As Byte Dim r, c As Integer Send_START bank = NVM_Bank(TextBox1.Value) NVM Slave Addres Send_byte (bank) Read_ack address = HexToByte2(TextBox3.Value) Send_byte (j) Read_ack Send_START Send_byte (bank + 1) Read_ack rdata = Read_byte() data_buffer(j) = rdata 'TextBox4.Value = Hex(rdata) from Dec to HEX Send_STOP
'Convert Bank # to
'Convert Data
r = j \ 16 c = j Mod 16 Cells(r + 11, c + 7).Select Selection.Value = Hex(data_buffer(j)) Next j 'Display_Data 'Cells(1, 1).Select End Sub Public Sub Get_Data() 'Get data from Excel sheet j = 0 'Then store to temp j ram r = 0 c = 0 For r = 0 To 15 For c = 0 To 15 'Cells(r + 11, c + 6).Select 'temp = Cells((r + 6), (c + 10)).Value wdata_buffer(j) = HexToByte2(Cells((r + 11), (c + 7)).Value) j = j + 1 Next c Next r End Sub
Public Sub Display_Data() data_buffer to Excel sheet j = 0 r = 0 c = 0
'Display
4
For r = 0 To 15 For c = 0 To 15 Cells(r + 11, c + 6).Select Selection.Value = Hex(data_buffer(j)) j = j + 1 Next c Next r End Sub
Private Sub CommandButton2_Click() write) Send_START bank = NVM_Bank(TextBox1.Value) Slave Addres Send_byte (bank) Read_ack sub_address = HexToByte2(TextBox4.Value) from HEX to Dec Send_byte (sub_address) Read_ack data = HexToByte2(TextBox5.Value) to Dec Send_byte (data) Read_ack Send_STOP End Sub
'WRITE button (1 byte
Private Sub CommandButton1_Click() read) Dim address, rdata As Byte Send_START bank = NVM_Bank(TextBox1.Value) Slave Addres Send_byte (bank) Read_ack address = HexToByte2(TextBox2.Value) Send_byte (address) Read_ack Send_START Send_byte (bank + 1) Read_ack rdata = Read_byte() TextBox3.Value = Hex(rdata) to HEX 'Read_ack Send_STOP End Sub
'READ button (1 byte
'Convert Bank # to NVM
'Convert Sub Addres 'Sub Address 'Convert Data from HEX
'Convert Bank # to NVM
'Convert Data from Dec
Public Function NVM_Bank(bank As Integer) As Byte Select Case (bank) Case 0: NVM_Bank = &HA0 Case 1: NVM_Bank = &HA2 Case 2: NVM_Bank = &HA4 Case 3: NVM_Bank = &HA6 Case 4: NVM_Bank = &HA8
5
Case 5: NVM_Bank = &HAA Case 6: NVM_Bank = &HAC Case 7: NVM_Bank = &HAE Case Else: NVM_Bank = &HA0 End Select
End Function
Public Function HexToByte2(Hex As String) As Byte HexToByte2 = (16 * HexToByte(Mid(Hex, 1, 1))) + (HexToByte(Mid(Hex, 2, 1))) End Function
Public Function Select Case Hex Case "0" HexToByte = Case "1" HexToByte = Case "2" HexToByte = Case "3" HexToByte = Case "4" HexToByte = Case "5" HexToByte = Case "6" HexToByte = Case "7" HexToByte = Case "8" HexToByte = Case "9" HexToByte = Case "A", "a" HexToByte = Case "B", "b" HexToByte = Case "C", "c" HexToByte = 12 Case "D", "d" HexToByte = Case "E", "e" HexToByte = Case "F", "f" HexToByte = Case Else HexToByte = End Select
HexToByte(Hex As String) As Byte
0 1 2 3 4 5 6 7 8 9 10 11
13 14 15 0
6
End Function Public Sub Send_byte(ByVal data As Byte) Dim a, data_temp As Byte For a = 0 To 7 data_temp = ((data * (2 ^ a)) And 255) If data_temp > 127 Then data_temp = 0 Else data_temp = 128 End If SCL_Low Out 956, data_temp SCL_High Out 956, data_temp SCL_High Out 956, data_temp SCL_Low Out 956, data_temp Next a End Sub Public Function Read_byte() As Byte Dim a, b, data, data_temp As Byte data = 0 data_temp = 0 'Setup_input ' LPT1 mode baca 'b = Inp(958) For a = 0 To 7 SCL_Low data_temp = Inp(957) SCL_High b = Inp(958) data_temp = Inp(957) SCL_High data_temp = Inp(957) SCL_Low If data_temp > 127 Then data_temp = 128 Else data_temp = 0 End If 'data_temp = data_temp And &H80 data_temp = (((data_temp) / (2 ^ a)) And 255) data = (data Or data_temp) Next a Read_byte = data 'Setup_output 'kembalikan lagi LPT1 ke mode tulis b = Inp(958) End Function
7
Public Sub Read_ack() Dim a, data_temp As Byte SDA_High SCL_Low SCL_High data_temp = Inp(957) SCL_High Do data_temp = Inp(957) a = a + 1 Loop Until (data_temp < 127 Or a > 3) SCL_Low If data_temp < 127 Then TextBox6.ForeColor = &HFF0000 TextBox6.Value = "OK" Else TextBox6.ForeColor = &HFF TextBox6.Value = "No ACK !" End If
data_temp = Inp(957) 'Setup_output 'LPT1 mode output End Sub Public Sub SCL_Low() contol_byte = Inp(958) Out 958, (control_byte And &HF7) '1111 0111 contol_byte = Inp(958) End Sub Public Sub SCL_High() contol_byte = Inp(958) Out 958, (control_byte Or &H8) '0000 1000 contol_byte = Inp(958) End Sub Public Sub SDA_High() Out 956, &H0 End Sub Public Sub SDA_Low() Out 956, &H80 End Sub Public Sub Send_START() SCL_High SDA_High SCL_High SDA_Low SCL_Low SDA_Low End Sub
8
Public Sub Send_STOP() SCL_Low SDA_Low SCL_High SDA_Low SCL_High SDA_High Tunda (10) End Sub
Private Sub CommandButton6_Click() Send_START End Sub Private Sub CommandButton7_Click() Send_STOP End Sub Private Sub TextBox2_Change() End Sub
'Start Button
3. Flowchart FungsiRead_byte() START
Data_temp = 0 Data = 0 a=0
YES
a>7
NO Set SCL Low Read_byte = data Data_temp = Status Register FINISH Set SCL High
Data_temp = Status Register
Set SCL High
Data_temp = Status Register
Data_temp > 127
NO
YES Data_temp = 128 [ 1000 0000b ]
Data_temp = 0 [ 0000 0000b ]
Shift Right Data_temp
Data = Data + Data_temp
a=a+1
11
4. Flowchart Fungsi read_ack()
START
a=0
Set SDA High
Set SCL Low
Set SCL High NO Check for SDA line trough Status Register
Is SDA line LOW ?
NO
a = a +1 YES
a>3 Check 3 times ACK = OK YES
ACK = NG
FINISH
12
6. Flowchart Pembacaan 1 Byte data
START
START
Send_START
Generate START Condition
Convert BANK no. to Slave address
Bank 1 slave_address = A0h Bank 2 slave_address = A2h : : : Bank 7 slv_address = AEh
Send_byte(bank)
Transmit Slave Address byte
Read_ack
Check for the acknowledge
Send_byte(sub_address)
Transmit Sub Addres byte
Read_ack
Check for the acknowledge
Send_byte(sub_address +1)
Transmit (Sub Address + 1) byte
Read_ack
Check for the acknowledge
read_byte(data)
Read Data byte
Send_STOP
Generate STOP condition
FINISH
FINISH
14