Percobaan 3 PENGENALAN INTERFACE I 2 C I. Tujuan 1. Untuk Mengenal Modul Serial port dengan I 2 C 2. Mengenal protocol I 2 C. 3. Mempelajari IC PCF8574 Remote 8 bit I/O Expander for I 2 C Bus. 4. Mengirim dan menerima data menggunakan IC PCF8574 dengan interface LED Display Board dan Switch Input Board. II. Ruang Lingkup A. Teori Singkat I 2 C merupakan standar komunikasi dengan menggunakan 2 kabel dengan kecepatan yang cukup tinggi maka antara IC yang satu dengan yang lainnya dapat berkomunikasi dengan baik. Dengan memanfaatkan jalur bus dan address yang bervariasi maka I 2 C mampu mengalamati banyak device. I 2 C terdiri dari beberapa bagian yaitu : 1. Transmitter : bagian yang berfungsi mengirimkan data ke Bus 2. Receiver : bagian yang menerima data dari Bus 3. Master : bagian yang melakukan transfer, mengenerate Clock dan membatalkan transfer data 4. Slave : bagian yang ditunjuk oleh master sebagai tempat yang dituju. 5. Multi-Master : lebih dari satu master dapat mengontrol Bus dalam waktu bersamaan tanpa membuat corrupt pada data yang ada. 6. Arbitration : Prosedur yang menentukan/membatasi Multi Master dan membuat hanya satu dari dua master yang dapat mengatur Bus sehingga tidak terjadi Corrrupt pada data. 7. Synchronization : prosedur yang mencocokkan antara Sinyal Clock dan beberapa device. Gambar 3.1 Konfigurasi I2C dengan lebih dari 2 device Percobaan 3 Halaman : 1 dari 7
Pada gambar 3.1 komunikasi antara 2 mikrokontroller A dan mikrokontroller B dan device-device lainnya (Gate Array, LCD Driver, ADC, Static RAM/ EEPROM) dilakukan dengan menggunakan 2 jalur (SDA dan SCL). SDA merupakan Serial Data Line yang merupakan jalur untuk mengirimkan data-data secara serial. Sedangkan SCL merupakan Serial Clock Line yang berfungsi untuk mengirimkan Clock yang berfungsi untuk sinkronisasi dan menandakan pengiriman paket-paket data. Berikut merupakan timing diagram dari I 2 C (Gambar 3.2). Gambar 3.2 Timing diagram dari I2C Komunikasi antar IC dengan menggunakan metode I 2 C harus memperhatikan beberapa hal antara lainnya pada awal SDA mengirimkan transisi data dari high ke low ( falling edge ) sedangkan SCL harus berada pada kondisi high. Kondisi ini menandakan mulainya pengiriman data ( start condition ). Selanjutnya pengiriman address yang ditandakan dengan SCL yang akan mengirimkan transisi data dari high ke low dan ke high lagi. Selanjutnya pengiriman status untuk menulis atau membaca data yang ditandai dengan tansisi data SCL dari low ke high. Setelah mendapatkan ack dari IC tujuan yang ditandai dengan satu clock penuh pada SCL, maka data akan dapat dikirimkan menuju IC tujuan dengan transisi SCL dari low ke high ( rising edge ), ACK dapat diartikan sebagai penanda ketika data berhasil diterima oleh IC tujuan. Stop condition atau penanda bahwa semua data telah dikirimkan, ditandai dengan perubahan SDA dari low ke high ( rising edge ) yang diikuti dengan logic high pada SCL. Berikut ini merupakan paket-paket data yang digunakan dalam komunikasi I 2 C (Gambar 3.3): Gambar 3.3 Paket data untuk melakukan Penulisan menuju slave Percobaan 3 Halaman : 2 dari 7
Untuk melakukan penulisan dari master menuju ke slave device maka beberapa paket data dibutuhkan untuk melakukan proses tersebut antara lainnya: start bit, address, R/W, ACK, Data yang hendak dikirimkan, ACK dan pengiriman data yang selanjutnya, ACK dan stop bit. Untuk perintah R/W master device harus menunggu ACK dari slave device yang menandakan bahwa perintah R/W berhasil diterima dan di konfirmasi. Demikian juga halnya untuk data yang dikirimkan harus menunggu ACK dari slave device jika pengiriman berhasil dilakukan maka ditandai dengan adanya ACK jika tidak master device harus mengirimkan data tersebut kembali. Gambar 3.4 Sedangkan untuk melakukan pembacaan yang harus dilakukan ialah hanya mengganti perintah untuk pembacaan (logic high) setelah data pertama didaptkan maka master mengirimkan ACK ke slave device, untuk data yang selanjutnya yang diterima, master tidak perlu mengirimkan ACK. Istilah-istilah yang digunakan dalam komunikasi dengan menggunakan I2C: Start Condition : menentukan kapan data tersebut mulai dikirim Acknowledge : untuk memeriksa dan mencocokkan address yang akan diterima oleh device slave dan menentukan bagianbagian dari data yang dikirimkan dan memilah-milah sehingga tidak terjadi kesimpang siuran antara address dan data yang dikirimkan Stop Condition : kondisi yang menentukan suatu data selesai dikirim. B. Daftar Alat 1. EX-01 LED Display Board kode : 2. EX-03 Switch Input Board kode : 3. EX-07 I 2 C Based-16 bit I/O Board kode : 4. Serial Interface Board kode : III. Referensi Manual Book Serial Interfacing INex CITS NX-2000 Microsoft Visual Basic 6 Step by Step http://homepages.which.net/~paul.hills/software/i2cbody.html http://www.ping.be/~ping0751/i2cfaq/i2cproto.htm http://www.esacademy.com/faq/i2c/index.htm http://users.telenet.be/educypedia/electronics/i2c.htm Percobaan 3 Halaman : 3 dari 7
IV. Urutan Instruksi Kerja A. Prosedur 1. Mengirim Data melalui I 2 C Hubungkan Serial Board dengan PC. Hubungkan dengan menggunakan I 2 C bus antara Serial Board dengan I 2 C Based 16 Bit I/O Board (Modul EX-07). Hubungkan dengan dengan menggunakan data bus antara modul Led Display Board (EX-01) dengan I 2 C Based-16 Bit I/O Board (EX-07) melalui DATA BUS #2 pada modul tersebut. Keseluruhan koneksi modul dapat dilihat pada gambar berikut ini (Gambar 3.5) Gambar 3.5 Koneksi antara modul output dengan modul I 2 C dan Serial board Jalankan Microsoft Visual Basic. Untuk dapat mengontrol I 2 C masukkan modul I 2 Cser.bas. Lihat panel project lalu click add module I 2 Cser.bas. Masukkan perintah sebagai berikut Percobaan 3 Halaman : 4 dari 7
Program Mengirim Data melalui I 2 C Private Sub Command1_Click() Sendout Val("&H" & Text1.Text) End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.PortOpen = True End Sub Bentuk tampilannya dapat dilihat pada gambar 3.6 di bawah ini : Gambar 3.6 Bentuk Tampilan Mengirim Data Dengan I 2 C Program tersebut akan mengirimkan 1 byte data pada text box dengan menggunakan protokol I2C dan menampilkannya pada led display board. Tugas Praktikum 1: Buatlah program mengirimakan data ke Modul Output dengan akses per bit. 2. Menerima Data melalui I 2 C Tambahkan koneksi pada prosedur 1 di atas (Gambar X.x) dengan cara menghubungkan dengan menggunakan data bus antara modul switch input Board (EX-03) dengan I 2 C Based-16 Bit I/O Board (EX- 07) melalui DATA BUS #1 pada modul tersebut. Keseluruhan koneksi modul dapat dilihat pada gambar berikut ini (Gambar 3.7) Percobaan 3 Halaman : 5 dari 7
Gambar 3.7 Koneksi antara modul output dengan modul I 2 C dan Serial board Tambahkan program pada prosedur 1 di atas untuk menerima input dengan I 2 C sebagai berikut : Program Mengirim Data melalui I 2 C Private Sub Timer1_Timer() Call I2CStart 'Start Percobaan 3 Halaman : 6 dari 7
Call Send8BIT(&H79) 'Control Word Read Call Ack 'Acknowledge Text2.Text = Hex(Read8Bit)'Read Data Call Ack 'Acknowledge Call I2CStop 'Stop End Sub Bentuk tampilannya dapat dilihat pada gambar 3.8 di bawah ini : Gambar 3.8 Bentuk Tampilan Mengirim Data Dengan I 2 C Program tersebut akan menerima 1 byte data dengan menggunakan protokol I 2 C dari input eksternal (switch input) dan menampilkannya pada text box. Tugas Praktikum 2: Buatlah program untuk menampilkan data hexadecimal pada Modul Output ketika input diberikan pada Modul Input. B. Tugas Laporan 1. Definisi, dan Pengertian dan Cara kerja I 2 C 2. Fungsi dan aplikasi I 2 C 3. Mengenai IC PCF8574 4. Flowchart semua program dan fungsi timer 5. Kesimpulan C. Tugas Pendahuluan 1. Apa yang anda ketahui tentang I 2 C? Apa kelebihannya dan terangkan cara kerjanya! 2. Terangkan cara kerja IC PCF8574! Percobaan 3 Halaman : 7 dari 7