Thoughts: Replacing PROMs with Modern-Day Parts

Because of my interest in some older computers and their peripherals, dealing with ROM-chip based firmware is a fact of life. Ever since purchasing a programmer to explore the contents of some of the ROMs, it came to mind that there may be cases where it may  be necessary to replace such PROMs with more modern equivalents. In this posting, I explore the presently commercially available modern-day parts from four multi-national suppliers (element14, RS components, DigiKey and Mouser) and think about the factors which may need to be considered when using non-exact matches.

Disclaimer: I cannot be held responsible for anything you do and any consequences that may arise as a result of reading and using or misusing this information. The information provided may not be entirely free of errors – it is your responsibility to verify with manufacturer datasheets as to exact specifications and potential compatibility issues. The information presented is based upon a consideration of the specifications, but changes in specifications and individual circumstances may affect the applicability of the advice. The information supplied is accurate to the best of my (limited) knowledge.

Replacement Reasons

Often such considerations come about when there are newer versions of firmware, sometimes modified or homebrewed to extend the capability of older machines, which you might want to try out. When it comes to older devices, there could be several good reasons to replace the chip rather than just erase a PROM and reprogram it. This may be because:

  • It’s electrically failed and cannot be used anymore, but you have a backup.
  • It has a known-working software on it, and you don’t want to risk any corruption from backing it up, erasing and rewriting.
  • It became damaged because of mechanical damage while extracting, over-erasure or age and could not be reprogrammed correctly.
  • It is a special chip with a significant label or marking which is especially worth keeping intact.
  • It is a type of chip which you can’t find appropriate programmer support for.
  • You don’t have an EPROM eraser and you don’t intend to buy one, or the chip was originally an OTP ROM and thus cannot be reprogrammed.

In such cases, it might make sense to seek or produce compatible replacement devices, so as to be able to have a new “plug-in” replacement.

Replacement Considerations and Strategies

In order to find an appropriate replacement, it’s often necessary to know everything there is to know about the original chip. The most important information are the manufacturer (often identified in a logo), the part number, the speed grade and the package. From this, you can look up a data sheet to verify its size, features, voltage and pin-out arrangements. A decision can be made on how to go about purchasing a replacement or producing one.

Part Numbers

Earlier PROMs prior to JEDEC standardization typically had very cryptic, manufacturer specific model numbers with varying pin-outs depending on the manufacturer. These chips are likely to have problems with programmer support, and will inevitably be difficult to replace “like-for-like”. The strategy for these may be to find a modern (or modern-ish) equivalent which has good programmer support with similar features and make your own wiring “adapter” to rearrange the pin-out for the device.

Chips since JEDEC standardization are more “sane” and typically have a few letters prefix for the manufacturer, a series code (e.g. commonly seen “27C”), a capacity indication (512 for 512kbit/8-bit, 010 for 1024kbit/8bit or 1024 for 1024kbit/16bit), and a speed grade (-70 for 70ns, -10 for 100ns, -20 for 200ns for example). These typically will have similar performance and programming characteristics even across the vendors and are more cross-vendor compatible as well. Some of these are still available as OTP EPROMs in plastic packages with no window – so you have one chance to get it right.

With different series codes, they normally indicate different alternate technologies (e.g. 28C EEPROMs, 39C Flash) with subtly different pin-outs which may or may not be directly drop-in replaceable for read-only applications. Consulting the datasheet is probably necessary, but with eraseable parts, data retention is typically 10-100 years, whereas OTP ROMs may be more longlived.

Other parts sometimes aren’t marked with their actual part number and instead have a branding marking on them, or the firmware version. Without being able to confirm the type from other sources, or by examining the PCB, I wouldn’t advise playing with these parts in case selecting a typical type for that particular package results in the wrong pin-out selection causing damage to the chip and its contents.

Speed Grade

Older chips often had slower cycle times, with speed grades of -10, -15, -20, -25 not uncommon. Luckily, it is unlikely to be a big problem if they are replaced with much faster -45, -55, -70, -90 parts, as the chips are asynchronous and the cycle time just represents the amount of delay from putting in a valid address to receiving the correct data output. Using a faster chip than is necessary just means the data will come out on the outputs faster and stay there until a new address is fed in. If the device isn’t optimized for the timing, there is no performance benefit, but at the same time, it’s unlikely to cause problems.

Where the price is the same, it’s often better to buy the faster part just so if you were to reuse it, as you may be reusing it in a device that demands a faster cycle time.

Voltages

Because of a trend towards lower voltages in newer electronics, you will find parts with seemingly similar specs and part numbers which only differ by a letter. This letter could spell disaster, as some of these parts are commonly available for 3.3v operation rather than 5v as often used by older TTL/CMOS computer parts.

In Atmel devices, the presence of LV indicates a 3.3v part, but the presence of BV indicates a dual-voltage part which can operate on 3.3v and 5v. Parts marked with C are 5v parts. SST/Greenliant parts use L or V to denote 3.3v parts, with S denoting 5v parts. AMIC parts have an L in the numeric portion to indicate 3.3v parts. ISSI/Macronix use LV to indicate 3.3v parts.

Where traditional 27C parts are used, the voltage is pretty much guaranteed to be 5v, thus only a corresponding C or BV (Atmel) or S (SST/Greenliant) part can be used to replace it.

Packages and Pin-Outs

Older packages pre-JEDEC standardization have different pin-outs, thus looking up the pin-out from the datasheet may allow for an adapter to be made provided the features match up (e.g. latching of address and data on de-asserted /CE, tri-state outputs going High-Z on de-asserted /OE).

Post-JEDEC standardized parts have very much identical pin-outs for the same series of devices, with slight differences between series. Devices of the same packaging style generally share the same pin-out, with different capacities allocating some NC pins to further addresses. If replacing a PROM/OTP PROM with an EEPROM for example, an AT27C256R with an AT28C256:

Atmel-AT27C256R

Atmel AT27C256R

Atmel-AT28C256

Atmel AT28C256

We can see that the EEPROM uses Vpp pin for A14 (address bit 14), and trades A14 for /WE. Some work is necessary to lift the A14 pin from the chip, tie /WE to VCC externally (e.g. air-wire, as it will not be written in-system) and connect A14 input (pin 1) to the A14 output (pin 27) on the socket (e.g. another air-wire). For PLCC, the other consideration is that some pins are not-connected, and others are do not connect, so care might need to be taken to break off the DC pins in case they are connected on the receiving PCB.

In other types of replacement, say an PROM/OTP PROM with a Flash chip, for example, the AT27C010 with an SST-29SF040:

Atmel-AT27C010Atmel 27C010

SST-39SF040-J SST-39SF040

SST SST39SF010A

We can see this combination is unlikely to need any modification at all – the pins are all routed to their logical equivalents, where Vpp is left not connected and /PGM is connected to /WE which both serve similar purposes. As a result, it’s good to check the datasheet in case of any doubt, and potentially look at different classes of replacement devices.

Devices are commonly available in the PDIP and PLCC form factor, with the DIP easiest to solder and work with. Sometimes, your preferred device may come in PLCC only, although an adapter (e.g. the ones used with programmers) can be used if the space permits, although verification of the pin-out may be necessary.

Size Mismatches

Inevitably, you will probably come across a need for smaller devices than those available, or maybe you want to reduce your inventory on each particular pin-out style and were wondering whether it is possible to substitute a larger device in place of a smaller one (and just waste the additional space).

Indeed, this can be a possibility, but depending on how the recipient PCB treats the NC pins on the smaller part (which often become address bits on a larger device), some modification will probably be required.

If we take the SST39SF010A and SST39SF040 in the DIP package, we can see the only difference between the 1Mbit and 4Mbit package is the use of Pin 1 as A18, Pin 30 as A17, ultimately adding two high order bits to the address which multiplies the addressable space by 4 (as we expect).

If the recipient PCB was designed for the 1Mbit part and leaves Pin 1 and Pin 30 disconnected, then they will float which means that they might have an undefined logic state resulting in unusual operation or instability especially in the presence of electrical noise. Modifications will be needed to tie this to a particular logic level to select which 1Mbit slice of the 4Mbit device will be used.

If these pins were grounded by the recipient PCB, then these high order bits will take a logical 0, thus fixing the higher two bits of the address to zero, meaning that you can just drop it in after programming it as normal, and the device will only access the first 1/4 of the device.

Of course, if you have multiple ROMs you’d like to switch, you can take advantage of this as it acts as a “virtual partitioning scheme”. By wiring out the two high order bits to some switches, you can now choose four 1Mbit slices (00, 01, 10, 11 for the high order bits). When programming, you have each ROM programmed sequentially one after another. Of course, the same principle can be scaled down to smaller devices as well.

Bit-Width Mismatches

Because of performance or bus width requirements of some devices, 16-bit width devices may be required. As 16-bit reprogrammable parallel devices can be hard to find, some handywork might be necessary.

Two eight-bit width devices of half the size can be used to replace a 16-bit device as long as all the inputs (Vcc, GND, /CE, /OE, /WE) and all the address lines (A*) are connected together, and the bus supports driving a load of two chips. The output of one of the chips will be the low-order byte, and the other chip will have the high-order byte.

Modification to the ROM file will be necessary to split every odd/even byte into a separate file, and the order in which the ROMs are installed will be important otherwise you get a byte-swap.

New, New-Old-Stock, or Used?

I suppose this is where it gets tricky. How you choose to source your part will come down to what you would like. Buying new parts will ensure they are clean, free of damage, and are likely to be as reliable as they can be. Sometimes they will be more expensive as a result, and it will be more difficult to find the exact replacement part you need.

New-old-stock is very murky, as some sellers claiming to sell NOS are actually selling recycled pulls, some of which may be tested and erased, others untested with bent pins, cosmetic damage and adhesive gunk. Sometimes the price will be very good, and you will find an exact replacement part, thus making it easy and potentially safer (compared to a botched modification). If you’re more advanced, you might not mind this, especially if you can afford to get a few units.

Used parts are definitely pulls, and have the same caveats as above, but are probably coming from honest sellers. Many of the products which can only be found used may be early generation devices which you may not be able to program with modern programmers, so while it may be pin-compatible, it may not be actually “useful”. Sometimes these rarer parts are priced very highly due to their gold content and their exquisite appearances, thus it may make sense to consider modification especially where functionality and not appearance is the aim.

Replacement with different parts should be considered, especially if a reprogrammable part meets the timing requirements at a reasonable cost, as that could pay itself back if you end up making a mistake or you want to trial several variations of a ROM before settling on one.

Modern-Day Parts and Pricing

This part started off with my thoughts of buying new EPROMs with windows to photograph. Sadly, CERDIPs have been long out of supply and probably production, but I then wondered, if one wanted to purchase new parts, what options did they have? It seems the trend towards serial low-pin-count type devices, surface mount technology and lower voltage operation means that the number of inter-compatible and potentially inter-operable new devices is becoming more limited as time progresses. Still, it was worth a shot just to understand what parts are available and what the rough pricing would be.

All the following tables were sourced from AU$ pricing on element14, RS components, DigiKey and Mouser as of 23rd April 2016. Products were chosen based on having published pricing available for single quantities with single prices being quoted. Products were also chosen in PDIP/PLCC packaging with parallel asynchronous interface which is most applicable for prototyping and vintage computing use. The tables are rendered as an image, because it is otherwise problematic to format correctly for HTML.

OTP EPROMs

OTP EPROMs are pretty much exclusively available from Atmel now, as most other manufacturers have long discontinued production and their inventory has sold out. As a result, it seems that OTP EPROMs may be at risk of becoming more expensive or extinct. The OTP EPROMs on the market are suitable for direct replacement of many 27C parts, for a one-shot program and replace. Generally parts in the PDIP28/PLCC32 up to PDIP40/PLCC44 are available with 16-bit devices still available and a range of speeds. Curiously, faster speeds do not cost more, so it’s probably wise to opt for them. The best prices were available from DigiKey, although it’s important to remember that free shipping is normal for all RS online orders. For element14, free delivery starts at AU$45, for Mouser at AU$65 and for DigiKey at AU$200, so it only makes sense if you’re making a large order. Unfortunately smaller devices in PDIP24 forms are not available anymore, so modification or sourcing used stock may be necessary. The prices are generally inexpensive, the cheapest 8Mbit chips are still under AU$10.

OTP-EPROM-Price-Table-Apr2016EEPROMs

EEPROMs can be erased and reprogrammed numerous times. These devices are slower than modern OTP EPROMs, but are probably still faster than the older EPROMs they can replace. These are likely to need modifications because of address pin reallocation – check the datasheet. They generally cover the smaller end of the devices 64-1024kbits, but the prices are accordingly more expensive. A common 256kbit device is AU$10.37, whereas a 1Mbit device is an exorbitant AU$44.66. This is with the exception of the Greenliant chips which Mouser seems to have priced quite competitively. All of the devices are 8-bit width, and a majority are PLCC packaged.

EEPROM-Price-Table-Apr2016

Flash

Flash can also be reprogrammed like EEPROMs but internally have a different structure and are a lot more complex. However, it seems that some devices can be exchanged directly without modification in read-only applications, however, Flash mainly covers the larger devices (512kbit to 4096kbit) category. All devices are 8-bit width, and choice of packages are relatively limited with most parts being PLCC32 and many parts being 3.3v parts. Because of this, the cheapest 5v capable part in each capacity+package+speed grade is highlighted. Prices are, however, quite a bit cheaper as this technology is more recent and still in production by multiple vendors. However, as a whole, parallel interface chips are on the decline.

Flash-Price-Table-Apr2016

Conclusion

In this post, I did a lot of shopping around and looking at datasheets to work out just what might be possible when it comes to replacing PROMs with more modern devices. As newer surface mount technologies are in vogue, lower voltage devices are common, and serial interfaces with reduced pin counts are popular, parallel devices are slowly becoming more difficult to find. Ceramic DIPs, and hence the UV EPROM, have been extinct for a while owing to their higher cost, reducing demand, thus the closest relatives to them are the OTP EPROM. This is currently still available in a wide range to cover 256 to 8192kbits in both 8 and 16-bit bus widths but only from one manufacturer (Atmel) as of 2016.

Replacement with EEPROMs may be possible with modifications, although EEPROMs are much more costly and slower than modern EPROMs. They are still fast enough for many applications and have the benefits of being reprogrammable, although they mostly available in PLCC32 form only.

Flash devices could be used, with direct replacement a possibility, although many devices are 3.3v only, and most devices are packaged as PLCC32 chips. They are reprogrammable, and are much cheaper, however, they mostly cover the larger end of the market from 512 to 4096kbits.

Purchasing used or new-old-stock may allow you to find directly compatible parts, but one has to beware that sometimes they may be untested, not erased, or be so old that they are not compatible with modern programmers. It can be more risky, and sometimes more pricey especially for chips which are scarce or have high gold content. New parts, conversely, have the best reliability but may be more expensive than some surplus clearance items.

Like-for-like replacement can be difficult, but if you use JEDEC standardized parts, and use an equivalent or better speed grade, cross vendor compatibility should not be a major problems. It seems that other issues such as size mismatch, bus-width mismatch or pin-out mismatch can be worked on if you spare the time to build your own adapters and carefully read the datasheets.

About lui_gough

I'm a bit of a nut for electronics, computing, photography, radio, satellite and other technical hobbies. Click for more about me!
This entry was posted in Computing, Electronics and tagged , , , , , , , . Bookmark the permalink.

3 Responses to Thoughts: Replacing PROMs with Modern-Day Parts

  1. sparcie says:

    Another option would be to scavenge the chips you need from old equipment that you would otherwise throw out. Not the sort of thing you can do when looking for a specific part, but something you can collect over time.

    I don’t have many spare chips in the ROM variety so I might have to look at buying some flash/eeproms whilst they are still available. I do eventually want to build by own Z80 computer, but am presently lacking the time.

    Just out of interest, what’s it like finding SRAM chips in the PDIP packaging?

    Sparcie

    • lui_gough says:

      Great suggestion, and it’s something that I’ve done subconsciously when tearing apart dead stuff. Keeping a good file of what you have and where you’ve kept it is probably the next challenge because the damn things always go missing just when you need them and you spend a good afternoon turning the whole place upside down to see if you are lucky or not.

      SRAM is another one of those “slowly fading” technologies, with most chips that need SRAM embedding it within the same IC, so discrete SRAM isn’t as common as it once was. A quick check at DigiKey seems to show there are quite a few, but whether they’re of the capacity/layout I’m not sure. I’m not sure if the link works but I went Integrated Circuits -> Memory, filter by type RAM, then SRAM & SRAM – Single Port, interface Parallel, then filter by package and selected all DIP/CDIP I could find. Capacities seem to be up to 16kBits/2Kbytes per package in PIP24 from IDT with some quantity available but they’re all “non stock” so I suspect once sold, they will not be replenished unless by backorder and wait.

      http://www.digikey.com.au/product-search/en/integrated-circuits-ics/memory/2556980?k=&pv154=503&FV=2540008%2C2540033%2Cf040006%2Cfff40027%2Cfff80434%2C401975%2C40197c%2C401982%2C401985%2C401993%2C401a9e%2C401c15%2C401c35%2C4021de%2C4022f5%2C402338%2C4027b0%2C4027bd%2C402c98&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=500

      Checking at Mouser seems to show a similar story – Semiconductors > Integrated Circuits > Memory > SRAM + Filter by Parallel, Through Hole = 215 matches, of which 57 are stocked with capacity up to 4Mbit/s from Alliance Memory. Not sure if the link will expire before you see it but it seems like there’s still some options around for SRAM:
      http://au.mouser.com/Semiconductors/Integrated-Circuits-ICs/Memory/SRAM/_/N-98xofZscv7?P=1z0vhtuZ1z0z63x&Ns=Memory%20Size|1

      Buying up some 27C windowed EPROMs would be nice – I’ve got a collection of NOS/used chips on the way, but I’m not too hopeful they’re all going to be A-grade. I suspect I might throw a little bit of cash towards the major component suppliers just to keep a few OTP EPROMs in stock as well in case something poops out somewhere, but at least the venture seems to show that if I’m desperate, some breadboarding/converting/rewiring and I could potentially get the newer NOR Flash to behave close enough to the EPROM that the machine wouldn’t notice – but it’s just time consuming and inelegant.

      – Gough

  2. Robert says:

    I found an article on how to use a gal to replace an 82S123
    http://www.retroclinic.com/leopardcats/galprom/galprom.htm

Leave a Reply to RobertCancel reply