A plan for a "universal" low-pin-count programmer

Philip Pemberton classiccmp at philpem.me.uk
Mon Jun 29 10:29:27 CDT 2009


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/


More information about the cctech mailing list