In order to grow my inventory of parts, I scrounge the interwebs for people selling boxes of miscellaneous parts. I try to find those that look to have come out of a company’s lab or workshop. Sometimes I find some really cool stuff. Recently I picked up a batch of very old bipolar PROMs – memories that can be programmed once but read many times. The ones I found (82s129, 8bitx4, 1K) were used in arcade game consoles and Motorola two-way radios.
I know a few people who really want to have these, but they don’t want to waste their time writing data to used or bad chips. To keep them happy, I built a simple PROM tester, that scans through the entire memory array looking for high bits. (E)PROMs by default are all zeros. When they get programmed, the necessary bits are set to HIGH by exposing the bit to high voltage and burning an integrated nichrome fuse. Once the fuse has been burnt, it stays that way.
To check if the PROM has been used, I made a small circuit with a CD4040 binary counter and an Arduino. The binary counter has 12 output pins and when it receives a pulse on the pulse pin, it increments the output by one binary bit. The Arduino then scans the PROM output and checks for any HIGH bits. If one is found, the program halts and lights the PROM-BAD LED. If all bits are LOW, the Arduino sends another pulse to the binary counter and checks all the bits again until it reaches the max number of addresses the chip supports. If everything has been found good, the PROM-GOOD LED is lit and the program halts. Replace the PROM, hit reset and start over.
This same program can be used to test any type of memory for zeros. Static ram could be tested for write as well, with a few modifications.
The code can be found in my code repository.