Skip to content

AndersBNielsen/Relatively-Universal-ROM-Programmer

Repository files navigation

Relatively Universal-ROM-Programmer

This is meant to be a cheap way to program W27C512 EEPROMs which require 14V erasure voltage and 12V programming voltage... Or basically any other 24/28/32 pin ROM requiring from 5V to 27V programming/erasure voltage.

You can either make your own, get a PCB from JLCPCB using the guide below or order a kit with SMD components presoldered from iMania.dk (sockets available if needed). Kits with SMD components presoldered are available from my store, iMania.dk

Requires a dev board with a processor or microcontroller. Like a 65uino or Arduino Uno for instance.

Software

#1 Don't attach the Programmer shield while power is on.

#2 Don't turn on power if the controller (Arduino/65uino/Nucleo board) isn't programmed with appropriate firmware.

#3 Don't insert a ROM in the socket until you're ready to write it. Don't leave a ROM in the socket during reset or programming.

Firestarter firmware

If you just want to get started fast, there's an amazing third party firmware and desktop software available in the form of Henols's Firestarter Firestarter is recommended if you just want to program ROMs cheaply and don't care too much about the technical details.

Remember: Don't insert a ROM in the socket until you're ready to write it. Don't leave a ROM in the socket during reset or programming. Program Arduino before attaching shield. Attach shield before powering on Arduino.

Original proof of concept code

6502 assembly code is available in the 65uino repo (to be separated and moved here "soon").

Arduino sketch is available in this repo's /software

Both the 6502 firmware (65uino) and the Arduino sketch use the command line python scripts in this repo for burning and reading ROMs.

read_binary.py reads a ROM via serial.

send_binary.py burns a ROM via serial.

send_command.py issues commands (erase for instance)

Rev 0 photos (The Rev 1 added a voltage divider for reading VPP/VEP, Rev2 has replaced the jumpers with transistors for automatic pin count selection)

Relatively-Universal-ROM-programmer-rev0-front-assembled Romprogrammer-assembled-back ROMprogrammer-assembled

Documentation

The Relatively Universal ROM Programmer relies on the standard JEDEC ROM footprint and common "high voltage" pins to work. BJT drivers handle putting the 12-27V programming voltage on the relevant pins. Which "high voltage" pins are active can be selected in software but jumpers have to be set for the different package sizes. A common configuration is to connect "A" to 5V and B to "A13", which covers the Winbond 27C512 and many other common 28 pin ROMs. This configuration also covers the 32 pin SST39SF010 (5V programmable).

The "high voltage", VPE, is calibrated using the trimpot on the front of the board after activating the regulator in software. Please be aware that some dev boards WILL put VPE on several pins during reset - especially if reset is held down manually. This MAY damage a chip in the socket (especially if it's only 5V programmable). Clarity: It's best to NOT reset the controller with a ROM in the socket to be on the safe side.

Documentation will be updated with FAQ.

Programmer-back-documentation

Getting a PCB

This project is kindly sponsored by JLCPCB. They offer cheap, professional looking PCBs and super fast delivery.

Step 1: Get the gerber file zip package from the /hardware folder /hardware/rev2/rev2-1316.zip for instance.

Step 2: Upload to JLCPCB https://jlcpcb.com

Upload

Step 3: Pick your color, surface finish and order.

Select settings

Save your choice

If you want JLCPCB to assemble a board, the BOM and placement files are also in the repo.

You can use these affiliate links to get a board for $2 and also get $80 worth of New User Coupons at: https://jlcpcb.com/?from=Anders_N

And in case you also want to order a 3D-printed case you can use this link. How to Get a $7 3D Printing Coupon: https://jlc3dp.com/?from=Anders_N

About

Hardware to program W27C512 EEPROM or any 24/28/32 pin ROM requiring from 5V to 27V programming voltage.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published