Introduction: Arduino Powered Eprom Programmer
This time we are called to read some EPROMs. And we need a programmer to do so!EPROM stands for Erasable Programmable Read Only Memory. They have been around for a quite long time, but being such a huge game changer back in the day, they still stand their ground really well, being used in pretty much every technological application of today's world.In the modern world EPROMs are pretty much extinct, day by day, being replaced with EEPROMS, which are electronically erasable (unlike the conventional ones which are being erased by exposure to UV light through a tiny window on the chip) but they are still broadly used in they industry, where machines are so complex, expensive, specific and extraordinary, which increases their lifespan, making in some cases a machine fabricated in the 80s still a newbie!So today we have one of those cases, where we need to copy some such EPROMs coming from a machine called Zakar, which works alongside with a loom in the fabric-making industry.Let's have a look!
Step 1: Let's Make It!
On the video above you can see all about it, but let's break it down a bit, just to be a bit tidier!
You are gonna need:
(The links below are affiliates, so if you buy through there, I may also make a dime. Not at your expense!)
-Shift registers https://ebay.us/UFyt7k
-Breaboard wire https://ebay.us/K2MRYd
Step 2: Wiring
So the wiring here is pretty straightforward, and it is what you can see in the diagram above.
The main idea is that you connect your Arduino to the first shift register, in order to clock in the different pins you are going to need as the EPROM's address pins. The second shift register connects in line with the first one, since those are 8-bit registers, so you need a place to store the extra 4 bits!
All those bits you get from the outputs of your registers and throw to your address pins on your EPROM (EPROM input pins). Then you connect all your EEPROM's outputs onto your Arduino's digital pins D5 to D12, in order to read what they put out, and last but not least, you have to connect your Arduino D13 to your EPROM's OE (Output Enable) pin, in order to present an output by throwing a pulse there, once all your address pins are set, for each different address. And that was all!
I am not quite sure if I made it better for you with that summary I just gave (XD) but I promise, it is pretty straightforward! Make sure to check the wiring diagram of the photo attached above, or better still you could watch the embedded video. Now we need some code!
Step 3: Code!
So I am writing a little piece of code to upload to the Arduino,in order for it to read all the EPROM's content and dump it inside the serial monitor. A huge part of the original code came from Ben Eater, which I later modified to match our chipset and project needs. So I ended up presenting the info read inside the serial monitor, in a decimal form, one row at a time, a sum of 4096 rows!
It shouldn't be too hard for you to modify the code, and make it suit your project's needs. Get your hands dirty!
Step 4: The Epilogue!
So this one worked like a charm, and we now have a full register of all the contents of this old machine's memories, inside our modern PC or USB stick or whatever. For the next time, we'll need them, to keep the machine alive and running, for many years longer!
Of course, at that time we will also need to write into such an EPROM, which we didn't do here yet, since those specific chips need 21 V to write, which makes things a bit more complicated, as we would have to use MOSFETs and optocouplers and various electronics in order to marry the two different voltages together, but still keep the delicate timings needed to write such a chip, but I will make sure to post another instructable about this whole procedure when I find me some time to get digging to that!
So, stay tuned, maybe even follow me here, or on my youtube channel, and thanks for reading!