Mengenal Komunikasi I2C


I2C singkatan dari Inter-Integrated Circuit merupakan cara komunikasi data secara serial diantara perangkat I2C dengan dua jalur. Pada protokol I2C, data dikirim secara serial melalui jalur SDA, sedangkan untuk clock dikirim melalui jalur SCL.

Komunikasi I2C
I2C Philips mendefinisikan konsep perangkat master dan slave. Perangkat master adalah suatu perangkat yang mengatur jalur pada waktu komunikasi bekerja. Selain itu perangkat master juga mengatur signal START dan STOP juga clock. Sedangkan untuk perangkat slave akan menunggu signal dari master dan berjalan sesuai signal dan data yang dikirimkan. Perangkat master dapat mengirim data ke slave dan menerima data dari slave, tetapi slave tidak dapat berkomunikasi antar slave.
Urutan proses membaca (read) dan menulis (write) dari perangkat master ke slave secara I2C yaitu sebagai berikut.
  • Mengirimkan bit START (S)
  • Mengirimkan alamat slave yang dituju (ADDR)
  • Mengirimkan bit baca (READ / R – 1) atau bit tulis (WRITE / W – 0)
  • Menunggu bit acknowledge (A)
  • Mengirimkan byte data (DATA) sebesar 8 bit
  • Mengirimkan bit acknowledge (A)
  • Mengirimkan bit STOP (P)
Proses mengirimkan data byte dan bit acknowledge dapat diulang sehingga beberapa blok data dapat ditulis atau dibaca.
Perangkat master mengirimkan urutan S ADDR W kemudian menunggu bit acknowledge (A) dari slave yang hanya akan diberikan oleh slave jika alamat yang dikirimkan oleh master sesuai dengan alamat pada slave. Jika bit acknowledge (A) dikirim, perangkat master akan mengirimkan DATA dan menunggu bit acknowledge (A) dari slave. Perangkat master akan mengakhiri proses transfer DATA byte dengan memberikan signal STOP atau mengirim START untuk pengiriman data lagi.
Proses yang hampir sama pada saat master membaca byte dari perangkat slave, hanya bedanya kali ini R (READ) yang dikirimkan. Setelah data dikirimkan dari slave ke master, master mengirimkan signal acknowledge (A), jika master tidak mau menerima data lagi dari slave, sinyal not-acknowledge (NACK) akan dikirimkan yang berarti slave harus selesai melakukan proses pengiriman informasi. Proses tersebut akan membuat perangkat master mengirimkan signal STOP atau signal START yang berulang.
Untuk setiap komponen dalam bus I2C harus memiliki alamat masing-masing yang unik. Kapasitas maximum dari komponen yang dihubungkan menggunakan jalur I2C dibatasi oleh jumlah alamat maximum dan total kapasitansi bus I2C, yakni 400 pF.
Untuk signal START dan STOP merupakan signal unik yang hanya dapat dibuat oleh perangkat master. Bit START dan STOP didefinisikan sebagai rising edges atau falling edges di jalur data bus ketika jalur clock tetap bernilai logika high.
Lihat juga mengenai komunikasi SPI.