Electronics, Microcontrollers

Reading an EPROM using an Arduino UNO – Step #1

Quite a while back I got a few components from a fellow enthusiast, consisting of a few Z80 with the accompanying peripherals,  some TTL-chips, EPROMS and a few RAM-chips, great! More parts for my homebrew Z80!

Sadly, the project has been dormant for some time, as I’ve become a father, and we’re in the process of moving, and perhaps one of the biggest hurdles, lack of equipment; equipment such as an oscilloscope1, EPROM-reader/burner/eraser, logic analyzer.

And today, by complete coincidence, I stumbled upon a video I’ve viewed previously on Youtube, about building an EPROM-reader with an Arduino Nano. And one thing came to mind, didn’t I have a “modern” EPROM laying around?

Sidenote, modern as in from this century, I only thought I had a few Intel D2716 from 1977 laying around.

I rummaged through a few drawers in my parts-cabinet, and indeed a had one “modern” (if you can call 2007-era EPROM modern) EPROM laying around, with a sane programming voltage and proper timing-diagrams in the datasheet.
Namely, the ST M27C512, a 512KBit (64KB x 8) EPROM, ie 64 KBytes which will do nicely for holding a BIOS and underlaying system-functions.

So in order to prepare for using this EPROM, I need a reader, and a programmer, and I have a few Arduino UNOs laying around, which will do nicely.
But hang on, the UNO doesn’t have enough I/O to be able to use both 16 address-lines, and 8 data-lines, as well as RX/TX for serial-communication, and to get around this issue, I decided use the only sensible option, the 74HC595, an 8-bit shiftregister, and two of them.
The advantage with using shiftregisters, I can address the whole address-space (2^16) with only using three outputs of the UNO.

So, in this post, we’re just gonna get the shiftregisters up and running, since my time is limited due to above reasons, and I’m currently writing this post roughly 150 kilometers (~93 miles) from my current home.

I as usual use a Wokwi-project as it’s quick and easy to get up and running with just trying out ideas.
The code should be self-explanatory, and by clicking play on the embed, you should see the LED’s counting up the addresses.

As always, if you’ve questions, or have any thoughts or think I missed anything, please let me know by using the comments below.

Until next time, take care.


1: If you’re located in Sweden and have equipment that is either going to the trash, or that you are thinking of selling, please contact me.

Leave a Reply

Your email address will not be published. Required fields are marked *