Dalam sistem berbasis microprocessor, microcontroller, maupun PC memory merupakan perangkat yang amat penting. Memory banyak digunakan untuk menyimpan data baik yang digunakan sebagai program maupun sebagai penyimpan data yang diproses oleh processor.
Ada dua jenis memory yang dikenal yakni RAM, Random Access Memory yang dapat dibaca maupun ditulis dan ROM, Read Only Memory sesuai dengan namanya hanya dapat dibaca tidak dapat ditulis. Kedua jenis memory ini jika digunakan pada sistem berbasis microprocessor umumnya diletakkan pada ruang pengaksesan yang berbeda. Hal ini dapat dilakukan dengan membuat peta memory untuk kedua jenis memory tersebut. Pembacaan dan penulisan data dari atau menuju unit memory oleh microprocessor dapat digambarkan oleh tabel sebagai berikut :
IO/M
|
RD
|
WR
|
Chip Selects
|
Status
|
0
|
0
|
1
|
0
|
Baca memory
|
0
|
1
|
0
|
0
|
Tulis memory
|
Random Access Memory (RAM)
RAM adalah suatu memory bersifat baca tulis, artinya data dapat dibaca dari atau ditulis ke RAM dan dapat dilakukan secara berulang-ulang dengan data yang berbeda-beda. Jenis memory ini merupakan jenis volatile, yaitu data yang tersimpan akan hilang jika catu dayanya dimatikan. Karena alasan tersebut, maka program utama tidak pernah disimpan di RAM. Kata random artinya data yang disimpan pada RAM dapat diakses secara acak. RAM dibagi lagi menjadi dua jenis, yaitu jenis static dan jenis dynamic. RAM yang static menyimpan satu bit informasi dalam sebuah flip-flop. Jenis RAM ini asynchronous dan tidak memerlukan sinyal clock. RAM static biasanya digunakan untuk aplikasi-aplikasi yang tidak memerlukan kapasitas memory RAM yang besar. RAM jenis dynamic menyimpan satu bit informasi data sebagai muatan. RAM dynamic menggunakan kapasitansi gerbang substrat sebuah transistor MOS sebagai sel memory elementer. Untuk menjaga agar data yang tersimpan RAM dynamic tersebut tetaplah utuh, data tersebut harus disegarkan kembali dengan cara membaca dan menulis ulang data tersebut ke memory. RAM dynamic ini digunakan untuk aplikasi ynag memerlukan RAM dengan kapasitas besar, misalnya dalam sebuah komputer pribadi.
Read Only Memory (ROM)
Jenis memory ini datanya hanya bisa dibaca dan tidak bisa ditulis secara berulang-ulang. Memory ini bersifat non-volatile, artinya data yang disimpan tidak mudah menguap (hilang) walaupun catu dayanya dimatikan. Karena itu memory ini biasa digunakan untuk menyimpan program utama dari suatu sistem.
Jenis ROM yang dikenal dipasaran ada lima jenis yaitu :
- ROM (Read Only Memory) yang diprogram dalam proses pembuatannya. Jenis ini tidak dapat diprogram ulang.
- PROM (Programmable ROM) yang diprogram dengan cara memutuskan hubungan sekering internal. PROM hanya dapat diprogram satu kali dan tidak dapat diprogram ulang.
- EPROM (Erasable PROM) yang diprogram dengan cara mengisi gerbang tersekat dari piranti. Dihapus dengan cara pemberian sinar ultra violet melalui jendela pada bagian atas IC. Setelah dihapus dapat diprogram ulang.
- EEPROM (Electrically EPROM) sama saja dengan EPROM, hanya cara penghapusannya dilakukan secara listrik.
- Flash EPROM yang diprogram dengan cara mengisi gerbang tersekat pada piranti. Memory ini dapat diisi ulang.
Ada tiga bagian pokok yang membentuk EPROM yaitu masukan alamat, data keluaran, dan masukan kontrol. Masukan alamat digunakan untuk memilih data yang tersimpan pada lokasi EPROM. Banyaknya lokasi yang tersedia adalah 2 pangkat n alamat. Sehingga untuk EPROM yang terdiri dari 10 bit alamat, akan mempunyai 2 pangkat 10 = 1024 lokasi yang dapat teralamati. Satu lokasi alamat didalam EPROM dapat menyimpan 8 bit data. Setiap bit data yang tersimpan didalam EPROM akan berbentuk bilangan biner 1 atau 0. Untuk mengaktifkan EPROM harus diperhatikan pena OE dan CE. Fungsi OE (Output Enable) jika berlogika 0 maka keluaran D0 sampai dengan D7 akan aktif. Jika OE berlogic 1 maka keluaran D0 sampai dengan D7 akan Hi-Z. Hi-Z atau High Impedance merupakan keadaan yang menandakan keluaran berada dalam keadaan tidak aktif. Fungsi CE (Chip Enable) harus berlogika 0 untuk mengaktifkan EPROM. Jika CE berlogika 1 keluaran akan Hi-Z dan tidak terpengaruh oleh kondisi sinyal OE.
Untuk membaca EPROM alamat pada microprocessor harus dihubungkan dengan alamat pada EPROM. Alamat ini akan didekode oleh EPROM untuk menentukan lokasi yang ingin dipilih. Kemudian pena OE dan CE harus berlogika 0 agar EPROM tersebut aktif. Untuk memprogram EPROM dapat menggunakan EPW (EPROM Programmer Writer). Pin PGM harus berlogika 0 ketika memprogram EPROM. Pada operasi pembacaan normal, pin PGM diberi logika 1.
Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment.