Hi guys,
I know a few folks here (besides myself) have accumulated collections of
older-generation (i.e. "obsolete") fuse-PROMs, GALs, PALs, and so on. A common
complaint is that modern programmers won't touch these devices -- negative
voltages (sometimes very high negative voltages) are required to program some
of them, and for others the programming hardware just wasn't tested with them.
In my experience, when confronted with the fact that their programmers don't
actually work, most programmer manufacturers seem to respond by asking why
you're even thinking about using 1702 EPROMs in their programmer, and
sooner-or-later admit that they actually didn't test them on anything more
recent than a programmer they last sold in the late 1980s, and that they "just
ported the software across and thought it would work".
So what I'm proposing is this.
A completely open-sourced device programmer. That is, all the hardware
designs, PCB layouts, software and firmware are (or at least will be)
completely open. My "rough feature set" boils down to:
* Single input power supply -- probably 24V DC. Fed from a normal mains
adapter. I'm tempted to use 12V DC instead, and live with the higher current
consumption -- my only spare 24V PSU is a massive 600W Nemic-Lambda dual-fan
unit that makes a sound not unlike that of a mid-sized jet aircraft. 12V 2A
power supplies are a bit more plentiful...
* Two programmable positive power supplies, all variable between around 2V
and ~24V (or higher if need be). Maybe add a third if necessary (for ECL maybe?)
* Two programmable negative power supplies, variable between -2V and -50V.
Meaning you can program 1702s with it.
* 24, 32 or 40 individually-programmable pin drivers. More or less if you
like -- add or remove a few pin drivers. I think the upper maximum is likely
to be around 64 pins, based on typical CPLD pin counts.
* Modular design -- one interface controller (computer -> driver
interface), swappable power supply boards, pin count can be increased in 8-pin
blocks by adding more pin drivers (or boards can be swapped to troubleshoot
driver issues).
There is one obvious limitation here -- you need the programming algorithm for
the chip you want to program. The algorithms for MMI PALs are (I've been told)
in their databook, the Signetics algorithms (for fuse-PROMs) are just as easy
to find, and TI put their TIBPAL programming algorithms on their website.
Things like Lattice GALs might be difficult, unless you could live with using
an "unofficial" programming algorithm (*cough* GALBlast).
I suppose you could reverse-engineer an algorithm from a working programmer
and a minimum of two blank chips, but I suspect something like the GAL
algorithm (in complexity) might be somewhat tricky to reverse-engineer.
Does anyone (besides me) think this is a worthy endeavour?
At the moment I'm thinking of using FET-based pin-drivers (lower pin count and
voltage drop, potentially faster switching) and MC34063-based switch-mode
PSUs. The control interface will likely be USB, possibly based on a Cypress
EZ-USB FX2LP chip -- the advantage being that the firmware is stored in the
MCU's RAM (uploaded from the PC on startup), so no PIC, AVR or 8051 programmer
is required. Unless anyone has any other comments or suggestions?
Cheers,
--
Phil.
classiccmp at philpem.me.uk
http://www.philpem.me.uk/