# $Id: README,v 1.7 2001/03/07 08:32:28 abhijit Exp $

IMPORTANT NOTE:  The primary-site for EEP is now:
                 http://ibiblio.org/pub/Linux/apps/circuits/.
                 Another URL is:
                 http://members.nbci.com/abhijit_dasgupta/eep/index.html
                 Please do not use the old URL anymore.

What is this?
-------------

This is an EEPROM burner for 24-pin and 28-pin 5-volt EEPROMs,
There are various designs available, but my main goal was to
have something which is

  -  easy to build and uses only the most commonly available parts,
  -  cheap, and
  -  controlled by Linux.

The ICs in this programmer are all common 74HCT series logic chips.
It uses the PC parallel port interface, and I wrote the driver code
for Linux only, but it should be easy to modify it for other PC
operating systems.

I have used it to burn netboot PROMs for ethernet cards, which
were used to make diskless linux boxes.  See the netboot/etherboot
packages for details of how to do that.  You can also use it
for microcontroller systems with external ROM (e.g. 8031).

Supported EEPROMS
-----------------

Most 5-volt-programmable 24-pin and 28-pin EEPROMs should work.
Here is a partial list of common EEPROMS that are known to work:

    EEPROM type      Pins    Capacity
    -----------      ----    --------
    2816/28C16       24      2048 bytes (16 kilobits)
    2817/28C17       28      2048 bytes (16 kilobits)
    2864/28C64       28      8192 bytes (64 kilobits)
    28256/28C256     28      32768 bytes (256 kilobits)

Various vendors manufacture these EEPROMs.  Some are:  Microchip,
Atmel, Xicor, Catalyst, and STM.

Schematics and pinouts
----------------------

The schematic is in PostScript (schematic.ps), but a GIF image
(schematic.gif) is also included.  The ascii version is older.
In the schematic diagram, pin numbers are shown outside each
IC diagram.  Pin numbers for the big box on the right side are
for the 28-pin ZIF socket.

The file pinouts.txt has pinout information for the ICs used.

For the 74HCT ICs used in the circuit, Vcc and Ground connections
are not shown in the schematic.  Of course, these pins must be
properly connected.  Please refer to the pinouts.txt file for
full pinouts (in particular Vcc/Ground connections).

Construction
------------

WARNING:  It is easy to destroy the parallel port of your PC by
connecting things to it.  It is also possible to damage or destroy
the whole PC, its attachments, peripherals, and people near it
by improper connections and electrical accidents.  USE EXTREME
CAUTION.  Disclaimer:  Use at your own risk.  There is absolutely
no warranty of any kind here, see COPYING/LICENSE below.

The programmer can be built on a breadboard, but use a protoboard
for a more permanent version.  Use 0.1uF power-bus bypass capacitors
generously.  The 5V power source can be obtained from the PC itself,
but be careful here.  The 28-pin ZIF socket is perhaps the most
expensive component.  If you are building on a breadboard, you
may be able to get by without it (not recommended).

The 180 ohms resistor connecting pin 10 (Y6) of the upper 74HCT259
to pin 1 of the ZIF socket is a current limiting resistor to protect
the 74HCT259 IC in cases where a 28-pin EEPROM with RDY/BSY pin
is used.  When using 32 kilobytes (256 kilobits) EEPROMs like the
28256, it is recommended that this resistor be shorted for more
reliable operation.


Jumper setup
------------

J1 and J2 are single-row 3-pin headers for jumpers.  When using
28-pin EEPROMs, jumper the right two pins on both J1 and J2.
For 24-pin EEPROMs, jumper the left two pins on both J1 and J2.


Low-justification of 24-pin EEPROM devices
------------------------------------------

When plugging in a 24-pin EEPROM device (like 2816) into the
28-pin ZIF socket, make sure the 24-pin device is ``low-justified''
in the ZIF socket.  This means that pins 1, 2, 27, and 28 of the
ZIF socket will remain unused, and the ground pin of the devices
match up (i.e. pin 12 of the 24-pin device should sit in to
pin 14 of the ZIF socket).


Parts List
----------
ICs:           74HCT123, 74HCT132, 74HCT138, 74HCT157, 74HCT574 (1 ea),
               and 2 74HCT259s.

Resistors:     100K, 10K, 1K, 180 ohms, and 390 ohms (1 ea).

Capacitors:    100pF, 1uF, (1 ea) and 3 0.1uF power-bus bypass capacitors.

Misc:          1 LED, 1 SPST switch, 25-conductor ribbon cable with DB25
               male connector, 28 pin ZIF socket (small breadboard can be
               used instead), header pins for jumpering.


How to build the software
-------------------------

Just cd to the src directory and type `make'; see the USAGE file.


Author
------

Abhijit Dasgupta
takdoom@yahoo.com


COPYING/LICENSE
---------------

Everything here is being distributed under the GNU General Public
License (GPL) as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
You can redistribute it and/or modify it under the terms of the
GPL.

The software and the hardware design are being distributed in the
hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.  See the GNU General Public License for more details.


