Arduino EEPROM Reader PCB Design

This is a PCB version of the Arduino EEPROM Reader/Writer as described here: https://github.com/beneater/eeprom-programmer but with slight adjustments to support reading of 27Cxxx style ROMs often found in vintage equipment.

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

These are the key Arduino tutorials for the main concepts used in this project:

If you are new to Arduino, see the Getting Started pages.

The Circuit

This is essentially the circuit from Ben Eater’s github repository, but there are a couple of configuration options for some of the connections to the (E)EPROM to support 27Cxxx, 28Cxxx (and probably 29Cxxx, which have the same pin-out as the 28Cxxx) style ROMs for reading.

These chips differ only very slightly in their pin-outs as detailed below:

So the key configuration options required centre around choosing what pins 1 and 27 are for; how (or if) the /WE signal is controlled by the Arduino (Ben Eater’s circuit ties it to D13 for the 28Cxxx, but it isn’t required for the 27Cxxx); and what controls /OE (shift register for 28Cxxx in Ben Eater’s circuit, but I’ve used D13 for the 27Cxxx for simplicity).

Here are the options summarised:

28Cxxx27Cxxx
D13 (RW/OE)27 (WE)22 (OE)
Q6 (A14)1 (A14)27 (A14)
Q7 (OE)22 (OE)N/C
VCC (VPP)N/C1 (VPP)

Mapping that onto jumpers, I can do that with three jumpers that determine what pins 1, 22 and 27 are connected to as follows:

Jumper 1Jumper 2Jumper 3
A14D13Q7
Pin 1Pin 22Pin 27
5VQ6D13

PCB Design

This is a relatively straight forward design. Based on an Arduino Uno shield, there are capacitors for all devices, including the EPROM to be read. It is designed for use with a 28 pin ZIF (zero insertion force) socket and two 595 shift registers.

The jumpers are grouped together on the right hand side of the PCB so that “all left” means the board should be able to be used to read or write to a 28Cxxx EEPROM and “all right” means the board can be used to read from a 27Cxxx EPROM or mask ROM.

There is one issue with the board unfortunately. The far right hand trace passes too close to that Arduino mounting hole, meaning that the trace gets shorted to GND. I’m not sure what I managed to turn off in my DRC to miss that, but it can be cut and patched.

Closing Thoughts

In theory the boards should support reading and writing to a 28Cxxx style EEPROM, but I’m only planning on using them to read from a 27C256 at the present time.

Kevin

One thought on “Arduino EEPROM Reader PCB Design

Leave a comment