Replace 28-Pin EEPROMs with 32-Pin Flash Chips with This One Simple Trick
Anders Nielsen demonstrates a quick hack for an EEPROM replacement.
Non-volatile memory has been a core of embedded computing devices since their beginning. UV Erasable PROMs lead to electronically erasable ROMs (EEPROMs) with high-voltage and, eventually, low-voltage flash memory. Retro microprocessor enthusiast Anders Nielsen's latest video demonstrates how to use a (more) modern 32-pin flash chip as an alternative to older 28-pin EEPROMs.
Nielsen's past projects include the 65duino, a 6502-based SBC, and a breadboard computer. These all included combinations of either a Winbond W27C512 64K 28-pin DIP EEPROM or a (now) Microchip SST395F010A 128K 32-pin DIP flash.
EEPROMs and flash memory chips are both electrically erasable. However, EEPROMs like the W27C512 require a high-voltage (HV), typically around 12-14 volts, to erase and program. On the other hand, flash memory chips can operate entirely at 5 volts. Chips like the SST395F010 have variants that are still in production. So if the flash-based memory is easier to work with, has larger storage space, and is readily available as new parts, why not always use those instead of the older style?
First, the issue is that the 128K chips come in a physically larger 32-pin package. But Nielsen has a clever solution for that. The other reason that Nielsen likes to continue using the older EEPROM style is that his philosophy is to use period-correct technology when possible.
When you must (or want) to use the newer technology, you might think the only solution is to build an adapter PCB. But, as Nielsen found, looking at the two chips side-by-side, their address pins are nearly identical. The 128K flash chip has an extra address line, and the VCC pin is in a different place.
Nielsen's clever solution to adapt 32-pin flash to 28-pin EEPROMs is two resistors and a jumper wire. You can simply jump pin 32 (VCC) to pin 28 (No Connect) to move power. Then use a surface mount resistor to pull up the write-enable signal. Since the flash chip has the extra address pin, there are two solutions to address it floating. The first would be filling the chip so all banks contain the same code. But Nielsen instead used a resistor to tie A16 and A15 together. This trick eliminates running a wire down to the ground pin.
After some troubleshooting, the 65udino booted with the 32-pin flash memory. This board is a 6502 computer in an Arduino Uno form factor. Nielsen originally designed it for a 28-pin EEPROM. In its case, you can leave the larger flash chip hanging over the edge. For applications requiring more physical room, Nielsen recommends extending the chips vertically with an extra socket (or two.)
Check out the full video for more details. Nielsen does a great job walking you step-by-step about how to make this simple swap.
Electronics enthusiast, Bald Engineer, and freelance content creator. AddOhms on YouTube. KN6FGY.