One of the popular chip formats in the 70's and 80's were the ubiquitous EPROMs (Electrically Programmable Read Only Memories). They had very good memory density at the time and were accessible technology for hackers and OEMs alike. They had the advantage of easy to program for a given EPROM and good value for money in density, plus they allowed the power of the CPU to boot in to managing its own hardware right from the get-go! This unleashed a myriad of designs that could utilise all sorts of hardware for input and output. While architecturally so much simpler than a CPU, they made a huge contribution to the development of the computer systems of today.
The challenge with EPROMs came after a while when different companies decided on different pin-outs, programming voltages and programming algorithms. If only one EPROM version was chosen, it was pretty easy to get up and going. However as bigger EPROMs became more available it was harder to keep moving up the food chain. The programmer designed here was originally built to read the ROMs that came with the Sym-1 I bought. I wanted to be able to archive them. I then wanted to use the ROM reader to become an EPROM programmer. EEPROMs were not all that easy to get hold over 4-5yrs ago when I began this project, though I can see the future is in their hands as well. For the moment though to go "full-retro" amd EPROM programmer was an easy nostalgic choice and I had another lovely Arduino Mega 2560 to help me out.
So the system outlined below simply lines up the Mega output ports into 8 bit blocks of the Address and Data line of the ROM chip. The set up below is for the 8kB 2716 EPROM, but could be easily modified by either changing the software on how the Address and Chip Select pins are used to cater for other devices. The Mega has plenty of power to get this moving along easily. At worst if you only want to try to program one it could easily be setup with a prototyping board and hook up wires. (the wires could be moved around to cater for different ROMs, but many of connections eg D0-D7 and A0-A7, would be OK).
Now for the huge hack! I was keen to use the 2716 EPROM, but it had some weird voltage requirements like lifting the Vcc from 5V to 5.6V during programming. Applying 12.5V for Vpp was reasonable, but the other requirements were just proving too hard. So I rigged up the programmer and simply hardwired a switch for the 12V. Ran the program and it worked. More info to follow!!!!
EPROM Programmer + SD card read/write
Arduino Mega 2560 plus USB-Tiny programmer
Now with iterative programming pulses
** SD card attached to SPI bus as follows:
** MOSI - pin 50
** MISO - pin 51
** CLK - pin 52
** CS - pin 53
Connections to program the 8kB EPROMs, hence using 2764's ( 12.5V Vpp )
Port | Mega Pin# | 2764 | Socket ZIF | Socket ZIF | 2764 | Mega Pin# | Port | |
Vpp | 1 | 28 | Vcc | |||||
K | 12 | A12 | 2 | 27 | !PGM | 15 | K | |
A | 29 | A7 | 3 | 26 | Vcc | |||
A | 28 | A6 | 4 | 25 | A8 | 8 | K | |
A | 26 | A5 | 5 | 24 | A9 | 9 | K | |
A | 27 | A4 | 6 | 23 | A11 | 11 | K | |
A | 25 | A3 | 7 | 22 | !OE | 13 | K | |
A | 24 | A2 | 8 | 21 | A10 | 10 | K | |
A | 23 | A1 | 9 | 20 | !CE | 14 | K | |
A | 22 | A0 | 10 | 19 | D7 | 37 | C | |
C | 30 | D0 | 11 | 18 | D6 | 36 | C | |
C | 31 | D1 | 12 | 17 | D5 | 35 | C | |
C | 32 | D2 | 13 | 16 | D4 | 34 | C | |
0V | 0V | 14 | 15 | D3 | 33 | C |
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.