何といっても超簡単 ! アマチュアでも手軽にPLDを使えるようになる簡易型GALライターです。製作費は数千円程度と、最も安い市販 GALライターの更に 1/10以下の費用ですので、個人で手元に置いておくのにはちょうど手頃なものかと思います。今回は誰でも使えるように再現性と汎用性を最重視した設計としてみました。
また、オマケ機能としてソケット変換アダプタで PIC16F84に書き込むこともできるようになっています。
| 対象デバイス | Lattice Semiconductor社製GAL ・GAL16V8A/B/C/D ・GAL20V8A/B/C/D ・GAL22V10B/C/D Microchip製PIC ・PIC16C84 ・PIC16F84 |
| プログラミング仕様 | GAL: VEDIT電圧 = 15.0V, STRパルス幅 = 40ms PIC: Vpp = 13.5V |
| 制御 I/F | IBM PC/AT互換機のパラレルポート NEC PC9801のプリンタポート |
| 電源 | DC7.5〜15V 100mA バッテリ(006P)で動作可 |
| 製作費用 | \4,000〜5,000 (部品代) |
パソコンのパラレルポート(プリンタポート)で制御する方式なので、専用 I/Fは不要です。このため、ノートパソコンなどでも手軽に使用することができます。本体回路図をご覧になると分かると思いますが、使用しているのは出力7本と入力1本だけです。ダイナミックに操作する必要があるラインは、ポートの出力で直接操作、あまり頻繁に操作する必要のないラインはシフトレジスタ(U1,U2)で出力するようにしています。入力についてはマルチプレクサ(U3)で任意のものを選択するようにしています。また、プログラムパルスのタイミングを得るためのタイマー(U4)も載せて制御ソフトの簡略化・安定化を図っています。
PICに書き込む場合は、GALソケットにPIC ISPアダプタを接続して使用します。
製作に当たって特に注意する点は無いでしょう。組み立て終わったら配線チェックして電源を入れます。異常が無ければVR1を回してVccが5.25Vになるように調整、VR2を回してVppが15.0Vになるように調整します。調整が済んだらライタをLPT1に接続して、制御プログラム群に含まれる動作チェック用プログラム(PGALCHK.COM)を起動します。チェックプログラムでソケットの各ピンの電圧レベルを操作できますので、対応するピンに正しく電圧変化があるかチェックします。タイマーテストは 10秒で終了すればOkです。
もしも動作が安定しない場合(違うピンが変化してしまうなど)は、グランドバウンスによるものと思われます。本器ではBUSYラインの駆動出力にCRをかましてグランドバウンスの低減を図っていますが、パラレルポートに接続するケーブルによっては誤動作する場合があります。補助的に10cm程度の線で本器の GNDとパラレルポートコネクタの金属部をつないでみて安定するようならそれが原因です。ケーブルを交換するかCRのRを100Ω程度まで変えてみてください。
使用するパソコンによっては、PICに書き込みができない場合があります。これは、パラレルポートの出力のHレベルがPICの要求するHレベル入力電圧4Vに達しない場合があるからです。特にノートPCの場合は、3.3V程しか出ないものがあるので要注意です。このような場合は、74HCT541などを追加してパラレル出力をC-MOSレベルに変換してやる必要があります。
制御プログラムとチェックプログラムはDOSアプリです。IBM ATとNEC PC9800両用で、マシンを自動認識して動作します。タイマをライタ側に持ったためか、Windows95のDOS窓からも安定して動作するようです。
| A | B | C | D | |
| GAL16V8 | ○ | ○ | ○ | ○ |
| GAL20V8 | ? | ○ | ? | ? |
| GAL22V10 | - | ○ | ○ | ? |
PGAL.COMに GALに書き込むJEDECファイル(JEDECフォーマットのフューズデータ)を付けて起動すると、必要なGALをセットするようメッセージが出ます。20pinの16V8は GND合わせでセットしてください。GALをセットして何かキーを押すとプログラムして終了しますので、正常終了したら GALを外して一丁上がりです。お手GALで正常に書き込みができることを確認している GALは右の表の通りです。
GALのフューズデータを読み出したい場合は、PGAL.COMを/Rスイッチで起動します。すると、GALの種類を選択するメニューが出るので、必要なものを選ぶとGALをセットするよう要求が出ます。GALをセットして開始すると、GALのフューズデータを読み込んで、フューズデータをJEDECフォーマットで標準出力に出力します。適宜リダイレクトするなりしてファイルに落としてください。
GALを消去する場合のスイッチは、/Eです。書き込み時には消去していますので、特に使う必要はないと思います。
PICW84.COMがPIC用の読み書きプログラムです。操作方法は、GALの書き込み・読み出しと同様です。書き込む HEXファイルの形式は INHX8で作成してください。また、HEXファイルにはコンフィグレーションワードが含まれていなければなりません。
PICではビットのセット/リセットが可能なので、通常は特に消去する必要はありません。書き込みの際はベリファイを先に実行するので、一部の変更なら消去しておかない方が高速に書き換えられます。ただし、プロテクトされている場合はベリファイできないので、書き込み前に必ず消去しておく必要があります。
電源を入れた直後はライターの状態が不定ですので、この状態でGALをセットするとGALを壊す恐れがあります。初回はセット要求が出てからGALをセットするようにしてください。また、GALをセットする際に種類や向きを間違えるとGALを壊す恐れがありますので注意してください。
GALにプロテクトしたい場合はJEDECファイルを編集してG0→G1に書き換えて書き込んでください。JEDECファイルを編集することによりファイル全体のチェックサムが狂いますが、書き込みプログラムはフューズデータ部のチェックサムしかチェックしていないので、エラーにはなりません。
制御プログラムの機種判定は、BIOSワークの 0040:0008 のWORD値が 3BCh/378h/278hのいずれかの場合は IBM PC/ATと判断しています。IBM PC/ATではその値をベースアドレスとしたパラレルポートで動作します。それ以外の値の場合は NEC PC9800として動作します。
バッテリ動作で006P型電池を使用する場合、マンガン電池は避けた方がよいでしょう。アルカリ又はNiMHの使用をお薦めします。ACアダプタを使用する場合は、開放電圧が15Vを超えないことを確認してください。
