Anda di halaman 1dari 5

INTER INTERGRATED CIRCUIT ( I2C )

Bus adalah sistem pengantar yang dilengkapi dengan komponen pengendali


untuk melayani pertukaran data antara komponen Hardware satu dengan komponen
Hardware lainnya. Pada sistem mikrokontroler terdapat bus Data, bus Alamat, dan
beberapa pengantar pengendali. Semakin tinggi frekuensi clok prosesor, maka semakin
lebih cermat pengembang untuk memperhatikan Timing dari seluruh komponen yang
terlibat, agar tidak terjadi kesalahan dalam transaksi data. Bus yang cukup sering
digunakan adalah bus bersifat paralel. Transaksi data dilakukan secara paralel sehingga
transaksi data lebih cepat. Akan tetapi disisi lain Mahal. Jika sistem relatif tidak
membutuhkan transaksi yang cepat, maka penggunaan Serial Bus menjadi pilihan.
Salah satu pilihan sistem data bus yang sering digunakan adalah I2C (Inter Integrated
Circuit). Sistem Bus I2C pertamakali diperkenalkan oleh Firma Philips pada tahun
1979.
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial
dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun
menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial
Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang
dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave.

Master adalah piranti yang memulai transfer data pada I2C Bus dengan
membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan
membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.

Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan


sebagai perubahan tegangan SDA dari 1 menjadi 0 pada saat SCL 1.
Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai
perubahan tegangan SDA dari 0 menjadi 1 pada saat SCL 1. Kondisi
sinyal Start dan sinyal Stop seperti tampak pada Gambar 1.
Gambar 1. Kondisi sinyal start dan stop

Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang
disimbolkan dengan ACK Setelah transfer data oleh master berhasil diterima slave,
slave akan menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan
membuat SDA menjadi 0 selama siklus clock ke 9. Ini menunjukkan
bahwa Slave telah menerima 8 bit data dari Master. Kondisi sinyalacknowledge seperti
tampak pada Gambar 2.

Gambar 2. Sinyal ACK dan NACK

Dalam melakukan transfer data pada I2C Bus, kita harus mengikuti tata cara yang telah
ditetapkan yaitu:
Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk.
Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL
dalam keadan tinggi. Keadaan perubahan 1 atau 0 pada SDA hanya dapat
dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan
SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap
sebagai sinyal Start atau sinyal Stop.
Gambar 3. Trasfer Bit pada I2C bus
Karakter I2C :
1. Serial Bus Data dikirim serial secara per-bit.
2. Menggunakan dua Penghantar Koneksi dengan ground bersama I2C terdiri dari
dua penghantar:
SCL (Serial Clock Line) untuk menghantarkan sinyal clock.
SDA (Serial Data) untuk mentransaksikan data
3. Jumlah Peserta Bus maximal 127 Peserta dialamatkan melalui 7-bit-alamat. Alamat
ditetapkan kebanyakan secara hardware dan hanya sebagian kecil dapat dirubah.

4. Pengirim dan Penerima


Setiap transaksi data terjadi antara pengirim (Transmitter) dan penerima
(Receiver). Pengirim dan penerima adalah peserta bus.
5. Master and Slave
Device yang mengendalikan operasi transfer disebut Master, sementara device
yang di kendalikan olehmaster di sebut Slave.

Aturan Komunikasi I2C

1. I2C adalah protokol transfer data serial. Device atau komponen yang mengirim
data disebut transmitter, sedangkan device yang menerimanya disebut receiver.
2. Device yang mengendalikan operasi transfer data disebut master, sedangkan
device lainnya yang dikendalikan oleh master disebut slave.
3. Master device harus menghasilkan serial clock melalui pin SCL, mengendalikan
akses ke BUS serial dan menghasilkan sinyal kendali START dan STOP.

Definisi-definisi Kondisi Bus

1. Bus not busy: Pada saat ini Bus tidak sibuk, SCL dan SDA dua-duanya dalam
keadaan HIGH.
2. Start data transfer: Ditandai dengan perubahan kondisi SDA dari HIGH ke LOW
ketika SCL HIGH.
3. Stop data transfer: Ditandai dengan perubahan kondisi SDA dari LOW ke HIGH
ketika SCL HIGH.
4. Data valid: Data yang dikirim bit demi bit dianggap valid jika setelah START,
kondisi SDA tidak berubah selama SCL HIGH, baik SDA HIGH maupun SDA
LOW tergantung dari bit yang ingin ditransfer. Setiap siklus HIGH SCL baru
menandakan pengiriman bit baru. Duty cycle untuk SCL tidak mesti 50%, tetapi
frekuensi kemunculannya hanya ada 2 macam, yaitu mode standar 100kHz dan fast
mode atau mode cepat 400kHz. Setelah SCL mengirimkan sinyal HIGH yang
kedelapan, arah transfer SDA berubah, sinyal kesembilan pada SDA ini dianggap
sebagai acknowledge dari receiver ke transmitter.
5. Acknowledge: Setiap receiver wajib mengirimkan sinyal acknowledge atau sinyal
balasan setiap selesai pengiriman 1-byte atau 8-bit data. Master harus memberikan
ekstra clock pada SCL, yaitu clock kesembilan untuk memberikan kesempatan
receiver mengirimkan sinyal acknowledge ke transmitter berupa keadaan LOW
pada SDA selama SCL HIGH. Meskipun master berperan sebagai receiver, ia tetap
sebagai penentu sinyal STOP. Pada bit-akhir penerimaan byte terakhir, master
tidak mengirimkan sinyal acknowledge, SDA dibiarkan HIGH oleh receiver dalam
hal ini master, kemudian master mengubah SDA dari LOW menjadi HIGH yang
berarti sinyal STOP.

Mode Pengoperasian Transfer Data Tergantung kondisi bit R/W, 2 jenis transfer
dimungkinkan, yaitu :
1. Data transfer from a master transmitter to a slave receiver.
Byte pertama yang dikirimkan oleh master adalah alamat slave, setelah itu master
mengirimkan sejumlah byte data. Slave atau receiver mengirimkan sinyal
acknowledge setiap kali menerima 1-byte data. Pada tiap byte, bit pertama yang
dikirim adalah MSB.

2. Data transfer from a slave transmitter to a master receiver.


Meskipun master berperan sebagai receiver, byte pertama dikirimkan oleh master
berupa alamat slave. Setelah itu slave mengirimkan bit acknowledge, dilanjutkan
dengan pengiriman sejumlah byte dari slave ke master. Master mengirimkan bit
acknowledge untuk setiap byte yang diterimanya, kecuali byte terakhir. Pada akhir
byte, master mengirimkan sinyal not acknowledge, setelah itu master
mengirimkan sinyal STOP.

Berikut ini beberapa kelebihan dan kekurangan menggunakan komunikasi data I2C.

Kelebihan Kekurangan

Semua piranti slave dapat diakses Jarak dekat


hanya menggunakan tiga kabel Kecepatan rendah 100 KHz,
Biaya murah dan mudah untuk meskipun ada piranti slave 400 KHz
implementasinya dan 1 MHz, ini tidak dapat
Di implementasikan pada hardware bersama-sama dengan piranti yang
atau software berkecepatan rendah
Mendukung konfigurasi multi- Pengalamatan piranti yang terbatas
master (limited).