A custom PCB shield and Arduino firmware designed to program 28C16 Parallel EEPROMs.
This tool is essential for projects like the Ben Eater 8-bit computer, allowing you to burn microcode or 7-segment display logic into non-volatile memory without manually toggling dip switches.
The gerbers/ and root directory contain the full design files for a custom PCB that fits on top of an Arduino (or connects via headers).
- Chip Support: 28C16 (2K x 8-bit Parallel EEPROM).
- Design Tool: KiCad (Schematic & PCB files included).
- Status: Production-ready Gerber files are available in the
gerbersfolder.
The C++ code in arduino_programmer/ handles the write cycle timing and address management.
- Write Cycle Control: Manages the Write Enable (WE) and Chip Enable (CE) pulses required by the 28C16 datasheet.
- 7-Segment Decoding: By default, the code includes a lookup table to program the EEPROM with hexadecimal digits (0-9) for a common-cathode 7-segment display.
- Customizable: You can modify the
dataarray to burn any microcode instruction set.
You can either:
- Order the PCB: upload the zip gerber files to a PCB manufacturer (JLCPCB, PCBWay, etc.).
- Breadboard it: Follow the pinout defined in the
arduino_programmer.inofile to wire the EEPROM directly to the Arduino digital pins.
- Open
arduino_programmer/arduino_programmer.inoin the Arduino IDE. - Connect your Arduino.
- Verify the pin definitions at the top of the file match your wiring.
- Upload the sketch.
- Open the Serial Monitor (57600 baud) to see the programming status.
- Timing: The 28C16 requires a specific write pulse width (usually < 1ms). The code handles this, but check your specific datasheet if using a different variant (e.g., 28C64).
