Progamming tool for 28C16 EEPROM (2716 replacement)

If you are playing with old equipment, it may happen that you need to replace some 2 Kbyte 2716 EPROMS. These came in 24 pin wide DIP package and do not have a modern replacement. They also had 21V programming voltage, and like other EPROMs you need an UV lamp to erase them.

The closest direct replacement is 28c16 parallel EEPROM, also an obsolete part but still available from eBay. It is programmable with 5V supply. The downside is that datasheet only promises 10 year retention time, so if you are looking for something to give your toy another 40 years of life, this may not be the right path for you.

If 10 years is enough, then here is a simple programming tool that you should be able to put together in one evening. For just one-off, even solderless breadboard will work.


Two chips - Atmega328 and CD4040 counter for low address signals are the brains of the operation, and communication to host computer happens over FTDI USB/serial converter module, these are available cheaply from eBay.The module also provides access to the 5V supply voltage on USB bus.


All the code is available at GitHub, in my 28c16pgm repository. For building you need a working make, avr-g++, and avrdude. I have only built the project on OSX, but the makefile shohuld directly work on Linux too.


Just type make, and you should get hex and eep files. make flash will try to write the code to microcontroller using avrdude with usbtiny compatible programmer. make clean will clean the clutter from directory, and make erase will try to erase microcontroller's flash memory.

Code contents

The firmware has read,write, and erase commands. The push button also works for read, in case you just want to capture output in terminal program, or redirect the serial port to file.

Any valid Intel HEX line within 0..2K range will be written to EEPROM.

read.py and write.py scripts are provided. These take serial port name and file name as argument. Reading script uses the file name as template, and allows you to dump multiple eproms in sequence - just swap the eprom and press the pushbutton.

Copyright © Madis Kaal 2000-