This is an EMDP1 Adaptor and it is currently a work in progress.

GAL Adaptor Board

Table of Contents

Introduction

The GAL adaptor board is used to program some of the generic array logic chips out there -- namely the 16V8, 18V10, 20V8, 22V10, 20XV10, 20RA10, 6001, 6002, and 26CV12.

The following revisions of the EMDP1 GAL Adaptor board are listed below:

Revision A
The first revision of the GAL adaptor board.

In addition, there a number of personality plugs that plug into the EMPD1 GAL Adaptor Board to adapt it to different GAL parts:

Plug20
A plug for adapting to GAL's in DIP20 packages.
Plug24
A plug for adapting to GAL's in DIP24 packages.
Plug28
A plug for adapting to GAL's in DIP28 packages.

Research

When it comes to programming GAL's (Generic Array Logic) and PAL's (Programmable Array Logic) for the hobbyist, the first document to visit is Mark Zenier's Home-made PAL/GAL Programmers [Zenier1994] document. In Zenier's document are references to overview GAL documents by Gembris [Gembris1992] and a GAL programmer design by Nosswitz [Nosswitz1992, Nosswitz1993] Ultimately, with a little searching on the web, Manfred Winterhoff's GALBlast design [Winterhoff1998] is located.

This adaptor is pretty much a reimplementation of Manfred Winterhoff's GALBlast design with the following modifications:

But other than that, it is pretty straight forward reengineering of Winterhoff's design. Thanks Manfred!

The following table is adapted from the GALBlast project:

GAL

Pin
16V8 18V10 20V8 22V10
20XV10
20RA10
6001
6002
26CV12
1(2) VIL VIL VIL VIL VIL VIL
2(3) EDIT EDIT EDIT EDIT EDIT EDIT
3(4) RA1 RA3 RA1 P/V- VIL P/V-
4(5) RA2 RA4 RA2 RA0 RA0 RA0
5(6) RA3 RA5 RA3 RA1 RA1 RA1
6(7) RA4 SCLK VIL RA2 RA2 RA2
7(9) RA5 SDIN VIL RA3 RA3 VCC
8(10) SCLK STB- RA4 RA4 RA4 VIL
9(11) SDIN SDOUT RA5 RA5 RA5 RA3
10(12) GND GND SCLK SCLK SCLK RA4
11(13) STB- VIL SDIN SDIN SDIN RA5
12(14) SDOUT VIL GND GND GND SCLK
13(16) VIL VIL STB- STB- STB- SDIN
14(17) VIL VIL VIL SDOUT SDOUT STB-
15(18) VIL VIL SDOUT VIL VIL SDOUT
16(19) VIL RA2 VIL VIL VIL VIL
17(20) VIL RA1 VIL VIL VIL VIL
18(21) RA0 RA0 VIL VIL VIL VIL
19(23) P/V- P/V- VIL VIL VIL VIL
20(24) VCC VCC VIL VIL VIL VIL
21(25) RA0 VIL VIL GND
22(26) P/V- VIL VIL VIL
23(27) VIL VIL P/V- VIL
24(28) VCC VCC VCC VIL
25 VIL
26 VIL
27 VIL
28 VIL

Since GAL adaptor is going to use a single 40 pin DIP, the table is rearrgned around 40-pin DIP.

GAL

Pin
16V8 18V10 20V8 22V10
20XV10
20RA10
6001
6002
26CV12 Plug
1 VIL VIL VIL VIL VIL VIL PD0
2* EDIT* EDIT* EDIT* EDIT* EDIT* EDIT* VAR2
3 RA1 RA3 RA1 P/V- VIL P/V- BD0
4 RA2 RA4 RA2 RA0 RA0 RA0 BD1
5 RA3 RA5 RA3 RA1 RA1 RA1 BD2
6 RA4 SCLK VIL RA2 RA2 RA2 BD3
7* RA5 SDIN VIL RA3 RA3 VCC* PLUG7
8 SCLK STB- RA4 RA4 RA4 VIL BD4
9 SDIN SDOUT RA5 RA5 RA5 RA3 BD5
10* GND* GND* SCLK SCLK SCLK RA4 PLUG10
11 SDIN SDIN SDIN RA5 BD6
12* GND* GND* GND* SCLK PLUG12
13 SDIN BD7
14 STB- BD8
27 SDOUT BD9
28 VIL PD1
29 STB- STB- STB- VIL BD10
30 VIL SDOUT SDOUT VIL BD11
31 STB- VIL SDOUT VIL VIL VIL BD12
32 SDOUT VIL VIL VIL VIL VIL BD13
33* VIL VIL VIL VIL VIL GND* PLUG33
34 VIL VIL VIL VIL VIL VIL PD2
35 VIL VIL VIL VIL VIL VIL PD3
36 VIL RA2 VIL VIL VIL VIL BD14
37 VIL RA1 RA0 VIL VIL VIL BD15
38 RA0 RA0 P/V- VIL VIL VIL BD16
39 P/V- P/V- VIL VIL P/V- VIL BD17
40* VCC* VCC* VCC* VCC* VCC* VIL PLUG40
BD+PD 1+2 2+1 1+3 2+2 2+2 2+2
In the table above, pins 7, 10, 12, 33, and 40 need to have ground, and VAR1 routed to them. Pin 2 can be straight wired to VAR2. BD# stands for Bi-Directional and PD# stands for Pull-Down. The final row, shows how many bi-directional and pull downs need to be routed to pins 7, 10, 12, 33, and 40 for a given chip. Since a bi-directional pin can be used as a pull-down, we need to run 2 bi-directional lines and 1 pull down to the plug.

The plug needs the following on it:

Class Count
ZIF pins 5
Bi-directional pins 2
Pull-down pins 1
ID pins 4
GND and VAR1 2
Total 14
Thus, the plug needs to be at least 14 pins. 16 pins is a more common number, so a 16 pin header is selected for the plug.

There will need to be three plugs, one for the 20-pin devices, one for the 24-pin devices, and one for the 28-pin devices.

References

[Gembris1992]
Generic Array Logic (GAL) by D. Gembris in the April 1992 edition of Elektor Electonics magazine.
[Nosswitz1992]
GAL Programmer by M. Nosswitz in the May 1992 edition of Elektor Electonics magazine.
[Nosswitz1993]
GAL Programmer Upgrade by M. Nosswitz in the June 1993 edition of Elektor Electonics magazine.
[Winterhoff1998]
GALBlast by Manfred Winterhoff. URL: http://www.geocities.com/mwinterhoff/galblast.htm.
[Zenier1994]
Home-made PAL/GAL Programmers by Mark Zenier. URL: http://www.repairfaq.org/filipg/LINK/F_pal_gal.html.


Copyright (c) 2002 by Wayne C. Gramlich. All rights reserved.