# Mixing NMOS and CMOS

I have an old system board for a pinball machine that I'm fixing up. One of the ROMs is failing post. The reason is because the 27S256 EPROM never had the sticker applied to the window, and due to a series of circumstances the EPROM wasn't touched for several years so it became altered via incidental lighting.

My question: Is it safe to replace this part with a CMOS part of the same Pinout and type? Is it safe to mix Schottky and CMOS?

Please correct any factual errors in the above. A little new to this.

EDIT: it's not a 27S256, it's a HN27256G-25. I couldn't read correctly. According to some googling it is an NMOS part. Can I mix NMOS and CMOS

• The first thing to worry about is if you have the proper data for the device to program it with. If you do, you may even be able to reprogram it. – jippie May 26 '12 at 15:44
• I did. If you checkout ipdb.org, many of the pinball machines listed there have code images for download, especially Williams and Data East. Which is quite handy. – J. Polfer Aug 19 '13 at 17:54

You can replace your HN27256G-25 (250 ns) NMOS EPROM with for instance a M27C256B-10F1 (100 ns) CMOS EPROM. They even have, in stock.

Most important things to check:

They are pin-to-pin compatible.
Supply(CMOS)=5 V = Supply(NMOS)=5 V.
Access time(CMOS)=100 ns $\le$ Access time(NMOS)=250 ns.
Operating current(CMOS)=30 mA @ 5 MHz $\le$ Operating current(NMOS)=100 mA max (!).
Standby current(CMOS)=100 $\mu$A $\le$ Standby current(NMOS)=40 mA (!).
$V_{OLmax}(NMOS)=0.45\;V \le V_{ILmax}(CMOS)=0.8\;V$.
$V_{OHmin}(NMOS)=2.4\;V \ge V_{IHmin}(CMOS)=2\;V$.
$V_{OLmax}(CMOS)=0.4\;V \le V_{ILmax}(NMOS)=0.8\;V$.
$V_{OHmin}(CMOS)=3.6\;V \ge V_{IHmin}(NMOS)=2\;V$.

All that is fine, so the CMOS EPROM should work.

Russel is right in that there are several other things to check, related to timings but, being the CMOS a 2.5x faster device, odds are that the new device will work with no problems. And the reason for this is that memory interfacing protocols are designed precisely with that in mind: so that devices with shorter delays will not pose problems. Manufacturers specify maximum delays, not minimum delays. They also specify minimum setup times, but that's another thing, which doesn't pose a problem here.

• I think this is the correct answer. +1 – stevenvh May 26 '12 at 14:02
• @Stevenh - Aye. You can't go wrong with "...should work". Should. Certainly. Setup and hold times are probably OK too. Capacitance is probably entirely acceptable too. xxx [Murphy ...] ... is probably ok too. I'd suggest that he go over the data sheets in detail to look for all the compatability issues - of which there are still potentially a number. But I'd guesstimate that he's got a fighting chance of it working. // Strange. Strong sense of de ja vu here ... . [[Having an actual comparison part offered and knowledge they are ih stock is genuinely useful.]] – Russell McMahon May 26 '12 at 14:45
• @Russell - You can go a long way with "should". Are you sure you always check every parameter before using a device? I bet not, albeit because the datasheet doesn't list every parameter. At a certain point you decide it "should" work. In most cases it does on the breadboard, and that must be confirmed during compliance testing. If it doesn't you go hunting for this one parameter you overlooked. Bad hair day. – stevenvh May 26 '12 at 15:37
• @stevenvh - Aye - I'd already done "should". But it was (and is) " ... should, BUT ..." . ie when mixing and matching like this, as opposed to designing, you "would be advised" to indeed check all timings,, loadings, voltages, timings, frequency ranges and phases of all the moons. || As for designing, for a new design with a part that I'm not familiar with I try to worry the datasheet to death enough that when problems occur (not if :-) ) I know it's liable to be due to lack of characterisation on the part of the component and not lack of reading on my part. – Russell McMahon May 26 '12 at 16:35
• @Russell - agreed. Enjoy the rest of your weekend. – stevenvh May 26 '12 at 16:40

No, since they have different logic (voltage) levels (TTL is lower that CMOS). You may need to convert the logic levels. This can be done using ICs like the TI CD4504B. Check the datasheets (EPROM and level shifter) for details.

Can you mix types? = Maybe.

I'd go over the data sheets in detail to look for compatability issues - of which there are potentially many. But I'd guesstimate that you've got a fighting chance of it working as long as they both use the same supply rails. ie hopefully both are 5V single supply.

HOWEVER, if you can get the original code or read the failing part reliably enough sometimes to recover the code, then you can probably get the original part regrogrammed. as you are willing to replace it you lose little by trying this - EXCEPT if this is your sole code source.