Written by Mujahidin | |
Thursday, 07 May 2009 | |
Memori yang sama kalau dibentuk dengan teknik transfer data secara seri mempunyai 8 kaki, dan hanya 2 atau 3 kaki yang perlu dihubungkan ke prosesor. Dengan demikian IC dengan teknik transfer data secara seri banyak dipakai dalam rancang bangun peralatan berbasis prosesor. I2C termasuk jenis komunikasi serial dengan tipe protokol Synchronous, dimana setiap bit data masuk atau data keluar seirama atau sinkron dengan perubahan clock. I2C versi 1.0 dikenalkan oleh Philips pada tahun 1992, direvisi menjadi versi 2.0 pada tahun 1998, setahun kemudian direvisi lagi menjadi versi 2.1
kedua saluran ini dikenal sebagai I2C Bus yang dipakai menghubungkan banyak IC I2C untuk berbagai macam keperluan. IC-IC I2C itu dibedakan menjadi induk (master) dan anak buah (slave), yang dimaksud dengan induk adalah peralatan I2C yang memulai transfer data dan yang membangkitkan clock (SCK).
Contoh koneksi I2C Bus pada Gambar dipakai untuk menghubungkan 2 IC AT24C02 dan 1 IC PCF8574, I2C bus ini dikendalikan oleh microcontroller yang berfungsi sebagai master. Agar data dari master bisa didistribusikan ke semua slave dengan tepat, menurut konsep I2C semua jenis IC I2C diproduksi dengan nomor group tersendiri yang diatur oleh Philips, sehingga pabrik IC lain yang memproduksi IC I2C harus mendaftarkan produknya ke Philips untuk mendapatkan nomor group. Di samping itu saat ini di pasar beredar cukup banyak IC I2C, misalnya IC untuk MPEG2 encoder (SAA6750, nomor group 0100 biner), IC untuk radio mobil AM (TEA6821/2 nomor group 1100 biner) sampai IC untuk Universal Serial Bus (PDIUSB11 nomor group 0011 biner). Karakteristik Sinyal I2C Mengingat hanya 2 saluran saja yang dipakai I2C Bus, pada hal I2C Bus diharapkan bisa dipakai membentuk jaringan kecil dengan banyak peralatan I2C. Signal Level I2C Jalur I2C hanya mempunyai 2 keadaan (Secara Electrical) yaitu Float High dan Drive Low. I2C bekerja dengan Resistor Pull-up. Jika tidak ada device yg terkoneksi maka jalur ini menjadi “Float High”, oleh karena itu diperlukan resistor pull-up pada I2C. I2C Pull-up Resistor Setting Suggestion Anda bisa memilih bebas nilai resistor pull-up yang akan dipasang. Namun direkomendasikan seperti tabel gambar diatas. Sinyal dasar I2C meliputi sinyal
A. START CONDITION
B. STOP CONDITION
Elemen berikutnya yaitu “STOP” condition. STOP mengindikasikan bahwa devais telah selesai melakukan transfer data dan akan release dari bus.
Signal yang dibentuk dari STOP ini pertama adalah jalur SCL release diikuti dengan SDA yang juga release. Perlu diingat bahwa ketika jalur release berarti driver dalam keadaan OFF sehingga pada jalur tinggal resistor pull-up, dan akhirnya masuk kedalam keadaan “Float High”. Setelah STOP, jalur I2C semua menjadi HIGH dan disebut dg kondisi idle. Pada saat idle ini kondisi START dapat dimulai lagi untuk memulai mengirim data. C. RESTART CONDITION
Kondisi RESTART mengindikasikan bahwa devais ingin mengirimkan data lebih banyak lagi. Biasanya kondisi RESTART dilakukan ketika START telah terkirim tetapi kondisi STOP tidak kunjung terjadi.
Sebagai contoh misalnya Jika anda berkomunikasi dengan suatu devais misalnya serial EEPROM, anda mungkin tidak menginginkan terjadi interupsi ketika mengirimkan sejumlah data ke serial EEPROM tsb, RESTART bisa membantu anda untuk menghandle permasalahan ini. Kondisi RESTART bisa di simpulkan bahwa mula mula jalur I2C pada kondisi STOP kemudian diikuti kondisi START.
Data pada jalur SDA valid dan boleh dibaca ketika jalur clock SCL high. Karena pada saat SCL tidak high (LOW) data bisa berubah sesuai dengan nilainya. E. DATA STATES
Sebuah blok data disini bisa anda lihat, bahwa sebuah data valid boleh dibaca hanya ketika SCL transisi dari LOW ke HIGH, Dan masih valid sampai SCL high. F. ACK CONDITION
Sebuah devais dapat mengirimkan sinyal “ACK” (Sebagai tanda bahwa data telah diterima dengan sempurna) dengan cara men-drive jalur SDA menjadi Low pada clock yang ke-9 dari SCL. F. NACK CONDITION
Kebalikan dari ACK, NACK merupakan tanda bahwa data tidak bisa diterima oleh devais, sehingga tidak ada respon dari devais yang membuat SDA dibiarkan dalam kondisi “Float High”. Metode Penomoran I2C
Setelah master I2C mengirimkan sinyal START, byte pertama yang dikirim berisi nomor Group; nomor Chip dan 1 bit lagi sebagai Penentu Arah Data, seperti yang digambarkan di Gambar.
Mekanisme kerja byte pertama tersebut bisa dijelaskan sebagai berikut:
Atmel memproduksi Serial EEPROM jenis I2C dengan kode AT24Cxx, AT merupakan kode pabrik Atmel, 24 menandakan bahwa IC tersebut adalah Serial EEPROM, sedangkan xx merupakan angka yang mengindikasikan kapasitas Serial EEPROM itu dalam satuan KiloBit, sebagai contoh AT24C08 merupakan IC SEEPROM I2C berkapasitas 8 KiloBit (1 KiloByte).
Proses Menulis Pada Serial EEPROM Secara umum proses pengisian / penulisan data digambarkan pada ilustrasi dibawah ini :
Control in = 1010 0000 Secara lebih detail gambar dibawah memperlihatkan komunikasi data antara Master dan AT24Cxx dalam proses pengisian / penulisan data ke AT24Cxx. Gambar dibawah menggambarkan proses pengisian data ke AT24CXX dengan metode pengalamatan 8 bit.
Dalam satu proses pengisian data SEEPROM sinyal START dan sinyal STOP masing-masing cukup dikirim satu kali saja, yakni sinyal START dipakai untuk mengawali proses dan sinyal STOP dipakai untuk mengakhiri proses. Kedua sinyal itu bukanlah awalan dan akhiran dari pengiriman data 1 byte! Gambar dibawah menggambarkan proses pengisian data ke AT24CXX dengan metode pengalamatan 16 bit.
Proses Membaca Pada Serial EEPROM Proses pembacaan data dari AT24Cxx dilakukan seperti Gambar. Mula-mula Master mengirimkan alamat EEPROM yang akan dibaca isinya, proses ini mirip dengan bagian awal pengisian EEPROM yang dibahas di atas, setelah itu Master mengirim sinyal START sekali lagi, disusul dengan perintah untuk membaca isi EEPROM dan selanjutnya disusul dengan pembacaan isi EEPROM yang sesungguhnya.
Selesai membaca isi SEEPROM Master menutup komunikasi dengan mengirimkan sinyal STOP. |
Memahami Sistem Komuniksi Data Serial Menggunakan Protocol I2C
Kamis, 20 Agustus 2009
Memahami Sistem Komuniksi Data Serial Menggunakan Protocol I2C
Langganan:
Posting Komentar (Atom)
4 komentar:
Mau tanya.. gimana ya rangkaiannya untuk satu master (ATmega16) dua slave (ATMega16).. jadi semua mengunakan ATMega 16…. masih bingung nih mas cara menghubungkan ke pin2nya…. dan dengan I2C itu bisa buat komunikasi dua arah gak mas??
Mau tanya.. gimana ya rangkaiannya untuk satu master (ATmega16) dua slave (ATMega16).. jadi semua mengunakan ATMega 16…. masih bingung nih mas cara menghubungkan ke pin2nya…. dan dengan I2C itu bisa buat komunikasi dua arah gak mas??
Mau tanya.. gimana ya rangkaiannya untuk satu master (ATmega16) dua slave (ATMega16).. jadi semua mengunakan ATMega 16…. masih bingung nih mas cara menghubungkan ke pin2nya…. dan dengan I2C itu bisa buat komunikasi dua arah gak mas??
Mau tanya.. gimana ya rangkaiannya untuk satu master (ATmega16) dua slave (ATMega16).. jadi semua mengunakan ATMega 16…. masih bingung nih mas cara menghubungkan ke pin2nya…. dan dengan I2C itu bisa buat komunikasi dua arah gak mas??
Posting Komentar