E2PROM Programmer

iRobot Home
E-mail me at chris@irobot.org


Completed EEPROM Programmer EEPROM programmers are not cheap so, I wanted to build an simple programmer that consisted of parts that will not be obsolete any time soon.

Finally, here it is. The programmer is designed for EEPROMs of 24 or 28 pins and capacity of up to 64K. It is controlled by a parallel printer port on a PC.

E2PROM Programmer Functional Description

To view the schematic of the programmer, click here (10K GIF image). I recommend opening it in another window or printing it out so you can follow along.

The QBasic Program to control the programmer from a PC is here (7K BAS file).

I do not use standard American component designation conventions in this schematic but instead refer to each device by its generic part number.

7805 Regulator

A 7805 regulates input power of at least 6 VDC to 5.1 VDC. I have not as yet ascertained the minimum current required but would estimate about 500 milliamperes. The filter capacitors on pins 1 and 3 of the 7805 I chose arbitrarily and you may substitute. On the left of the schematic you will find an LED and 270 ohm resistor the purpose of which is to indicate the power is present and the 7805 regulator is operating.

Parallel Port Interface

The programmer is connected to a computer's parallel printer port like that used by a PC. The connection is generic enough to facilitate use with just about any computer. The connection is depicted on the lower-left of the schematic. The programmer can be written to like printer but the feedback signals a printer usually has are not present. This lack of feedback signals was intentional as it would increase component count and make things more complicated than they need to be. The programmer can also be read if the computer utilizes a bi-directional port. The computer is protected from the programmer by a set of resistors immediately following the port connector. The value of these resistors can range from 1 kilo-ohm to 2.2 kilo-ohm (whatever you have on-hand). At one kilo-ohm, the maximum current that could pass between the computer and programmer is about  25 milliamperes.

74LS175 - Selection

The 74LS175 facillitates latching in the Intel 8243 to which we want to write and selecting the PROG mode of the 8243. Only three of the four flip-flops are used. The fourth has its D input tied to a logic "1". An RC network consisting of a 1 microfarad capacitor and 10 kilo-ohm resistor provide a momentary clear signal to the 74LS175 at power-up. This is called power-up reset or POR. POR gives us a know state to start from. Since POR clears the 74LS175, the Q-NOT outputs are used to control the 8243s. Thus, the programmer is initialized with both 8243s unselected and their PROG inputs held to a logic "1".

8243 - IO Expander

Two Intel 8243s are employed and are differentiated as 8243 #1 and #2. 8243 #1 is dedicated to addressing and 8243 #2 reads and writes data and control bits. An 8243 is comprised of four, 4-bit I-O ports.

P4x P5x P6x P7x
8243 #1 A15-A12 A11-A8 A7-A4 A3-A0
8243 #2 CE OE WE D7-D4 D3-D0

Allocation of 8243 Port Resources

Programming the 8243

On power-up, the 8243 is ready to accept an address. A nice feature in the 8243 is that the PROG pin is sensitive to a state change but not to a one or zero input. That is, if the 8243 is powered up with the PROG pin at a one state, an address is latched when the PROG pin changed states from one to zero. The 8243 is then ready for data. The data is latched when the PROG pin changes states to a one again. The same function can be obtained by powering the 8243 with the PROG pin at a zero. The address would then be latched by a zero to one transition and then data by a one to zero transition.

Each of the ports can be designated as input or output. Additionally, as output ports, written data can be ANDed or ORed with the existing data.

Take a look at the QBasic program to see how I drive the 8243s.

EEPROM Socket

The figure to the right shows the pinouts of four common E2PROMS.   Here are the sizes of these memories:

2816 - 2Kx8
2864 - 8Kx8
28256 - 32Kx8
28512 - 64Kx8

EEPROM Pinouots

Dip-Switches

Signal A15 /WE A14 /WE A13 VCC A11 /WE
wpe8.gif (931 bytes) wpeB.gif (931 bytes) wpeC.gif (931 bytes) wpeD.gif (931 bytes) wpeE.gif (931 bytes) wpeF.gif (931 bytes) wpe10.gif (931 bytes) wpe11.gif (931 bytes)
Socket
Pin Number
1 27 26 21

Summary

Well, that's it in a nutshell. I'll add more as I get the time. There's enough information on this page to make the device and use it. If you have any problem or need advice or have comments, please, drop me a line.