Arduino board as CPLD (or GAL) programmer ?


Do you think it is possible to use the Arduino board as GAL programmer by temporarly replace the ATMega328P by a GAL ship (G16V8 for example) ?

Maybe this could replace a G540...


Or as CPLD programmer...

It is almost certainly possible, given the possible addition of external components, but probably not a reasonable project if what your really interested in is the function as opposed to learning for learning sake...

No, you certainly could not simply remove the ATmega and put a GAL in its place.

The board itself has no electronics for programming a part like a GAL.

And what about using the Arduino board with the ATMega328P (programmed) as a CPLD programmer ?

This kind of wiring, with a CPLD on the breadboard :


You need to do a little more homework on how those devices are programmed.

You could probably use an Arduino as the basis, but it will likely need some other hardware as well. Older devices need high voltages to program/erase.

The ATmega works because it was designed to be programmed over a serial port. GALs and smaller CPLDs weren't.


This programmer : TOP 853

Seems to be able to program those PLD :

16V8, 16V8A, 16V8B, 20V8, 20V8A, 20V8B, 
GAL16V8, GAL16V8A, GAL16V8B, GAL16V8C, GAL16V8D, GAL20V8, GAL20V8A, GAL20V8B, 
GAL16V8, GAL16V8A, GAL20V8, GAL20V8A, GAL20V8, 
GAL16V8, GAL16V8A, GAL16V8AS, GAL16V8S, GAL20V8, GAL20V8A, GAL20V8AS, GAL20V8S, 
VP16V8, VP20V8,

And it is just feeded with USB 5V-500mA... how is it possible ?


And it is just feeded with USB 5V-500mA... how is it possible ?

I could be wrong about the GAL devices you mentioned as needing higher voltage for programming. It has been 15 years since I used one. (Aren't the GALs discontinued?)

I brought up the higher voltage as a reason you need to research more about how those programmers work.

Again, there is absolutely nothing on the Arduino board that could program a GAL or CPLD.

Programming GAL devices may be more difficult, from

"First, be aware that the manufacturers don't feel it's in their interest to give you enough information to build one. There's a couple of reasons. Some them make money by selling programmers and software. Some of them don't want to spend a lot of money trying to figure out why you (and thousands others like you) can't get parts to program (or worse, stay programmed) using your homemade programmer.
So, starting around 1985, most manufacturers have removed this information from their databooks. Expect most CMOS parts to have proprietary algorithms. Also expect as parts are redesigned to be faster, the old programming algorithms may be obselete, or have certain parameters in them shift.
But if you are convincing, some of the manufacturers will give you the information on a nondisclosure basis. (I've heard National and TI are pretty nice. Lattice and AMD, downright rude.)"

However, CPLD's seem to be programmed through a JTAG interface, which should be doable for the Arduino. This app note might help!

XAPP058 - Xilinx In-System Programming Using an Embedded Microcontroller

And it is just feeded with USB 5V-500mA... how is it possible ?

All home made and commercial GAL programmers in 90s contained a small 5V to 15V DC converter (TL497 or 78S40 mainly) : see Galblast schematic or ELM's gal programmer
Certainly the same with this programmer, no mystery !!

CPLD's seem to be programmed through a JTAG interface, which should be doable for the Arduino.

I agree . You can get low cost 32 or 64 macrocells CPLD with ISP programming trough 4 JTAG pins (for instance : Atmel AFT1502, AFT1504 or Lattice M4A5-32/32 for about 2,5€ on Mouser site). Eaysier than GAL, IMHO, for programming through Arduino : fewer pins to manage + no voltage to switch between 5V (Vcc) and 15V (Vpp) during programming + available and documented algorithms.

If you buy a low cost GAL programmer be carefull for software quality (available upgrades ? OS ?) and for exact supported references (prefix an 16V8 suffix are very important for programming).
Programming algorithms have some subtiles and mysterious variants !!