i2c

Upload: tri-d-pamungkas

Post on 12-Jul-2015

72 views

Category:

Documents


0 download

TRANSCRIPT

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...

Sekapur Sirih

Contact Us

Product & Service

Home

Home Main Menu Home Sekapur Sirih

Sekapur Sirih

Product & Service You are here: Home Protocol I2C

Contact Us Digital - Computer

Guest Book Memahami Sistem Komuniksi Data Serial Menggunakan

Site Tools

Product & Service Contact Us Guest Book

Memahami Sistem Komuniksi Data Serial Menggunakan Protocol I2CWritten by Mujahidin Thursday, 07 May 2009 Mengatasi terbatasnya jumlah kaki IC prosesor, berapa perusahaan IC mengembangkan teknik transfer data secara seri untuk menghubungkan IC prosesor ke IC pendukungnya, transfer data secara seri antar IC ini tidak ada hubungannya dengan transfer data seri yang biasa dipakai untuk modem.

Free Tutorial Analog Digital - Computer PIC Microcontroller PLC AVR Microcontroller Fuzzy Logic UIB Student About me My Favourite Links My Friends BLOG Voucher Pulsa Elektrik TERMURAH Lek - PAM AndiQ Hendawan Lia / Endra Dimas Robeevanjava UIB Robotic Club Syndicate

Sebuah IC memori dengan kapasitas 2 KiloByte yang dibentuk dengan teknik transfer data secara pararel paling tidak mempunyai 24 kaki, yaitu : 8 kaki untuk jalur data, 11 kaki untuk jalur penomoran memori (jalur alamat), 3 kaki untuk jalur kontrol, 2 kaki untuk catu daya. 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. Teknik transfer data secara seri antar IC dikembangkan oleh 3 perusahaan IC, yang pertama adalah teknik I2C (Inter Integrated Circuit) yang dikenalkan oleh Philips, teknik SPI (Serial Peripheral Interface) dari Motorola dan teknik MicroWire ciptaan National Semiconductor. Teknik I2C memakai 2 jalur untuk keperluan transfer data secara seri, sedangkan SPI dan MicroWire memakai 3 jalur. Semua teknik mempunyai 1 jalur untuk Clock, I2C hanya punya satu jalur data 2 arah, sedangkan SPI dan MicroWire mempunyai 2 jalur data satu arah, masing-masing untuk jalur data masuk dan jalur data keluar. Konsep I2C I2C termasuk jenis komunikasi serial dengan tipe protokol Synchronous, dimana setiap bit data masuk atau data keluar search...

seirama atau sinkron dengan perubahan clock.

Polling Hal ini sangat beda dengan RS-232 dan tipe potrocol asynchronous yang lain yang tidak mempunyai clock, akan tetapi pada tipe asynchronous data masuk dan data keluar berdasarkan pada kecepatan tertentu yang konstan. What do you like? ( Mana yang anda suka? ) I2C versi 1.0 dikenalkan oleh Philips pada tahun 1992, direvisi menjadi versi 2.0 pada tahun 1998, setahun kemudian direvisi AVR lagi menjadi versi 2.1 MCS-51 Komunikasi data secara I2C dilakukan melalui dua saluran, masing-masing adalah saluran data secara seri (SDA) = Serial Data saluran clock (SCL) = Serial Clock PIC Microchip ST7 Renesas

Other Type kedua saluran ini dikenal sebagai I2C Bus yang dipakai menghubungkan banyak IC I2C untuk berbagai macam keperluan. Microcontroller Vote 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). Yang bertindak sebagai master adalah Mikrokontroler / Komputer yang bertugas mengendalikan I2C Bus. Results

Free Resource For Embedded Holic

ATTENTION

Anda Di HALAL-KAN MENGCOPY-PASTE isi dari BLOG ini. Bagi pengunjung yang suka

1 of 7

12/12/2011 09:37 AM

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...dan nyaman dengan isi Blog ini silahkan di nikmati dan dikunjungi lagi lain waktu, Bagi yang tidak suka Jangan pernah lagi mengunjungi Blog ini. Kami lebih suka menerima saran dan kritikan dari anda dengan mencantumkan data sesuai identitas resmi anda.

Live Trac Feed

See your visitors in RealTime! Get the Free Live Trac Feed Get Feedjit Now! A visitor from Surabaya, Jawa Timur viewed ".:: Microholic Mania ::. - Memahami Sistem Komuniksi Data Serial Menggunakan Protocol I2C" 1 secs ago A visitor from Medan, Sumatera Utara viewed ".:: Microholic Mania ::. - Rahasia Dibalik Kepingan Hard Disk Dan Komponen Penyusunnya" 38 secs ago A visitor from Cilegon, Jawa Barat viewed ".:: Microholic Mania ::. - Pengenalan Pada PLC (Programable Logic Controller)" 54 secs ago A visitor from Makasar, Sulawesi Selatan viewed ".:: Microholic Mania ::. - Rahasia Dibalik Kepingan Hard Disk Dan Komponen Penyusunnya" 15 mins ago A visitor from Bandung, Jawa Barat viewed ".:: Microholic Mania ::. - Dasar - Dasar Pemrograman PLC (Bagian 1)" 24 mins ago A visitor from Jakarta, Jakarta Raya viewed ".:: Microholic Mania ::. - Membuat

Who's Online We have 1 guest online Contoh koneksi I2C Bus pada Gambar dipakai untuk menghubungkan 2 IC AT24C02 dan 1 IC PCF8574, I2C bus ini Visitor Counter dikendalikan oleh microcontroller yang berfungsi sebagai master. Today Agar data dari master bisa didistribusikan ke semua slave dengan tepat, menurut konsep I2C semua jenis IC I2C diproduksi Yesterday dengan nomor group tersendiri yang diatur oleh Philips, sehingga pabrik IC lain yang memproduksi IC I2C harus All mendaftarkan produknya ke Philips untuk mendapatkan nomor group. Dalam contoh di Gambar terlihat nomor group IC Serial EEPROM adalah 1010 biner, nomor group dari IC Remote 8 bit I/O Google Expander adalah 0111 biner. 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. Maka dalam konsep I2C ditentukan sinyal dan tatacara dasar untuk memperlancar komunikasi antar peralatan I2C tersebut. 143 430 300503

(C) Fliesenstadt

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 sinyalSTART STOP RESTART DATA TRANSFER DATA STATES ACK Condition NACK Condition

2 of 7

12/12/2011 09:37 AM

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...

A. START CONDITION Initializes I2C Bus SDA is pulled low while SCL is High

Elemen yang pertama adalah START. Kondisi START mengindikasikan bahwa devais akan memulai transfer data pada bus I2C. Pertama SDA menjadi LOW diikuti kemudian SCL. B. STOP CONDITION Releases I2C Bus SDA is released while SCL is high

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 Reinitializes I2C Bus Used when START does NOT follow STOP

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. STOP = SDA goes high while SCL is high

3 of 7

12/12/2011 09:37 AM

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...

START = SDA pulled low while SCL is high

D. DATA TRANSFER 8 bits of data is sent on the bus Data valid when SCL is high

Blok data disini merepresentasikan proses transfer informasi data sebanyak 8 bit. Data dikirim melalui jalur SDA, sedangkan SCL tetap menghasilkan clock sebagai pendorong pergerakan setiap bit data. 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. Data byte ini digunakan untuk mentransfer semua jenis informasi data, bisa jadi data tersebut sebagai control code, addres code atau data code itu sendiri tergantung dari protocol yang anda bentuk 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 Acknowledges a data transfer ACK is when the recipient drives SDA low

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 Negatively Acknowledges a data transfer NACK is The recipients does Not drive SDA Low

4 of 7

12/12/2011 09:37 AM

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...

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 Karena IC I2C hanya dikendalikan lewat kaki SDA dan SCK saja, tidak ada sarana lainnya dari master yang bisa dipakai untuk mengendalikan I2C, maka alamat yang dipakai untuk memilih isi IC I2C dikirimkan secara serial pula, persis seperti halnya pengiriman data. Pengalamat dasar IC I2C dilakukan dengan Nomor Group dan Nomor Chip. Nomor Group adalah nomor yang diberikan oleh Philips (sebagai pencipta I2C) pada kelompok-kelompok IC I2C. Sebagai contoh nomor group untuk Serial EEPROM adalah 1010 (biner). Nomor Chip adalah nomor yang diberikan pada masing-masing chip lewat kaki A0,A1 dan A2 dari masing-masing IC. Dalam IC I2C tertentu, A0..A2 tidak dihubungkan ke kaki IC, tapi dipakai didalam IC untuk menomori register/memori di dalam IC bersangkutan. 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: 1. IC-IC pada I2C Bus yang mempunyai Nomor Group sama dengan Nomor Group dalam byte partama tersebut akan terpanggil 2. Berikutnya IC-IC dengan Nomor Group sama tersebut akan membandingkan Nomor Chip dalam byte pertama, nomor chip tidak mungkin sama. 3. Bit Penentu Arah Data dipakai untuk memberi tahu IC I2C arah data yang dikehendaki, apakah master akan mengirim data atau master menghendaki kiriman data. IC Serial EEPROM Buatan ATMEL 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).

Kaki SDA (kaki nomor 5) dan kaki SCK (kaki nomor 6) merupakan kaki baku IC jenis I2C, kedua kaki inilah yang mebentuk I2C Bus. Kaki nomor 7 (WP Write Protect) merupakan kaki yang dipakai untuk melindungi isi yang disimpan di dalam IC Serial EEPROM, jika kaki ini diberi tegangan 1 maka IC dalam keadaan ter-proteksi, isinya tidak dapat diganti. Agar bisa menuliskan informasi ke dalam IC ini, kaki ini harus diberi tegangan 0. Kaki nomor 1 sampai dengan nomor 3 (A0, A1 dan A2) merupakan fasilitas untuk penomoran chip, hal ini diperlukan kalau dalam satu rangkaian dipakai lebih dari satu IC SEEPROM sejenis. Misalnya dalam satu rangkaian dipakai 3 chip AT24C02, SDA dan SCK ketiga IC ini masing-masing dihubungkan jadi satu membentuk I2C Bus, agar ketiga IC ini bisa dipakai secara terpisah kaki A0..A2 (kaki nomor 1 sampai nomor 3) masing-masing AT24C02 diberi level tegangan seperti terlihat pada Tabel

5 of 7

12/12/2011 09:37 AM

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...

dibawah.

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! Setelah mengirimkan alamat SEEPROM yang akan diisi, Master mengirim data yang diisikan ke AT24Cxx, setiap kali selesai menyimpan data AT24Cxx dengan sendirinya menaikkan alamat SEEPROM yang disimpannya, dengan demikian kiriman data selanjutnya akan disimpan ke memori berikutnya, proses pengisian ini akan berhenti setelah master menutup komunikasi ini dengan sinyal STOP. 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.

6 of 7

12/12/2011 09:37 AM

.:: Microholic Mania ::. - Memahami Sistem Komuniksi D...

http://iddhien.com/index.php?option=com_content&task...

Selesai membaca isi SEEPROM Master menutup komunikasi dengan mengirimkan sinyal STOP. Last Updated ( Thursday, 07 May 2009 )

Next > [ Back ]

DISCLAIMER :

MATERIAL PUBLISHED ON THIS BLOG IS SUBMITTED BY OWNER. MOST OF THE MATERIAL ON THIS BLOG IS NOT MADE BY ME. I ONLY COLLECT THEM AND PUT THEM IN MY GALLERIES. ALL NEWS HAVE BEEN GATHERED FROM THE INTERNET, FROM FREE SITE, FORUM, FRIENDS, USERS ETC. AND ARE BELIEVED TO BE IN THE "PUBLIC DOMAIN". IF YOU ARE THE RIGHTFULL OWNER OF ANY MATERIAL AND WANT IT REMOVED PLEASE CONTACT ME AND I WILL REMOVE IT IMMEDIATELY ON DEMAND

Copyright 2005 - 2011 .:: Microholic Mania ::..

7 of 7

12/12/2011 09:37 AM