PROMs and EPROMs

The Acorn Computers range use various programmable memory devices to hold firmware and I thought it would be useful to include a page on these devices and include some info on programming.

There are three classes of memory device used:

All three types are read only when fitted in a computer and can only be written to (programmed) using special equipment - a Programmer.

Mask Programmed ROMs are an exception as the contents are fixed at manufacture, these are typically used for operating software e.g. the Atom OS & BASIC ROM. 

Bipolar Fusible Link PROMs, as the name suggests, are programmed by blowing 'fuses' and consequently can only be written to once.  EPROMs can be erased using Ultra Violet (UV) light and programmed again.

There are now many other types of programmable memory available e.g. FLASH, EEPROM etc. but these were not used in computers of this vintage and so are not included here.

PROMs

Generally smaller devices used on older equipment for firmware and other special uses e.g. character generators.

Device    Capacity    Usage
National Semiconductor DM74S287  256 x 4 bits Softy 1 and 2 character generator
Tesla MH74S287  256 x 4 bits modern alternative to the DM74S287
National Semiconductor DM74S571 512 x 4-bits Acorn System 1 and Sinclair MK14 OS
Tesla MH74S571 512 x 4-bits modern alternative to the DM74S571

Pinouts

These PROMs are all in 16-pin DIL packages and have essentially the same pinout, the smaller 74S287 having a second chip select line in place of A8.  The more modern Tesla parts are electrically compatible when fitted in target computers (programing is a different matter, see below).

PROM Pinouts DM74S287 DM74S571 MH74S287 MH74S571

Datasheets

and for those interested here are a couple of Tesla Databooks:

Programming

As far as I'm aware there are no commercially available programmers for these PROMs, at least that are within the reach of most hobbyists.  One option is to look out for secondhand programmers e.g. old Datamans which may be able to program the National Semiconductor parts.  Fortunately the Acorn PROM Programmer will program 74S571 and I have modified the code so that it can also program 74S287s.

The Tesla devices unfortunately require quite a different programming method to the National Semiconductor PROMs.  The National Semiconductor devices are programmed by driving +12V into the data pins, the Tesla devices by sinking current from the data pins with Vcc raised to +10.5V.  I did consider adapting my replica Acorn PROM Programmer to program Tesla devices but the modifications required would have been quite extensive, it would no longer have been a replica.  Instead I have developed a variant of the programmer specifically for Tesla devices.

The ELNEC Pro range of programmers are one of the few commercial offerings that can program Tesla PROMs, the 48Pro lists support for the MH74S287 and 571 (and also MH74188, MH74S370).

UV-EPROMS

EPROMs have grown in size over the years from a modest 256bytes to 4Mbytes, Acorn computers generally use 2K to 8Kbyte devices.  They are mostly 8-bit/byte wide devices though there were some 4-bit wide parts and more recently 16-bit parts but they are not covered here.  Generally the capacity can be determined by dividing the last two digits of the part number by 8 i.e. a 2716  has a capacity of 2Kbytes.

The following table lists EPROM development in chronological order (as far as I have been able to work out):

Date Device    Capacity    Power Requirements1 Notes
1971 Intel 1702A 256 x 8-bits +5V and -9V The worlds first EPROM.
1975 Intel 2704 512 x 8-bits +12V, +5V and -5V  
1975 Texas Instruments 27082  1024 x 8-bits +12V, +5V and -5V The Acorn System 1 Technical Manual suggests these could be used for IC7 by cutting tracks and applying the additional power supplies required.
Also used on the Softy 1 and Softy 2 programers for their firmware.
1977 Texas Instruments TMS2716  2048 x 8-bits +12V, +5V and -5V The first 2K EPROM.
1977 Intel 27163  2048 x 8-bits +5V only The first single supply EPROM.  The Acorn 6502 CPU Board and the 8K RAM + 8K ROM Board both accepts 2716 EPROMs as standard.
1977 Intel 2758  1024 x 8-bits +5V only The first single supply 1K EPROM.
1978 Texas Instruments TMS2516  2048 x 8-bits +5V only TI's single supply (Intel) 2716 compatible EPROM.
1978 Intel3 2732  4096 x 8-bits +5V only Pinout backwards compatible with (Intel) 2716.
  Texas Instruments TMS25324  4096 x 8-bits +5V only Pinout backwards compatible with TMS2716.
The Acorn 6502 CPU Board accepts 2532 EPROMs with only a single track cut and link required (pin 18).  The Acorn 8K RAM + 8K ROM Board also accepts these as standard.
  Intel 27643  8192 x 8-bits +5V only The Acorn 6502A CPU Board is compatible with this pinout 8K EPROM.
  Texas Instruments TMS2564  8192 x 8-bits +5V only Pinout backwards compatible with TMS2716/2532.

 

1. for read mode only, programming will require additional supplies

2. I'm fairly sure TI were first to bring out the 2708, many others make compatible parts

3. Intel were the first manufacturer of these parts but others make compatible parts.

4. TI were the first manufacturer of these parts but others make compatible parts

Pinouts

Generally as parts have grown in capacity backwards compatibility has been maintained but because the two main players, Intel and Texas Instruments (TI), deviated slightly there are two slightly different and incompatible pinouts.

TI developed the 1K TMS2708 and followed it up with the 2K TMS2716, both requiring three power rails.  At around the same time Intel produced a 2K 2716 but this only required 5V power and so they used a slightly different pinout to the TI TMS2716.  Over time the Intel pin-out won over TI, so TI brought out an Intel pinout compatible 2K EPROM which they called the TMS2516 to differentiate it from their existing TMS2716.

When it came to the next generation EPROMs TI decided to go their own way again and produced the TMS2532 and TMS2564 with slightly different pinouts to Intel's 2732 and 2764, most other manufacturers followed the Intel pinout but some produced TI compatible parts e.g. Hitachi.

Up to 4K EPROMs were packaged in 24-pins, with the extra address lines required for 8K EPROMs they had to move to 28-pin packages, the 'lower' 24-pins largely remaining the same for backwards compatibility.

JEDEC is an organisation that produces standards for semiconductors including EPROMs, it comprises members from the worlds semiconductor and computer manufacturers.  For EPROMs in DIL packages they define two pinout standards designated A and B, these broadly match the TI and Intel pinouts respectively (the standard only applies to EPROMs 4Kbyte and larger).

Three rail EPROMs 1702A 2704 2708

Single Rail EPROMs Intel 2716 2716 TMS 2516 2732

TI pinout EPROMs TMS2716 TMS2532

'64' EPROMs TMS2532 2764

Datasheets

(Not an exhaustive list, other manufacturers are available)

Read Mode

Generally parts with the same part number from different manufacturers are compatible in read mode.  The following table shows how the EPROM control pins are used during read i.e. when in a target computer.

24-pin Pin 18 Pin 19 Pin 20 Pin 21 Pin 22 Pin 24
Intel 2704     (Program) low level (Vdd) +12V (CS/WE) low level (Vbb) -5V (Vss) 0V (Vcc) +5V    
2708     (Program) low level (Vdd) +12V (CS/WE) low level (Vbb) -5V (A9) Address 9 (Vcc) +5V    
TMS2716     (CS/Program) low level (Vdd) +12V (A10) address 10 (Vbb) -5V (A9) Address 9 (Vcc(PE)) +5V    
Intel 2758     (CE/PGM) low level (AR) low level (OE) low level (Vpp) +5V (A9) Address 9 (Vcc) +5V    
2716/TMS2516     (CE/PGM)) low level (A10) address 10 (OE) low level (Vpp) +5V (A9) Address 9 (Vcc) +5V    
TMS2532     (A11) address 11 (A10) address 10 (PD/PGM)  low level (Vpp) +5V (A9) Address 9 (Vcc) +5V    
2732     (CE) low level (A10) address 10 (OE/VPP)  low level (A11) Address 11 (A9) Address 9 (Vcc) +5V    
28-pin Pin 1 Pin 2 Pin 20 Pin 21 Pin 22 Pin 23 Pin 22 Pin 26 Pin 27 Pin 28
TMS2564 (Vpp) +5V (CS1) low level (A11) address 11 (A10) address 10 (PD/PGM) low level (A12) address 12 (A9) Address 9 (Vcc) +5V (CS2) low level (Vcc) +5V
2764 (Vpp) +5V (A12) address 12 (CE) low level (A10) address 10 (OE) low level (A11) address 10 (A9) Address 9 (Vcc) +5V (PGM) +5V (Vcc) +5V
  1.  high and low levels refer to +5V logic levels

  2.  some pins have other functions e.g. to put the device into a low power (standby) mode

Programming

Parts with the same number from different manufacturers may be compatible in read mode but not necessarily when it comes to programming, manufacturers having their own programming methods and algorithms.

The following table shows how the control pins are used during programming.  It is not intended to detail how to program these devices for that see manufacturers datasheets.

24-pin     Pin 18 Pin 19 Pin 20 Pin 21 Pin 22 Pin 24    
Intel 2704     (Program) +26V pulse (Vdd) +12V (CS/WE) +12V (Vbb) -5V (Vss) 0V (Vcc) +5V    
2708

(Program) +26V2 pulse

(Vdd) +12V (CS/WE) +12V (Vbb) -5V (A9) Address 9 (Vcc) +5V
TMS2716

(CS/Program) +26V pulse

(Vdd) +12V (A10) address 10 (Vbb) -5V (A9) Address 9 (Vcc(PE)) +12V
Intel 2758 (CE/PGM) high level pulse (AR) low level (OE) low level (Vpp) +25V (A9) Address 9 (Vcc) +5V
2716/TMS2516

(CE/PGM) high level pulse

(A10) address 10 (OE) high level (Vpp) +25V2 (A9) Address 9 (Vcc) +5V    
TMS2532 (A11) address 11 (A10) address 10 (PD/PGM) low level pulse (Vpp) +25V (A9) Address 9 (Vcc) +5V    
2732 (CE) low level pulse (A10) address 10 (OE/Vpp) +21/25V2 (A11) address 11 (A9) Address 9 (Vcc) +5V
28-pin Pin 1 Pin 2 Pin 20 Pin 21 Pin 22 Pin 23 Pin 22 Pin 26 Pin 27 Pin 28
TMS2564 (Vpp) +25V (CS1) low level (A11) address 11 (A10) address 10 (PD/PGM) low level pulse (A12) address 12 (A9) Address 9 (Vcc) +5V (CS2) low level (Vcc) +5V
2764 (Vpp) +21/25V2 (A12) address 12 (CE) low level (A10) address 10 (OE) low level (A11) address 10 (A9) Address 9 NC (PGM) low level pulse (Vcc) +5V
  1. high and low levels refer to +5V logic levels

  2. Vpp voltage varies by manufacturer - typically between +12.5 and +27V  (the Intel 1702A required -48V !)

Three rail EPROMs are programmed by writing to each address in turn and applying a 0.1 to 1mS pulse of Vpp (25 to 27V), this is then repeated between 100 and 1000 times depending on the length of the program pulse.

Single rail EPROMs allow each address to be programmed individually or sequentially by applying a single 50mS pulse

Some EPROMs are able to be programmed using a so called fast or intelligent programming algorithm where a short 1mS pulse is applied and repeated until programming is successful and then a number of extra pulses are applied to be sure.  An even faster algorithm known as SNAP! can be used with more modern devices but requires accurate control of supply voltages so is generally only available with high end programmers. 

 

Acorn Home Page