Membuat I2C Serial EEPROM Copier

Serial EEPROM kini banyak dipakai dalam peralatan elektronik konsumer, kalau sampai isinya kacau alat elektronik itu tidak bisa bekerja lagi, diganti dengan IC baru pun tidak berguna kalau IC baru itu belum diisi dengan alat ini.

Alat ini merupakan contoh pemakaian microcontroller yang sangat khas, meskipun prinsipnya sangat sederhana tapi hampir tidak mungkin dibuat dengan rangkaian digital biasa tanpa menggunakan microcontroller.

Serial EEPROM jenis I2C merupakan jenis yang banyak dipakai, hal ini disebabkan hubungan ke IC ini hanya memerlukan dua saluran, sedangkan Serial EEPROM jenis lain (MicroWire maupun SPI) memerlukan tiga saluran untuk berhubungan dengan pengendalinya. Dari sisi perangkat keras, sistem I2C memang benar-benar tidak banyak tuntutannya, bahkan jika dalam suatu sistem dipasang beberapa Serial EEPROM jenis I2C, hubungan antara pengendali ke IC-IC tersebut tetap sama, data disalurkan lewat SDA dan didorong denga clock yang ada di SCK.

Kemudahan ini di-‘bayar’ dengan tata cara komunikasi data antar IC yang cukup rumit, tata cara tersebut tidak sulit dipenuhi dengan teknik pemrograman, tapi betul-betul memerlukan upaya tidak kecil kalau ingin diselesaikan dengan rangkaian digital biasa tanpa memakai microcontroller.

IC SEEPROM Jenis I2C

IC Serial EEPROM jenis I2C butan Atmel diproduksi 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).

Keluarga AT24Cxx terdiri dari 9 macam IC seperti terlihat di Gambar 1(b), kesembilan IC itu berbeda kapasitas, tapi mempunyai susunan kaki IC yang sama, seperti terlihat pada Gambar 1 (a).

Kaki SDA (kaki nomor 5) dan kaki SCK (kaki nomor 6) merupakan kaki standard 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 bersangkutan, jika kaki ini diberi tegangan ‘1’ maka IC ini 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 pada chip pertama kaki nomor 1 sampai nomor 3 disusun menjadi A0=’0’ A1=’0’ dan A2=’0’ (sebagai Chip nomor 1), chip kedua disusun A0=’1’ A1=’0’ dan A2=’0’ (sebagai Chip nomor 2), chip ketiga disusun A0=’0’ A1=’1’ dan A2=’0’ (sebagai Chip nomor 1).

Meskipun demikian, A0 A1 dan A2 tidak selalu ada pada semua IC anggota AT24Cxx, akibatnya jumlah IC yang boleh dipasang pada I2C Bus tidak sama, gambar 1(b) memperlihatkan distribusi A0,A1 dan A2 pada masing-masing IC dan jumlah IC maksimal yang dapat dipakai bersama.


Mengalamati SEEPROM Jenis I2C

Karena IC I2C hanya dikendalikan lewat kaki SDA dan SCK saja, tidak ada sarana lainnya dari microcontroler 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 IC I2C secara dasar 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.

Byte pertama yang dikirim setelah master I2C mengirimkan sinyal START berisi nomor Group; nomor Chip dan 1 bit lagi yang dipakai untuk memberi tahu slave I2C arah data yang dikehendaki, apakah master akan mengirim data atau master menghendaki kiriman data. Hal ini digambarkan dibagian kiri Gambar 2.

Jika kapasitas data dalam IC I2C lebih dari 8 byte, maka fasilitas alamat yang dibicarakan diatas tidak akan mencukupi, dalam hal ini pada kiriman data byte kedua dikirimkan 8 bit alamat tambahan yang disebut sebagai Nomor Byte. Metode pengalamatan 11 bit ( 8 bit N0..N7 dan 3 bit A0..A2) ini bisa dipakai untuk mengalamati sampai kapasitas 2048 byte, dan dipakai pada AT24C01 sampai AT24C16.
Untuk kapasitas yang lebih besar, Nomor Byte tidak lagi 8 bit tapi dipakai Nomor Byte sebanyak 16 bit, yang dikirimkan pada byte kedua dan byte ketiga setelah sinyal START. Yang memakai cara ini adalah AT24C164, AT24C32 dan AT24C64.

Gambar 2. Mengalamati SEEPROM

Rangkaian I2C Serial EEPROM Copier

Rangkaian I2C Serial EEPROM Copier dalam Gambar 3 bisa dipakai untuk meng-copy Serial EEPROM jenis I2C type AT24C01A, AT24C02, AT24C04 dan AT24C08, type yang banyak dijumpai diperalatan elektronik konsumer. Dalam rangkaian ini, kaki A2 dari IC SEEPROM dipakai untuk membedakan SEEPROM sumber (U2-source) dan SEEPROM hasil copy (U3-target). Kaki A2 pada U2 diberi tegangan ‘0’ sedangkan kaki A2 pada U3 diberi tegangan ‘1’, sehingga Nomor Chip U2 adalah 0 dan Nomor Chip U3 adalah 4.

Selain itu untuk melindungi agar jangan sampai isi SEEPROM sumber terhapus, maka kaki WP U2 dihubungkan ke ‘1’, sedangkan kaki WP U3 dihubungkan ‘0’ agar IC ini bisa diisi.

Cara kerja alat ini sangat sederhana, pada saat alat ini belum diberi catu daya, IC SEEPROM yang akan di-copy dipasangkan di U2 dan IC SEEPROM baru yang akan diisi dipasangkan di U3. Begitu diberi catu daya LED langsung nyala sebagai tanda alat siap kerja, proses copy dimulai setelah tombol SW1 ditekan, setelah selesai LED akan padam dan kedua IC SEEPROM bisa diambil setelah catu daya dimatikan.

Gambar 3. I2C Serial EEPROM Copier

Program Pengendali Rangkaian I2C Serial EEPROM Copier

Tugas utama program dalam AT89C2051 adalah membaca isi SEEPROM sumber dan kemudian menuliskan ke SEEPROM baru. AT89C2051 membaca byte demi byte dari SEEPROM sumber dan ditampung dulu di RAM yang ada didalam chip AT89C2051, setelah terkumpul sebanyak 32 byte hasil bacaan itu dituliskan ke SEEPROM target.

Proses diatas diulang 32 kali, dengan demikian AT24C08 yang kapasitasnya 1024 byte habis ter-copy. Bagi SEEPROM yang lebih kecil dari AT24C08, proses copy ini akan dihentikan begitu AT89C2051 gagal membaca isi SEEPROM sumber, sehingga rangkaian ‘I2C Serial EEPROM Copier’ ini tidak perlu diberi tahu IC SEEPROM type mana yang terpasang.

Teknik Elektronika dan Radio Komunikasi

Iklan feed

Populer

Cara Mengukur Trafo dengan Multitester Analog / Digital

Rangkaian Lampu TL Tanpa Trafo Ballast

Apa Itu Ballast Lampu, Fungsi dan Tipenya