1. Komponen [kembali]
1. Apakah kita dapat mengirim data sebanyak
9 bit? Jelaskan alasannya!
Jawab:
Jika mengirim data, Master
hanya dapat mengirimkan sejumlah byte
(masing-masing 8 bit). Saat proses
transmitting dari Master, 7 bit pertama sebagai alamat Slave yang akan dituju (Address frame),
1 bit kemudian sebagai
R/W bit untuk memberitahukan ke Slave-slave apakah
Master akan menerima atau mengirimkan data.
Sedangkan bit ke-9, bit tersebut akan dikeluarkan oleh Slave sebagai tanda bahwa data telah diterima oleh receiver
(ACK/NACK). Kemudian, Master akan menulis
data 8 bit (Data frame) dan bit-9 oleh Slave sebagai sinyal acknowledge / ACK
(berlogika 0) yang dikeluarkan Slave kembali untuk dapat menerima data
selanjutnya hingga
SDA menerima sinyal
Not Acknowladge / NACK (berlogika 1) untuk mengakhiri transfer
data.
2. Bagaimana cara master mengirimkan address ke slave?
Berapa bit address yang dikirim? Berapa address unit yang dapat tercipta oleh
master?
Jawab:
Komunikasi I2C atau inter integrated circuit adalah komunikasi
yang memungkinkan terjadinya komunikasi antara controller. jenis
komunikasi ini memiliki pin sendiri pada arduino yaitu pin SDA dan SCL. setiap
bit akan ditransfer pada kaki SDA dan akan di sinkronisasikan oleh pulsa clock
pada SCL. setiap bit akan ditransfer pada pin SDA dalam bentuk 8 bit dan 1 bit
ditransferkan pada clock atau SCL. untuk transfer data pada I2C harus dalam
bentuk 8 bit sehingga semua data yang ditransfer dikonfersi kedalam bentuk 8
bit yaitu 256. rangkaian ini terdiri dari potensiometer.
Pulsa START dibaca oleh Slave pada bus SDA dalam
keadaan LOW pada saat pulsa clock dalam HIGH. Setelah dikirimkan, maka pada
clock berikutnya Master mengirimkan 8 bit alamat, yang dikirimkan secara serial
melalui bus SDA, ke Slave dengan format B6, B5, B4, B3, B2, B1, B0, dan R/W.
Bit alamat tersebut mengandung informasi R/W pada LSB. Jika LSB pada byte
alamat “1” maka master ingin membaca data dari Slave tetapi jika LSB byte
alamat “0” maka master akan menulis pada slave. Karena hanya 7 bit yang
dipergunakan dalam byte alamat maka banyaknya device yang dapat dijadikan slave
hanya 127. Alamat 0 dipergunakan untuk General Call. Bila alamat dan perintah, R/W,
yang dikirim master dapat diterima oleh slave dan akan membangkitkan pulsa LOW
(ACK), pada bus SDA, jika perintah tersebut dapat dijalankan dan pulsa HIGH
(NACK) jika perintah tersebut gagal. 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. Address yang dapat tercipta oleh master dari
kerja I2C bus dapat dibedakan menjadi format 7 bit addressing dan format 10 bit
addressing.