In this DIY electronics project, we will explore how to build a simple data storage system using the AT28C64-15PC, a 64Kb EEPROM (Electrically Erasable Programmable Read-Only Memory) chip. The AT28C64-15PC is a non-volatile memory device that retains its data even when power is lost, making it perfect for applications that require permanent or semi-permanent data storage. By utilizing the EEPROM, we will create a basic memory storage system that can store and retrieve data.
● AT28C64-15PC EEPROM Chip
● Microcontroller (e.g., Arduino, or any microcontroller with I/O pins)
● Breadboard
● Jumper Wires
● Resistors (for current limiting)
● Capacitors (for power stabilization, optional)
● Power Supply (5V DC)
● Push Buttons (for input)
● LEDs (for indication)
● Switches (for activating data storage or retrieval)
● Connecting Wires
● Multimeter (for debugging)
● PCB or Prototype Board (for permanent assembly)
● IC Programmer (if needed for programming the EEPROM initially)
The AT28C64-15PC is a 64Kb EEPROM chip that uses a serial interface to read and write data. Unlike RAM, which loses data when power is turned off, EEPROM is a non-volatile memory, meaning it keeps its contents even when the power is switched off. This makes it highly suitable for applications like storing configurations, settings, or small datasets that need to persist.
The AT28C64-15PC has several features, including:
● 64Kb of memory (8Kb x 8 bits or 8,192 bytes),
● A fast read/write speed (15ns access time),
● A simple 5V operating voltage,
● A low power consumption mode.
In this project, we will use the EEPROM to store a few small data entries, and we'll implement a simple user interface using switches and LEDs to demonstrate how the data can be stored and retrieved.
The AT28C64-15PC is an 8-bit EEPROM, meaning it stores data in bytes (8 bits per address). Each byte of memory is accessible using an address, and data can be written to or read from these addresses.
To interact with the EEPROM, you will typically need to connect it to a microcontroller (e.g., an Arduino) via its data pins (D0 to D7), address pins (A0 to A13), and control pins such as Chip Enable (CE), Output Enable (OE), and Write Enable (WE).
● CE (Chip Enable): Enables or disables the chip.
● OE (Output Enable): Controls whether the EEPROM can output data.
● WE (Write Enable): Controls whether the EEPROM can receive new data.
For simplicity, we will use a microcontroller (like an Arduino) to send control signals and address data to the AT28C64, and we’ll use push buttons to manually trigger data storage and retrieval.
Let’s break down the necessary connections:
1. Powering the EEPROM:
Connect the Vcc pin of the AT28C64 to a 5V power source and the GND pin to the ground (0V). This will power the EEPROM.
2. Address Pins:
The EEPROM has 14 address pins (A0 to A13). These pins allow access to any of the 8,192 bytes of memory in the EEPROM. You can connect these address pins directly to the microcontroller’s I/O pins. For simplicity, we’ll use a subset of the address lines, such as A0 to A7 (giving us access to 128 addresses, or 1Kb of storage).
3. Data Pins:
The D0 to D7 pins on the EEPROM are used to read and write data. Connect these data pins to the microcontroller’s digital I/O pins. Each data pin will correspond to a bit in a byte of data.
4. Control Pins:
● CE (Chip Enable): This pin enables the chip when it is low. Connect it to a digital I/O pin on the microcontroller, which will control whether the chip is enabled or not.
● OE (Output Enable): This pin controls whether the data is allowed to be output from the EEPROM. Connect it to another digital I/O pin on the microcontroller.
● WE (Write Enable): This pin controls whether the EEPROM can write data. It should be connected to a digital I/O pin on the microcontroller.
5. Additional Components:
● Connect resistors (typically 10kΩ) between the address lines and Vcc (to pull them high when not in use).
● If you wish to include a status LED, connect it to a microcontroller pin with a current-limiting resistor (220Ω to 1kΩ), which will light up when the data is successfully written to or read from the EEPROM.
6. Switches and Buttons:
Use push buttons to trigger the data write and read operations. One button could write data to the EEPROM, while the other could retrieve it. Connect one leg of the button to the ground and the other leg to the microcontroller pin configured as an input.
With the circuit wired, it’s time to move to the logic for storing and retrieving data.
To write data to the EEPROM, you’ll need to:
● Select the address you want to store data at (using the address pins).
● Activate the CE pin to enable the chip.
● Set the WE pin low (this tells the EEPROM to write data).
● Place the data you want to store on the D0 to D7 data lines.
● After writing, toggle the CE pin to disable the chip, completing the write cycle.
For example, pressing the "Write Data" button might store a byte of data at a specific address.
To read data from the EEPROM, the process is similar to writing data but with the following changes:
● Set the OE pin low to enable output from the EEPROM.
● Set the WE pin high (to disable writing).
● Set the address on the A0 to A7 pins (the microcontroller will send the address to the EEPROM).
● The data on the D0 to D7 pins will be the byte stored at that address.
After reading, toggle the OE pin to disable the data output.
Once the EEPROM is connected, and the microcontroller is set up to control the write and read operations, test the system by pressing the buttons:
● Write Button: This will store a predefined value (e.g., 0x55 or 0xAA) at a specific memory address.
● Read Button: This will retrieve the data from that memory address and display it (e.g., with an LED or serial monitor).
As the system operates, the LED should light up whenever data is successfully written or read from the EEPROM, providing visual feedback for the user.
When building this system, there are several things to watch for:
● Addressing: Ensure that the address lines are correctly wired. If you use all 14 address lines, you can store up to 64Kb of data. For a smaller subset, like 128 addresses (1Kb), only a few address lines need to be connected.
● Write Enable Timing: If the EEPROM is not writing correctly, ensure that the WE pin is set properly and that the timing between the chip enable and write signals is correct.
● Read Back: When reading back the data, ensure the OE pin is correctly toggled to enable the output.
Once you have the basic data storage system running, you can consider adding a few enhancements:
● Large Data Storage: Use all 14 address lines to access the full 64Kb memory.
● User Interface: Connect an LCD or OLED display to show the address and data being written/read.
● External Programming: If you want to program the EEPROM externally, use an IC programmer and the serial interface for mass data storage.
● Data Persistence: Store configuration settings or small datasets that persist between device resets or power off.
This DIY data storage project using the AT28C64-15PC EEPROM offers a simple yet powerful example of how non-volatile memory can be used to store and retrieve data in an embedded system. By combining the EEPROM with a microcontroller, switches, and LEDs, you can create a basic system that allows for data persistence in a variety of applications, from simple configuration storage to more complex data logging or state retention in devices.
With some creativity, you can extend this project to incorporate larger datasets, a more robust user interface, or even integrate it into a larger electronics system, such as a remote sensor network or a device with user-defined settings.