When it comes to reading Tesla MH74S287/571 PROMs they are 100% compatible with National Semiconductor (NSC) 74S287/571 PROMs, programming though is a different matter !
According to the NSC data sheets (DM74S287 & DM74S571) their PROMs are programmed as follows:
NSC PROM Programming Procedure
apply 5V Vcc, Enable pin high and write the address
increase Vcc to 10.5V
raise the voltage on the pin to be programmed ( to '1') to 10.5V
pulse Enable low for 10uS
reduce Vcc to 4V for verification
repeat 2. to 5. up to 10 times or until the bit is verified as programmed
repeat 2. to 5. an additional 5 times
The programmer needs to be able to supply a 5V or 10.5V supply at up to 400mA. Blank NSC PROMS are all '0' and to program a '1' a data line is driven with 10.5V to 'blow' the fuse. Each bit is programmed individually to reduce power dissipation. The supply voltage must only be held at 10.5V for a maximum of 25% of the time to avoid overheating.
According to the Tesla PROM data sheets (MH74S287 & MH74S571) their PROMs are programmed as follows:
Tesla PROM Programming Procedure
apply 5V Vcc, Enable pin low and write the address
the location can then be read to confirm that the bit needs to be programmed (to '1')
take the Enable pin high and pull the bit to be programmed down to 0V
increase Vcc to 10.5V
(after between 10uS and 1mS) pulse Enable pin low for 1mS
(after between 10uS and 1mS) reduce Vcc to 5V and remove pull down on programmed bit
(after a minimum of 10uS) the bit can be verified by taking Enable low
Vcc is then switched off to reduce power dissipation
if the bit has not programmed the process is repeated a second time
if after that the bit is still not programmed repeat once more but with an Enable pulse width of 20mS
The programmer needs to be able to supply a 5V or 10.5V supply at up to 750mA. Blank PROMS are all '0' and to program a '1' a data line is pulled low to 'blow' the fuse, a 3K9 pull-up to +5V is specified for the data lines. The pull down on the data lines needs to be capable of sinking up to 150mA. Again each bit is programmed individually to reduce power dissipation. The device should be allowed to cool with Vcc off for 3 to 4 times the programming pulse width between bit programming.
It is then interesting to compare the Tesla procedure with that used for similar Texas Instruments (TI) PROMs found in this extract from the 1975 Semiconductor Memory Data Book, page 184:
TI PROM Programming Procedure
apply 5V Vcc, Enable pin low and write the address
the location can then be read to confirm that the bit needs to be programmed (to '1')
take the Enable pin high and pull the bit to be programmed down to 0V
increase Vcc to 10.5V
(after between 10uS and 1mS) pulse Enable pin low for 1mS
(after between 10uS and 1mS) reduce Vcc to 5V and remove pull down on programmed bit
(after a minimum of 10uS) the bit can be verified by taking Enable low, Vcc should then be switched off to reduce power dissipation
if the bit has not programmed the process is repeated a second time
if after that the bit is still not programmed repeat once more but with an Enable pulse width of 10 to 20mS
The programmer needs to be able to supply a 5V or 10.5V supply at up to 750mA. Blank PROMS are all '0' and to program a '1' a data line is pulled low to 'blow' the fuse, a 3K9 pull-up to +5V is specified for the data lines. The pull down on the data lines needs to be capable of sinking up to 150mA. Again each bit is programmed individually to reduce power dissipation. Power is removed for a period of time after programming such that the average programming pulse time should be no more than 35% of the programming cycle.
The TI data sheet states that typically programming occurs in 1mS, it is guaranteed with a pulse width of 10mS.
The Tesla and TI procedures are remarkably similar.
I have access to a Dataman 448Pro2 Programmer which is about the only programmer specifically capable of programming Tesla PROMs. During programming the PROMs pins were monitored to determine the procedure used by Dataman, it turns out they apply a single 10mS pulse followed by a 45mS cooling period.
If time was of the essence then attempting to program with a 1mS pulse would speed things up but simply using a single 10mS pulse is a much simpler process and not much slower.
You can see that programming Tesla PROMs is significantly different from the procedure used for NSC PROMs and it is not possible to use the standard Acorn PROM Programmer, its not really even possible to adapt it to program both types of PROM as there are insufficient control lines available from the 8255. The simpler solution was to design a second programmer specifically for Tesla PROMs which is what I have done.
The circuit is very similar to the original Acorn programmer with some adjustments to allow for the data lines to be pulled down rather than up during programming. The board includes a switching power supply to generate the 5/10.5V supply. The board incorporates space for a ZIF socket as in the Acorn PROM Programmer, alternatively there is a small separate PCB that can be used with a 3HP wide Front Panel for rack mounting.
Schematics
Bill Of Materials
Front Panel Assembly
I have produced a new version of PROMER, PROMER3 which supports both the original Acorn PROM Programmer and the Tesla PROM Programmer.
PROMER 3 uses the single 10mS pulse programming procedure.
Current Measurements
I've taken some current measurements during reading and programming:
Vcc current during read: 180mA
Vcc current during 10.5V programming pulse: 520mA
Current drawn from data pin during programming: 60mA