1 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 PCF8...
Tujuan 1. Untuk Mengenal Modul Serial port dengan I2C 2. Mengenal protocol I2C. 3. Mempelajari IC PCF8574 Remote 8 bit I/O Expander for I2C Bus. 4. Mengirim dan menerima data menggunakan IC PCF8574 dengan interface LED Display Board dan Switch Input Board.
II. Ruang Lingkup A. Teori Singkat I2C 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 I2C mampu mengalamati banyak device. I2C 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 Pedoman Praktikum Aplikasi Mikroprosesor & Interfacing Percobaan 3
UPT Perangkat Keras 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 I2C (Gambar 3.2).
Gambar 3.2 Timing diagram dari I2C Komunikasi antar IC dengan menggunakan metode I2C 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 I2C (Gambar 3.3):
Gambar 3.3 Paket data untuk melakukan Penulisan menuju slave Pedoman Praktikum Aplikasi Mikroprosesor & Interfacing Percobaan 3
UPT Perangkat Keras 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 2. EX-03 Switch Input Board 3. EX-07 I2C Based-16 bit I/O Board 4. Serial Interface Board
kode : kode : kode : 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 Pedoman Praktikum Aplikasi Mikroprosesor & Interfacing Percobaan 3
UPT Perangkat Keras Halaman : 3 dari 7
IV. Urutan Instruksi Kerja A. Prosedur 1. Mengirim Data melalui I2C • Hubungkan Serial Board dengan PC. • Hubungkan dengan menggunakan I2C bus antara Serial Board dengan I2C Based 16 Bit I/O Board (Modul EX-07). • Hubungkan dengan dengan menggunakan data bus antara modul Led Display Board (EX-01) dengan I2C 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 I2C dan Serial board • • •
Jalankan Microsoft Visual Basic. Untuk dapat mengontrol I2C masukkan modul I2Cser.bas. Lihat panel project lalu click add module I2Cser.bas. Masukkan perintah sebagai berikut
Program Mengirim Data melalui I2C 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 I2C 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 I2C • 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 I2C Based-16 Bit I/O Board (EX07) melalui DATA BUS #1 pada modul tersebut. • Keseluruhan koneksi modul dapat dilihat pada gambar berikut ini (Gambar 3.7)
Gambar 3.7 Koneksi antara modul output dengan modul I2C dan Serial board •
Tambahkan program pada prosedur 1 di atas untuk menerima input dengan I2C sebagai berikut : Program Mengirim Data melalui I2C Private Sub Timer1_Timer() Call I2CStart 'Start’
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 I2C Program tersebut akan menerima 1 byte data dengan menggunakan protokol I2C 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 I2C 2. Fungsi dan aplikasi I2C 3. Mengenai IC PCF8574 4. Flowchart semua program dan fungsi timer 5. Kesimpulan C. Tugas Pendahuluan 1. Apa yang anda ketahui tentang I2C? Apa kelebihannya dan terangkan cara kerjanya! 2. Terangkan cara kerja IC PCF8574! Pedoman Praktikum Aplikasi Mikroprosesor & Interfacing Percobaan 3