Interfacing
Materi 8: I2C Communication Disusun Oleh:
I Nyoman Kusuma Wardana
Outline • I2C Bus Protocol • TWI Protocol
Kusuma Wardana - Interfacing 2013
2
I2C Bus Protocol
Kusuma Wardana - Interfacing 2013
3
I2C Bus Protocol • IIC : “Inter-Integrated Circuit ” • IIC juga dikenal sbg I2C atau I2C (I square C) • SPI dimulai oleh Philips dan saat ini telah digunakan secara luas dan menjadi standar yg telah diadopsi oleh banyak perusahaan semikonduktor
Kusuma Wardana - Interfacing 2013
4
I2C Bus Protocol • I2C merupkn komunikasi yg ideal utk menghubungkan low-speed peripherals ke motherboard atau sistem terembedded atau alat apapun jika komunikasi jarak pendek diperlukan • Tipe komunikasi ini memerlukan acknowledge sbg basis komunikasinya
Kusuma Wardana - Interfacing 2013
5
I2C Bus Protocol • Divais I2C hanya memerlukan 2 pin utk data transfer • 2 pin ini adlh: 1. SCL (Serial Clock) mensinkronkan data transfer 2. SDA (Serial Data) paket data
Kusuma Wardana - Interfacing 2013
6
I2C Bus Protocol • 2 pin ini (SCL dan SDA) membuat I2C suatu 2wire interface • Pada kebanyakan aplikasi (termasuk AVR), istilah I2C diganti dgn nama TWI (Two-Wire Interface)
Kusuma Wardana - Interfacing 2013
7
I2C Bus Protocol I2C Line Electrical Characteristics • Utk menerapkan komunikasi I2C diperlukan 4,7 kiloOhm
Kusuma Wardana - Interfacing 2013
8
I2C Bus Protocol • Konfigurasi ini menerapkan logika AND • Sifatnya jika 1 atau lebih divais menarik line ke level nol (LOW), status line adalah nol (LOW) • level dr line menjadi 1 hanya jika tidak satupun dr divais tsb menarik line ke level nol (LOW)
Kusuma Wardana - Interfacing 2013
9
I2C Bus Protocol I2C Nodes • AVR dpt meng-handle sampai 120 divais yg berbeda • Setiap divais disebut node • Pd terminologi I2C, setiap node dpt bertindak sbg master atau slave
Kusuma Wardana - Interfacing 2013
10
I2C Bus Protocol • Master divais yg membangkitkan, menginisiasi dan memutuskan transmisi • Slave node yg menerima clock dan dialamatkan oleh master • Pd I2C, baik master ataupun slave dpt mengirim atau menerima data four modes of operation
Kusuma Wardana - Interfacing 2013
11
I2C Bus Protocol • four modes of operation : 1. Master transmitter 2. Master receiver 3. Slave transmitter 4. Slave receiver • Setiap node dapat memiliki lebih dr 1 mode operasi pada wkt yg berbeda, namun hanya memiliki 1 mode pd saat bersamaan Kusuma Wardana - Interfacing 2013
12
I2C Bus Protocol Bit Format • I2C synchronous serial protocol • Setiap data bit yg ditransfer pd line SDA disinkronkan oleh pulsa HIGH-to-LOW pd line SCL • I2C protocol line data tdk dapat berubah ketika line clock pd posisi HIGH, dan br bisa diubah ketika clock line pd posisi LOW Kusuma Wardana - Interfacing 2013
13
I2C Bus Protocol Bit Format
Kusuma Wardana - Interfacing 2013
14
I2C Bus Protocol START and STOP Bit • I2C Connection-oriented communication • Ini berarti transmisi diinisiasi oleh kondisi START dan diakhiri oleh kondisi STOP • Perlu diperhatikan: kondisi START dan STOP dibangkitkan oleh master • STOP dan START dibedakan dr bit dr alamat atau data Kusuma Wardana - Interfacing 2013
15
I2C Bus Protocol • START dan STOP dibangkitkan dgn mempertahankan level dr SCL line pd posisi HIGH dan selanjutnya mengganti level dr line SDA
Kusuma Wardana - Interfacing 2013
16
I2C Bus Protocol • START dibangkitkan oleh perubahan HIGHto-LOW pd line SDA ketika SCL HIGH • STOP perubahan LOW-to-HIGH pd SDA line ketika SCL LOW
Kusuma Wardana - Interfacing 2013
17
I2C Bus Protocol • Bus disebut dlm keadaan busy ketika berada diantara START dan STOP, & tdk ada master lain yg mencoba mengambil alih kontrol • Jika satu master yg melakukan kontrol thd bus ingin menginisiasi data transfer yg baru namun tdk ingin melepas line, maka master akan melakukan START ulang disebut kondisi REPEATED START Kusuma Wardana - Interfacing 2013
18
I2C Bus Protocol • Repeated Start:
Kusuma Wardana - Interfacing 2013
19
I2C Bus Protocol Packet Format in I2C • Pd I2C setiap alamat atau data yg akan ditransfer hrs di-frame dlm suatu paket • Setiap paket 9 bit • 8-bit pertama akan ditempatkan pd line SDA • Bit ke 9 adalah acknowledge oleh receiver atau NACK (not acknowledge) Kusuma Wardana - Interfacing 2013
20
I2C Bus Protocol • Utk mendptkan acknowledge transmiter melepaskan line SDA pd clock ke 9 sehingga receiver dpt mem-pull line SDA ke LOW utk mengindikasikan ACK • Jika receiver tidak mem-pull ke line SDA akan dipertimbangkan sbg NACK. • Pd I2C setiap paket dpt berupa alamat dan data • Data transfer komplit: START condition + address packet + satu atau lebih data paket + STOP condition Kusuma Wardana - Interfacing 2013
21
I2C Bus Protocol
Kusuma Wardana - Interfacing 2013
22
I2C Bus Protocol Address Packet Format • Semua paket akan ditransfer dgn lebar 9-bit • Alamat terdiri dr: • 7 - bit alamat • 1 - bit READ/WRITE • 1 - bit aknowledge
Kusuma Wardana - Interfacing 2013
23
I2C Bus Protocol Address Packet Format
Kusuma Wardana - Interfacing 2013
24
I2C Bus Protocol • Jika READ/WRITE = 1 master akan membaca frame (data) berikutnya dr slave • Jika READ/WRITE = 0 master akan menulis frame (data) berikutnya pd bus ke slave • Ketika slave mengetahui bahwa dia sedang dialamati maka slave hrs memberi ACK pd bit 9 dgn mengubah SDA ke LOW • Jika krn suatu alasan tdk mau melayani master maka SDA akan tetap HIGH pd bit ke 9 Kusuma Wardana - Interfacing 2013
25
I2C Bus Protocol Contoh: • Bagaimana master bertindak jika ingin menulis slave dgn alamat 1001101?
Kusuma Wardana - Interfacing 2013
26
I2C Bus Protocol Jawab: • Master akan memberikan pulsa HIGH-to-LOW pd SDA, sedangkan SCL pd posisi HIGH utk membangkitkan kondisi START • Master akan mengirimkan data 10011010 ke bus. • 8 bit pertama: 10011010 mengindikasikan alamat slave • Bit ke 8 = 0 utk WRITE dan mengatakan bahwa master akan menulis byte berikutnya (data) ke slave Kusuma Wardana - Interfacing 2013
27
I2C Bus Protocol • Jawab:
Kusuma Wardana - Interfacing 2013
28
I2C Bus Protocol Contoh: • Bagaimana master bertindak jika ingin menulis slave dengan nilai 1111000 utk alamat 1001101?
Kusuma Wardana - Interfacing 2013
29
I2C Bus Protocol Contoh:
Kusuma Wardana - Interfacing 2013
30
Daftar Pustaka • Daniel J.Pack and Steven F.Barrettt, 2008, Atmel AVR Microcontroller Primer: Programming and Interfacing, Morgan & Claypool Publisher • Mazidi, Naimi and Naimi, 2011, The AVR Microcontroller and Embedded System: Using Assembly and C, Prentice Hall • AVR ATmega16 Manual, Atmel Corporation Kusuma Wardana - Interfacing 2013
31