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.
- Build Guide here: Arduino EEPROM Reader PCB Build Guide.
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:
28Cxxx | 27Cxxx | |
D13 (RW/OE) | 27 (WE) | 22 (OE) |
Q6 (A14) | 1 (A14) | 27 (A14) |
Q7 (OE) | 22 (OE) | N/C |
VCC (VPP) | N/C | 1 (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 1 | Jumper 2 | Jumper 3 |
A14 | D13 | Q7 |
Pin 1 | Pin 22 | Pin 27 |
5V | Q6 | D13 |
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”