まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2018年06月

今さらGALを使う準備

 2018年現在でDIP品のGALを使う準備。

 PLD(Programmable Logic Device)の一種であるPAL,GALは汎用ロジックICの置き換えとして使われていた。TTL 2〜3個を1個のパッケージに収めることができ、ゲートの段数を重ねることがないのでディレイも最小、面積も有利なので主要なLSI間をつなぐGlue Logicとして主に使われていた印象。GALの場合、DIP品は端子数と内蔵FFの数から16V8、20V8、22V10がよく使われていた。しかしより集積度の高いCPLD/FPGAの登場により終息しつつある。
 で、今GALを趣味で使うのは昔のマイクロプロセッサ関連を動かせるように作ったり修理したりするのに便利そうという理由。で、開発環境が用意できるかどうかやってみた。

・石の選定
 LatticeとAtmel(Microchip)が生き残っているが現在も生産しているのはAtmel(Microchip)のみ。DigiKey提携のマルツなどで購入できる。
ATF16V8B(Microchip)

・GALライタ
 アマチュアが入手容易なMiniPro TL866シリーズはLattice/Atmelに対応している。
サポートデバイス:
Microchip(ATMEL) ATF16V8B
Lattice GAL16V8/20V8/22V10

・開発環境
ATF16V8Bの開発にはWinCUPLを使用する。PALASM、ABEL、CUPLと色々独自言語があったけど回路規模は小さいし雰囲気で使えるはず。

 ということで ATF16V8B/WinCUPL/TL866CSの組み合わせでやってみます。

・WinCUPLのインストールとコンパイル
 WinCUPL(Microchip)からダウンロードしてインストール、再起動した後にライセンスキーを入力。ライセンスキーはWebページに掲載されています。インストールディレクトリはC:\Wincupl 。

 WinCUPL起動後、メニューの[File]→[Open]から C:\Wincupl\Examples\Atmel\ADDER.PLD を開く。次に[Run]→[Device Dependent Compile]でコンパイル。([Run]のメニューはファイルを開いていないと出ません) これで同じフォルダ内にADDER.jedなどのファイルが生成される。
GAL-compile

※私のWindows10pro環境ではコンパイル後にrun-time errorが出て終了しましたが他のWindows10home、Windows7(64bit)では正常にコンパイルできました。もともとWindowsXPまでの対応なので深追いせずにあきらめましょう。

・MiniPro TL866CSによる書き込み
 MiniPro TL866CSのソフトウェアは以下よりダウンロード。ver7以降はTL866II Plus専用なので注意。

 ブランクチェック。GALはPROMと同じような感じで焼けます。
2018GAL

 ADDER.jedを指定して書き込みOK。
GAL_atf16v8b

 ということで書き込みまでOK。

 GALは組み合わせ回路のみで使うと特に悩むようなことはありません。むかし別のメーカーのでFFを含む回路を作ったときはFFのリセット後初期値が'1'でハマった記憶が。そのときもなんとなく記述して動かしたので今後もまあできるんじゃないかなあという気持ちでいきます。


高速運作TL866CSプログラマ/USBついプログラマ EPROM FLASH AVR TL866シリーズプログラマ高速運作TL866CSプログラマ/USBついプログラマ EPROM FLASH AVR TL866シリーズプログラマ

Generic
売り上げランキング : 58538

Amazonで詳しく見る
by G-Tools

SBC6303のリセット対策 - シリアルI/Fからの電流回り込み防止

 SBC6303ルーズキット、既知の問題としてパワーオンリセットがかからないことがあるというのがあるが私の環境(HD63B03RP)では再現しなかった。


 再現性を高めるために手持ちのチップを交換しながら確認する。このうち、HD63P01M1がパワーオンでもリセットがかからない。電源をONにしないでシリアルI/Fを接続した時点でうっすらとパイロットランプのLEDが光るのであーこりゃ漏れとるな、と。ここで電源-GND間の電圧は1.91Vあった。どの程度回り込んでいるかを調べるためにR4(USB-TXD)を外して再度測定すると1.08Vだった。つまりUSB-TXD、USB-RXDの両方から電流が流れ込んでいる。完璧な対策は@cronos_svさんの絶縁USBシリアルI/Fを使うことだけど牛刀なのでここはオープンコレクターのLS07を使って電流が流れないよう分離する。

 回路は単純で、USB-TXO→SBC6303 RXDに10kΩプルアップ(SBC6303側電源)、SBC6303 TXD→USB-RDIに10kΩプルアップ(USBシリアル側電源)。SBC6303側から+5Vをもらい、シリアル入出力に直列に入れられた抵抗R4,R5をブリッジしてスルーする。
 プルアップ抵抗の値は適当で、もしなんかあったら10kΩをパラにしたら半分になるじゃない程度の考えで決めました。
2018SBCserial0

 アダプタ基板はこんな感じ。秋月D基板を半分に切ったもの。
2018SBCserial1

 アダプタ基板裏。
2018SBCSerial2

 SBC6303側のパッチ。
2018SBCserial3

 このアダプタ基板を入れた状態で本体電源ON、USBシリアルI/Fを接続、電源部分の電圧は0V。動作も問題なくパワーオンリセットが効くようになった。
 LS07の他にオープンドレインのHC07でも良さそう(後で気づいたけど千石やマルツにあった)。

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ