Apa itu IC AT24C128/256
IC AT24Cxxx merupakan komponen elektronika dari Atmel yang berfungsi sebagai EEPROM (Electrically Erasable Programmable Read Only Memory). Kapasitas penyimpanan untuk IC AT24Cxxx bervariasi tergantung modelnya. Untuk model 128 memiliki kapasitas 16 KB dan model 256 memiliki kapasitas 32 KB.
Struktur Penyimpanan AT24Cxxx
Kapasitas penyimpanan 32 KB pada IC AT24C256 mengacu pada jumlah total data yang dapat disimpan dalam IC tersebut. 1 kilobyte sama dengan 1024 byte. Jika IC AT24C256 memiliki kapasitas 32 KB, berarti IC tersebut mampu menyimpan hingga 32 x 1024 = 32768 byte data.
EEPROM seperti AT24C256 menyimpan data dalam blok-blok kecil yang disebut halaman (pages). Ukuran halaman untuk EEPROM ini biasanya adalah 64 byte. Jadi, jika dengan kapasitas 32 KB akan memiliki 512 halaman (32768 byte / 64 byte per halaman).
Pin |
Deskripsi |
A0 |
Address input |
A1 |
Address input |
A2 |
Address input |
GND |
Ground |
SDA |
Serial Data |
SCL |
Serial Clock Input |
WP |
Write Protect |
VCC |
Power Supply |
Bagaimana Operasional AT24Cxxx
IC AT24C256 dapat diakses melalui protokol komunikasi I2C. Device address biasanya bersifat tetap, bisa dicek menggunakan program example yaitu I2C Scanner. Karena AT24C256 memiliki kapasitas 32 KB, maka dibutuhkan 2 byte untuk mengirimkan alamat penuh (15 bit). Untuk menulis data (write) perlu melakukan pengiriman serangkaian byte berikut,
Device Address >> Data Address (byte pertama) >> Data Address (byte kedua) >> DATA.
sedangkan untuk membaca (read), hanya perlu mengirimkan Device Address >> Data Address (2 byte).
Dibutuhkan waktu jeda 5 ms pada setiap perintah menulis (write) atau membaca data(read).
Contoh Implementasi AT24C256 dengan Arduino
Rangkaian Skematik AT24C256 dengan arduino
Code/Program AT24C256 dengan Arduino
Code dibawah merupakan fungsi untuk membaca dan menulis data ke memory saja. Masih perlu dilengkapi dengan penambahan library I2C (#include Wire.h). Penambahan setup I2C di void setup() (Wire.begin). Serta pemanggilan fungsi itu sendiri. Perlu diingat maksimal value yang dapat disimpan pada setiap address adalah 1 byte (8 bit), sehingga value maksimal yang mampu disimpan adalah '255'. Apabila ingin menyimpan value lebih dari itu, gunakan 2 address dan bagi value menjadi 2 (MSB & LSB).
Tidak ada komentar:
Posting Komentar