Home

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.

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

  • START
  • STOP
  • RESTART
  • DATA TRANSFER
  • DATA STATES
  • ACK Condition
  • NACK Condition

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
  • 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

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 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.

Selesai membaca isi SEEPROM Master menutup komunikasi dengan mengirimkan sinyal STOP.

Diposkan oleh AF_Dhol Group

0 komentar:

Kamis, 08 April 2010

Cara Mengisi eeprom serial ke mikrokontroller

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.

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

  • START
  • STOP
  • RESTART
  • DATA TRANSFER
  • DATA STATES
  • ACK Condition
  • NACK Condition

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
  • 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

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 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.

Selesai membaca isi SEEPROM Master menutup komunikasi dengan mengirimkan sinyal STOP.

Tidak ada komentar:

Poskan Komentar

Visit the Site
MARVEL and SPIDER-MAN: TM & 2007 Marvel Characters, Inc. Motion Picture © 2007 Columbia Pictures Industries, Inc. All Rights Reserved. 2007 Sony Pictures Digital Inc. All rights reserved. blogger templates.
Distributed by Deluxe Templates