********************************************************************************
                            ALL ABOUT MEMORY CHIPS
********************************************************************************

Introduction
------------
This document discusses the different technologies of memory chips and
microcontrollers supported by the EPROM+ programming system. This document
also covers terms you may hear like hex, binary, ASCII, CMOS and NMOS.
Where ever possible we have attempted to explain technical issues in an
easy-to-understand context.  Many of the questions we have been asked over
the years by our customers are addressed.  If you have a question
about a memory device or some technical aspect of the part, it is very likely
to be covered in this document.  If you need to purchase chips see the list
of suppliers at the end of this document.

What is a memory chip?
----------------------
A memory chip is an electronic part which is used by a computer, any type of
computer, to store a program or data.  The difference between a program and
data is that a program is a sequence of instructions which tell the computer
what to do.  Data is information which the computer references as it runs it's
program.  In the memory chip the program and data information appear to be
identical as they are both stored as a series of 1's and 0's.

There are two basic types of memory chips.  These are volatile and non-volatile.
A volatile memory part will lose its contents (it forgets) when power is
removed.  A non-volatile memory chip will not lose its contents when power is
removed.  An EPROM is a non-volatile memory chip.

What is an EPROM?
-----------------
The term EPROM stands for "E"rasable "P"rogrammable "R"ead "O"nly "M"emory.
Lets examine each term. Erasable means that the chip can be erased and reused.
An EPROM is erased in a device called an EPROM eraser.  The eraser is a high
intensity ultraviolet light source in a box.  We will talk more about erasing
eproms later. Programmable means that the EPROM can be programmed with a
program, data or both. Read Only means that the computer which is connected
to the EPROM can only get information from the chip.  It cannot put information
into the chip; thus the term read only.  In short, the EPROM is a memory part
which will not forget its program or data when power is removed.  It must be
programmed by a special programming product called an EPROM or DEVICE
programmer.  Once the EPROM is programmed it cannot be changed until it is
erased in an EPROM eraser and then reprogrammed in a programmer.  The computer
cannot store data in an EPROM because the EPROM is a READ ONLY memory part.

How is the EPROM organized inside and what does the part number mean?
---------------------------------------------------------------------
The EPROM, like any memory chip, designed to store individual bits of
information.  The bit is the smallest element used in a computer and can
have the value of 1 or 0.  This is called binary because the bit can have
two states, either 0 or 1.  Groups of bits are called by different terms.
Eight (8) bits together is called a BYTE. Four (4) bits together is called
a NIBBLE.  Obviously a single bit can only represent two states, therefore
it will take multiple bits used together to represent items such as letters
and numbers.  The most common grouping of bits is the byte.  Since there are
8 bits and each can be a 1 or 0, there are 256 possible combinations of 1's
and 0's which can be arranged from the 8 bit grouping.

The typical EPROM is organized as a sequence of bytes (8 bit groups).  Each
byte resides at a specific location in the EPROM called an ADDRESS.  The first
address in the EPROM is address 0.  The last address in the EPROM is determined
by the EPROM size (total number of bits of storage divided by 8).

The EPROM part number normally indicates the total number of bits of storage in
thousands.  For example, a 27256 EPROM has 256,000 bits of storage.  If you
divide 256,000 by 8 (number of bits in a byte) you get 32,000 or 32K (K is an
abbreviation for kilo or thousand).  Please note that not all EPROM part
numbers represent the number of bits.  For example the 27C040 stores 4 million
bits or 512K bytes of data.

What is EPROM speed?
--------------------
The speed specification for an EPROM is actually a specification for access
time.  The access time is the time it takes the EPROM to deliver the data from
the requested address to the computer.  The access time is specified in nano-
seconds (billionths of a second).  The access time is usually found following
the part number.  Example: M5M27C64A-25 is a 27C64 EPROM with a 250 nanosecond
access time.  The access time is normally found after the dash (-) which
seperates the part number from the access time.  When you replace an EPROM
or any memory device, you may substitute a part of equal or faster speed but
not one of slower speed.  Example: You can replace a 27C64A-25 with a
27C64A-20 but not with a 27C64A-30.  The data can be available from the EPROM
before it is needed however if the computer attempts to take the data before
it is there, the product the computer is in will not work.

Figuring out the part number on your chip
-----------------------------------------
EPROMs and most other memory parts conform to a standard pin configuration and
operate in an identical manner.  This allows parts from any manufacturer to be
used interchangably.  The key is to figure out the part number on your device.
Usually the part number is printed directly on the top of the part.  What you
are looking for is the core part number.  This is the industry standard number
for the part.  The typical EPROM is a 27 series device.  EPROMS compose about
80% of the programmable device market.  Regardless of who manufactured the part
the part number should 27XXX or 27CXXXX printed somewhere on the device.  This
number may have a prefix or suffix associated with it.  An example would be the
HITACHI 2716 EPROM.  The part number on the chip is HN42716G.  Note where the
2716 appears.  An identical part made by National Semiconductor is numbered as
NMC27C16Q-35 where a part manufactured by Intel is D2716-1.  Don't get confused
by a date code.  A date code is printed on the chip to indicate when it was
manufactured.  A date code is the year of manufacture followed by the week.
An example would be 8925.  This indicates that the part was manufactured in the
25th week of 1989.  Although a date code is not easily confused for a 27XXX
chip, it can be for other types of memory parts which are not 27XXX devices.

Erasing an EPROM and the window
-------------------------------
The information (bits) stored in the EPROM are stored as an electrical charge
on a transistor in the EPROM.  There is one transistor for each bit of storage.
The programming process forces the charge on the transistor where it remains
trapped until the part is erased.  A charged (programmed transistor) holds the
bit value of 0 where an erased (unprogrammed transistor) holds the bit value
of 1. Once a transistor in the EPROM is programmed, the only way to remove the
trapped charge is to expose the entire chip to high intensity ultraviolet
light using an EPROM eraser.  If you look at a standard EPROM you will see that
it has a clear window in the center of the part.  The purpose of this window
is to allow the ultraviolet light to reach the transistors which compose the
EPROM memory array and dissipate the electrons trapped on the transistors.

Usually an EPROM, once it has been programmed, will have a cover or sticker
placed over the window.  You cannot erase an EPROM or change its contents by
removing this cover and exposing it to normal room light.  Even in direct
sunlight it would take two weeks of constant exposure to alter the chip.
You cannot erase an EPROM with a black light or tanning bed, it is best to use
an eraser manufactured to erase EPROMs and other programmable devices.

EPROMs in plastic cases
-----------------------
The most expensive part of the EPROM is the ceramic package with the quartz
window.  All manufacturers provide their EPROM products in plastic packages
without windows.  These are called OPT (One Time Programmable) devices
simply because there is no window to erase the part.  There is nothing to
prevent an OTP device from being read and the contents placed into another
EPROM.  OTP devices are standard EPROMs which can only be programmed and used
once.  The part number is usually something like P27CXXX where the "P" means
plastic case.

What is the difference between a 27 and a 27C part?
---------------------------------------------------
The 27XXX EPROMs use the first memory cell technology.  The technology process
is called NMOS.  The next generation technology is called CMOS, thus the letter
"C" in the part number.  CMOS parts use much less power than NMOS parts,
however all other aspects of the devices are identical.  You can substitute a
CMOS for an NMOS part with no problems, however since an NMOS part consumes
more power, it is not advisable to put an NMOS part in place of a CMOS.  This
is especially true in battery powered equipment.

******************************************
OTHER TYPES OF PROGRAMMABLE MEMORY DEVICES
******************************************

FLASH EPROMS
------------
Flash EPROMs are the most recent type of EPROM memory part.  These parts are
always in plastic cases because the erasing of the part is done electrically
without the need to expose the internal chip to ultraviolet light.  The erase
function is performed by the EPROM programmer.  Flash memory parts cannot be
substituted for a standard UV erasable part because the minimum number of pins
on a flash part is 32.  The smallest flash device is a 28F256 which is equal
in storage capacity to a 27256 UV EPROM.  Note the part number 28FXXX is a
FLASH device designated by the "F" in the part number.

EEPROMS
-------
EEPROMs are memory parts which use the same technology as an EPROM however the
each bit of storage has extra transistors to allow the bit to be individually
erased.  The term EEPROM means Electrically Erasable Programmable Read Only
Memory.  These memory parts can have individual bytes changed without the need
to erase the entire part.  The way this works is that the memory chip itself
performs an erase on a single byte before programming the byte with the new
data.  An example of a EEPROM is a 28C64.  Note that the number 28 is used both
for EEPROMs and FLASH devices.  The "C" in the 28C64 part number means it
is made with CMOS technology.

SERIAL EEPROMS
--------------
A serial EEPROM is created with the same technology used in larger EEPROMs.
The difference is that a serial EEPROM typically has only 8 pins on the
package.  This is because the address and data are sent to and from the chip
one bit at a time over two or three wires.  This takes more time and is more
complex than dealing with a larger EEPROM however the cost and size savings
make these parts very popular where the amount of information which must
be stored is small.

NVRAMS
------
An NVRAM is a standard RAM (RAM stands for Random Access Memory) which is
used for general operation in computers.  The NV stands for non-volatile.
The RAM would normally lose its contents when power is removed, however the
NVRAM is maunfactured with a built in battery which keeps power applied
to the memory after power has been removed from the product.

MICRO-CONTROLLERS
-----------------
A micro-controller is a compete computer on a chip.  This includes the central
processing unit (CPU), the memory and the I/O (input/output).  Since a micro-
controller is much more complex than a standard memory part, they typically
require an adapter to match to pins on the micro-controller to the programmer.
Since the micro-controller has internal memory, it is this memory area that
the programmer allows the user to read and program.  Most micro-controllers
use internal EPROM for their program code and data.  Since the micro-controller
has internal EPROM it to must be erased prior to programming via the window
in the top of the part.

BIPOLAR PROMS
-------------
A BIPOLAR PROM is a memory chip which typically contains a small amount of
data however the access time is very fast.  These memory chips store the
bits of data by blowing small fuses inside the memory device.  Once they
are programmed they cannot be changed.  The term BIPOLAR reflects the
transistor technology used in the manufacturing process. PROM means
Programmable Read Only Memory.  Programming a BIPOLAR PROM requires a high
voltage, high current pulse to blow the fuse.  The adapter for these devices
generates the necessary pulse width, voltage and current for proper fuse
programming.

OTHER TERMS
***********

HEX
---
HEX is short for hexidecimal.  Hexidecimal is base 16.  Where most humans are
used to the numbers 0 through 9, hex has the digits 0,1,2,3,4,5,6,7,8,9,A,B,C
D,E, and F.  Although this may appear confusing the reason HEX was chosen is
that it provides a simple way to represent 4 binary bits as a single digit.
EXAMPLE: Binary 0000 = HEX 0 or binary 0101 = HEX 5 or binary 1100 = HEX C.

Following is a table of the HEX values: H=HEX and B=BINARY
0000B=0H  0001B=1H  0010B=2H  0011B=3H  0100B=4H  0101B=5H  0110B=6H  0111B=7H
1000B=8H  1001B=9H  1010B=AH  1011B=BH  1100B=CH  1101B=DH  1110B=EH  1111B=FH

From the above table you can see that if you wish to represent the binary
number 1110010100110010 you can write it as E532 hex.  This is why hex has
become the defacto standard to represent and display binary data; it allows
humans to represent large groups of binary data in a compact form.

ASCII
-----
ASCII stands for American Standard Code for Information Interchange.  This is
a standard translation for HEX (binary) codes into printable or readable
characters.  The letters you are reading on the screen right now are
represented in the computer as groups of bits.  Without a standard, any
computer manufacturer could decide which group of bits would represent which
letter or number.  In ASCII an upper case A is represented by the value 41H.
the number 3 is represented by the value 33H.  When you view the editor display
of a device programmer you should see a display of HEX information and also
(usually to the right) a display of the ASCII translation of the HEX data.
If the data from an EPROM contains characters which are to be displayed to
a user, these characters will appear in the ASCII display area.

MEMORY CHIP SOURCES
-------------------
You may purchase memory chips from a variety of sources.  Following is a list
of suppliers which we have used with good success.  Beware of chips called
"pulls".  These are memory chips which have been removed from existing boards
and erased.  Many times these chips are fine, however be certain that you can
return these parts to the supplier in the event they don't work.

         SOURCE                        PHONE NUMBER
-------------------------    --------------------------------
   Mouser Electronics                 1-800-346-6873
   Digi-Key Corp.                     1-800-344-4539
   JDR Microdevices                   1-800-538-5000
   Jameco Electronics                 1-800-831-4242

************
    END
************
