Download   Online Shop   Red Hat Network
Home  |  Products & Services  |  Support  |  Training  |  Partners  |  Documentation   
Red Hat Documentation

Overview | HOWTOs | mini-HOWTOs | FAQs | Linux Man-Pages

Diskless Nodes HOW-TO document for Linux: Building EEPROM Burner Next Previous Contents

5. Building EEPROM Burner

5.1 What is this ?

This chapter is written by Abhijit Dasgupta and is reproduced here from http://www.nnaf.net/~abhijit/eep. Abhijit's email : abhijit@ans.net

A photo of the burner is at - http://www.nnaf.net/~abhijit/pictures/eeprom-burner.jpg

This is an eeprom burner for the 2816/2864 type of eeproms. There are various designs available, but the main goal was to have something which

  • is cheap (less than $35)
  • is easy to build and uses only commonly available parts
  • works with linux

This one uses a handful of 74HCTxx logic chips all available at the local Radio Shack store! It uses the PC parallel port interface, and Abhijit wrote the driver code for Linux only, but it should be easy to modify it for other PC operating systems.

This was used 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 building microcontroller systems with external ROM (e.g. 8031).

5.2 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.

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.

5.3 Parts List

  • ICs: 74HCT123, 74HCT132, 74HCT138, 74HCT157, 74HCT574 (1 ea), and 2 74HCT259s.
  • Resistors: 100K, 10K, 1K, 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), jumper pins.

5.4 Usage

Download the software from http://www.nnaf.net/~abhijit/eep/eeprom.tar.gz. To build the software, just cd to the src directory and type `make';


readrom
-------
readrom will read a specified number of bytes from a 2816/2864 eeprom
starting at a given offset, and send it to the standard output in
either binary (raw) or ascii-hex listing format.
Usage:
    readrom -b|-t offset size
where
    -b            output binary (raw) bytes
    -t            output text (ascii-hex) listing
    offset        start address of eeprom, 0..8191
    size          number of bytes to output, 0..8192
Examples:
# read the contents of a 2864 in binary (raw) form and save it in a file:
readrom -b 0 8192 > contents.bin
# list 80 bytes starting at offset 32:
readrom -t 32 80
writerom
--------
writerom will read a given number of bytes from the standard input and
write them into a 2816/2864 eeprom starting at a specified offset.
writerom verifies the eeprom byte-by-byte as it writes into it.
Usage:
    writerom offset size
where
    offset        start address of eeprom, 0..8191
    size          number of bytes to output, 0..8192
Example:
# Write 8192 bytes from the file ne.lzrom into the eeprom:
writerom 0 8192 < ne.lzrom

5.5 Schematic Diagram

The schematic is in ascii, but a PostScript version which looks better is available from http://www.nnaf.net/~abhijit/eep/eeprom/schematic.ps


                       +-------+
              +5-------|RST    |               +5---o o o J1     +-----------+
              +5--o----|/CLR1  |         10K          |          |           |
                  |    |       |-----o--/VVV\-- +5    +----------|26 +5(NC)  |
      +------+    |    |1/2 123|     |              +----------->|27 NC(/WE) |
 16 o-|/CS2  |    |    |       |--||-+              | +--------->|23 /WE(A11)|
      |   CS1|----o----|B1     | 100pF              | |          |           |
      |      |         |    /Q1|---------->---------o o o J2     |  ZIF28    |
      |    Y1|---------|/A1    |                        |        |  socket   |
      | 138  |         +-------+         _ 1/2 74HCT132 |        |   for     |
      |      |                     +5 --| \   __        |        | 2816(2864)|
      |    Y2|--------------------------|  O--| \       |        |           |
  8 o-|A2    |                +-------+ |_/   |  O-------------->|/OE        |
  7 o-|A1  Y4|--------------->|EN   Y7|-----o-|_/       |        |           |
  6 o-|A0  Y3|----+    +5-----|RST    |     |           |        |           |
      |    Y0|-+  |           |     Y6|--+  |           |        |           |
      |  /CS3| |  |           | 259   |  |  |           |        |           |
      +------+ |  |           |     Y4|--|--|-----------|------->|2 NC(A12)  |
            |  |  |           |     Y3|--|--|-----------+        |           |
  5 o--->---|--|--|--------o--|D    Y2|--|--|------------------->|A10        |
  4 o--->---|--|--|------o-|--|A2   Y1|--|--|------------------->|A9         |
  3 o--->---|--|--|----o-|-|--|A1   Y0|--|--|------------------->|A8         |
  2 o--->---|--|--|--o-|-|-|--|A0     |  |  |                    |           |
            |  |  |  | | | |  +-------+  |  |      +5------------|28 NC(+5)  |
            |  |  |  | | | |             |  |      +5----/VVV\---|1 NC(RDY)  |
            |  |  |  | | | |  +-------+  |  |             1K     |           |
            |  |  |  | | | |  |     Y7|--|--|------------o------>|A7         |
            |  |  +---------->|EN     |--|--|-----------o|------>|           |
            |  |     | | | |  |       |--|--|----------o||------>|           |
            |  |     | | | |  | 259   |--|--|---------o|||------>|           |
            |  |     | | | |  |       |--|--|--------o||||------>|           |
            |  |     | | | |  |       |--|--|-------o|||||------>|           |
            |  |     | | | +--|D      |--|--|------o||||||------>|           |
            |  |     | | +----|A2   Y0|--|--|-----o|||||||------>|A0         |
            |  |     | +------|A1     |  |  |     ||||||||       |           |
            |  |     +--------|A0  RST|  |  |     ||||||||       | ZIF28     |
            |  |              +-------+  |  |   +------------+   |  for      |
            |  |                    |    |  |   |   data in  |   | 2816/64   |
            |  |                   +5    |  +-->|/OE         |   |           |
            |  |                         |      |     574    |   |           |
            |  +------------------------------->|CLK         |   |           |
            |                            |      |   data out |   |           |
            |                            V      +------------+   |           |
            +----+              +------------+     ||||||||      |           |
                 |              |       SEL  |     ||||||||      |           |
                 |              |          B3|<----|||||||o------|D7         |
 11 o---<-----------------------|Y3        B2|<----||||||o-------|           |
 12 o---<-----------------------|Y2        B1|<----|||||o--------|           |
 13 o---<-----------------------|Y1  157   B0|<----||||o---------|           |
 15 o---<-----------------------|Y0        A3|<----|||o----------|           |
                 |              |          A2|<----||o--- data---|           |
                 |              |          A1|<----|o---- bus ---|           |
                 |       GND----|/OE       A0|<----o-------------|D0         |
  +5--o--+       |              +------------+                   |           |
      |  |  __   o---------------------------------------------->|/CE        |
    100K +-|  \  |  __                                           +-----------+
  sw1 |    |   O-o-|  \ 1/2 74HCT132
  o-->o----|__/    |   O---390ohm--+
  |   |          +-|__/            |
  |  --- 1uF     |                LED
  |  ---     +5--+                 |
  |   |                            |
  +---o----------------------------o- GND

Notes:

  1. Pin numbers on the left margin are for DB25 parallel port.
  2. Pin numbers in the right box are for the _ZIF28 socket_, not the IC.
  3. A 2816 should be low-justified in the ZIF28 socket.
  4. J1 and J2 are single-row 3-pin jumpers. For both jumpers, the left two pins should be jumpered for a 2816, the right two for a 2864.
  5. The signal labels for a 2864 (if different from 2816) in the ZIF28 socket box are given in parentheses. E.g. pin 23 of the ZIF 28 is labeled "23 /WE(A11)", so it is /WE for a 2816, and A11 for a 2864.
  6. Sw1 needs to be open to enable operation of the programmer.

Next Previous Contents

 

 
 
Search for:  on    Powered by Google
Products & Services   :   Download   :   Support   :   Training   :   Partners & Programs
© 2001 Red Hat, Inc. All rights reserved.       About Red Hat   :   Legal statement   :   Privacy statement   :   Y2K statement   :   Contact Red Hat