Professional Documents
Culture Documents
GAL Programmer LPT
GAL Programmer LPT
I created this project because I wanted to program some GAL22V10 and ATF22V10 PLDs which my so-called
'universal' programmer wouldn't program properly. The hardware is a simplified version of Manfred Winterhoff's
GALblast. I removed the parallel port buffers and replaced the DAC voltage generator with a fixed +12V regulator.
Programming voltage for GALs is connected directly to the DC power jack and must be set manually, using a suitable
regulated power supply. I modified the software so that it automatically switches the programming voltage between
+12V and Vin (14~16.5V) when writing to the GAL.
UPDATE 2018-05-7 PCB V2.1 corrected SELECT wiring, added resistors R6 and R7.
The circuit
Switch S1 puts the GAL into EDIT mode by applying +12V (via D1) to pin 2. Q1 and Q2 switch in the higher voltage
required for programming GALs. Jumper J1 is set according to which type of chip (GAL or ATF) is being programmed.
Q1 and Q2 can be any general purpose transistors such as 2N3904 and 2N3905 or 2SC945 and 2SA1015. I used resistor
arrays for the pull-ups and pull-downs, but discrete resistors will also work. D1 should be a Schottky type for low
voltage drop. As the GAL may draw up to 120mA (typically 60~70mA), the 5V regulator should have a heat sink
installed.
For GALs the power input must be set to the programming voltage specified for the particular chip (14V, 14.5V, 15.75V
or 16.5V). For ATFs it just needs to be high enough to ensure that the 12V regulator has sufficient headroom (>=14V).
The PCB has sockets for ATF/GAL16V8 and ATF/GAL22V10. GAL20V8 requires a socket adapter to remap the pins.
The 'Minimal' ATF Blaster is a further simplified circuit for ATF chips. The 12V regulator and programming voltage
control have been removed, so the circuit must be powered from a well regulated +12VDC supply. Since all ATF chips
have pull-ups or pin keepers on their I/Os, the pull-down resistors have also been removed. Pull-up resistors are
optional.They may be required if the printer port lines have low output voltage and/or high capacitance.
Programming Procedure
1. Run ATFBLAST.exe, select LPT port and chip type.
2. Plug chip into programmer. Ensure that EDIT switch is turned OFF.
3. Plug programmer into LPT port.
4. Connect power to programmer.
5. Turn EDIT switch ON.
6. Click READ GAL to check that the chip is blank (all fuses = '1'). If not then you may need to erase it.
7. Load JEDEC file.
8. Click Write GAL. Check that detected chip matches the type selected.
9. Adjust power supply to the programming voltage shown in the dialog. *
10. Click Write PLD. (the 'PROG' LED will light for a second or two while programming)
11. Click Verify GAL. If verify fails then repeat steps 6-10.
10. Turn EDIT switch OFF.
11. Disconnect power from programmer.
12. Unplug programmer from LPT port.
13. Remove the programmed chip.
* Minimum input voltage on the 'Intelligent' programmer is 14V. When programming ATF chips the jumper must be set
to ATF mode.
If you just want to read PES information (programming voltage, pulse durations, manufacturer etc.) you can click Write
or Erase, then Cancel.
Notes:
Conditioning
Atmel recommends that new SPLDs be 'conditioned' before programming. This means that the whole device should be
programmed with 0's twice and then erased. Verify errors can be ignored during conditioning. The blank JEDEC file
conditio.jed is supplied for this purpose.
These functions are provided for experimental purposes only and have not been tested. Use at your own risk!
To stop unused inputs from 'floating' and causing excessive current draw, some GALs have internal pull-up resistors or
'pin-keepers' that hold the last input value.However most GAL16V8 and GAL16V8B varieties do not have pull-ups, so
all unused inputs (including I/O pins programmed as inputs) need an external pull-up or pull-down. Inputs left floating
may change state during operation and cause programming errors.
Pull-ups are not strictly required on pins controlled by the programmer, however they may improve signal rise time when
using a parallel port which has TTL outputs and/or high capacitance.
Manufacturers don't publish their programming algorithms (perhaps because they are afraid of people making unreliable
programmers that could damage their reputation) so DIYers have had to reverse engineer them. This has resulted in some
misunderstandings and bad algorithms that may 'work' for some chips but not others. Luckily I have a Stager VS4800
which seems to program ATF chips correctly, so I monitored its operation with a logic analyzer. Here is what I found:-
[home] [electronics]