XilinxCPLDボードの製作
まず繋がれば動くレベルの自作から。
XilinxのCPLDをはじめようでは、製作の勝手がわからず、実際に実機を触ったこともなかったのでXC9572の評価ボードを購入しました。購入した評価ボードをムムッと眺めてみると、見たこともないような部品は見当たらないし、回路図もそれほど難しい回路というわけでもありません。これなら、自分でも製作できるじゃないか?・・・ということで、早速、秋葉原の部品を入手し、自作することにしました。
実験そのものはXC9572実験ボードの製作で終了したのですが、プリント基板作成の練習としてXC95108版の実機を製作して、ストップウォッチを移植しました。
CPLDに書き込みするためにはダウンロードケーブルが必要です。XilinxのCPLD/FPGAは、JTAGポートに接続するダウンロードケーブルで書き込むことができます。
JTAGとはバウンダリスキャンの為のポートで、最近のLSIにはよく搭載しているものです。何故ダウンロードにJTAGを用いるかというと、一箇所から複数のデバイスにダウンロードできたり、テストピンを削減等のメリットがあるからです。Xilinx純正のダウンロードケーブルは、直販か、有料ツールなどに付属されてくるそうですが、電子工作として使う分には、わざわざ高価なダウンロードケーブルを買う必要はありませんので、今回は自作します。 ただ、製作するCPLDボードが動かなかった場合、単にCPLDボードにバグがあるのか、ダウンロードケーブルの問題なのか切り分けできないので、今回はあえてHuMANDATA製のキットを購入しました。
↓Xilinxダウンロードケーブル自作キット HuMANDATA ¥6500
このキットの基盤はALTERAのCPLD/FPGA用と共通のようです。最新版はココにあります。最新版の方がカッコいいですね。
まず、CPLD入門セットXC-EDUから必要なところを真似することにします・・・といっても、中身は至ってシンプルで、アノードコモンの7セグメントLEDのコモン端子に5Vに接続して、各セグメント端子は820Ωの抵抗を挟んでCPLDに繋いだだけです。発信器EXO3はPin1から16MHzが出力され、Pin2は5・6・7番ピンの設定で8段階に分周されます。設定は普通のジャンパで十分ですけど、今回は真似なのでロータリスイッチを使いました。電源は7805をセオリー通りに入れて9VのACアダプタから5Vを作っています。JTAG端子はJTAG用のピンに直接繋ぎます。コレで完成。
↓XC9572のテストボード回路図 PDF版はこちら
D2CADで描きました。 回路としてはこの程度。
↓購入した材料たち
集めた材料: CPLD Xilinx XC9572-PC44-15 44PinのPLCCソケット CMOS水晶発信器 EXO3 16MHz ロータリスイッチ ベックマン抵抗 898-3-R820×4 アノードコモンの7セグメントLED×4 タクトスイッチ×4 ユニバーサル基板(片面) 3端子レギュレータ 7805 ダイオード 10E1 電解コンデンサ 25V100μF×2 積層セラミックコンデンサ0.1μF(104) 抵抗 1/4W 10kΩ×3 端子用のピン少々 ウレタン線少々
ただつなぐだけだから私でも簡単につくれるはず…と思いきや、ピン数が多いので配線が大変でした(涙)。まだ勝手がわからないというのに・・・まぁ、これも経験ですか?
↓表は意外とすっきり
↓裏は大変なことになっています
横から見ると大変なことになっているところがよくわかります。ウレタン線の山。それでも電源周りとスイッチ・LED・抵抗は余った抵抗の足でつけたのでまだまし。でもこれでは繋がっているか怪しいものです。
↓横から見る 盛り上がり具合が生け花状態
はぁ…もっと腕を上げなくては…。
CPLD入門セットXC-EDUと同じセグメントが光るように結線しているので、XilinxのCPLDをはじめようで作ったストップウォッチ回路がそのまま利用できます。
↓ストップウォッチ回路が動作中
・・・ちゃんと動いています。
はじめて自分で全部組み立てた回路が動く・・・感動、ジーンときますね。
ストップウォッチのサンプル
stopwatch110.lzh
↓並べると…
記念にXC9572実験ボードとCPLD入門セットXC-EDUを並べて動作させて見ました。
まったく同じ動作をしますね。
真似したんだから同じ動作して当たり前ですが。かなり、勉強になりました・・・半田付けとか。
なにはともあれ、これでCPLDの入門は果たしたということで、これから色々なところにCPLDを利用していこうと思います。
最近では、電子工作でもSOPやQFPなどのフラットなパッケージの部品を使うことが多くなってきました。フラットなパッケージのICの結線には、ピンに細いウレタン線等を一本ずつ繋げるようなやり方がありまが、試作するならともかく、同じものを何枚か作ろうとすると大変面倒です。同じものを作るなら、感光基板を使ってプリント基板を作ったほうが複製しやすいので便利です。
そういうわけでプリント基板を作る機会があれば積極的に挑戦しようとおもっていました。今回は別に複製する必要はないのですが、前回ヨナベして作成したXC9572実験ボードのプリント基板版を作成して、PCB設計の練習を行います。
↓今回使うXC95108-PC84
ただし、前回と同じものを作るのも面白味に欠けるので、次の改良を行いました。
改良点 CPLDをXC9572-PC44→XC95108-PC84に強化< アノードコモン7セグメントLEDを使わない時の為にコモン端子をジャンパ切り替えにする。 ピン数増加により、クロックピン3本中1本を除いてすべてピンヘッダで外部に接続可能。
・・・まぁ、ワンチップマイコンとのメモリインターフェースぐらいにはなるのでないでしょうか?使うかどうかは別として。
↓XC95108のテストボード回路図 PDF版はこちら
XC9572実験ボードそっくりというより、コピーそのままです。使用するPinぐらいしか違いはありません。
フリーで使えるPCB-CAD CadSoftのEAGLE LightEditionのBoardを利用しました。Scematicは使いにくいし、ライブラリ作成が結構面倒なので今回は使いませんでした。ライブラリに大抵の部品があるのでBoardだけでも十分使えます。
部品は一度印刷したものの上に実際の部品を置いてみて、ちゃんと収まるかどうか、ピンの位置は正しいかどうか確認しました。
XC95198版 ストップウォッチのサンプル
stopwatch110_108.lzh
中身: stopwatch.vhd ストップウォッチのRTL本体 decode7seg.vhd 7セグメントデコーダモジュール stopwatch.ucf ストップウォッチの制約ファイル XC95108_11.brd EAGLEディレクトリの中のProjectsに適当なディレクトリを作成してその下に置くと開けます。
↓作成したPCBデータ
今回の製作はアートワーク6時間、エッチング2時間、組み立て1時間、調整3時間です。スピード仕上げ。アートワークで目が痛い・・・。
これで、サンハヤトのポジ感光基板10K(75×100)に丁度収まります。PLCCソケットの上の密度が高いです。はてさて、どうなるか。
↓ランドと配線だけ表示
ピンヘッダの所で配線がピンの周りをうねうねしています。それでも大丈夫。スイッチの黄色い線は導通している端子です。
↓GNDプレーンにして表示
版下を印刷するため、GNDプレーンにします。Ratsnestコマンドを実行して、NameでGNDと同じ名前にするとGNDプレーンになります。
DRC(Design RuleCheck)でピン間やピン-ランド間を少し広めに設定しました。印刷する際は黄色い線の表示を消します。
基板データを感光基板作成用のフィルムに印刷します。
プリンタ用紙にフィルムを貼り付けて一緒に印刷しました。・・・ちょっとフィルムが熱で伸びます。
↓プリント基板の版下
このフィルムを感光基盤に張って、現像します。
↓現像後
銅版の修正するのはここが最後なので慎重に探します。欠けていたらレジストペンで塗りつぶし、あまってたらカッターで削ります。 出来上がったら、エッチングです。
↓エッチングした後
エッチングのときは密集しているところの銅がしつこく残っていて、他の配線まで溶けて消えていないか心配でした。でも、全然大丈夫。感光剤の残っているところは結構丈夫なようです。
キラキラした銅面をみるとちょっとうれしくなります、穴あけやハンダ付けの後になるとトテツモナク汚くなってがっかりするのですが・・・。 とりあえず、フラックスを塗って銅面を保護します。密集したところの結線をテスタで導通チェックして確認しました。丁寧にやれば0.65mmピッチのQFPを実装する基板を作っても大丈夫だそうなので、これくらいは十分余裕があります。
↓ドリルで穴を開けて、部品をハンダ付け
この辺まで、サクサク進めました。・・・今までの製作の中で一番すんなりいったのでは・・・。
↓裏はこれで終了
うーん、指紋と手の跡でべたべたしています。エッチングしたての綺麗な銅面は見る影も・・・。チップ抵抗の採用が今回の小型化のポイント。結構小さくなりますが、電流は大丈夫かなぁ?
↓ストップウオッチ実行中
動作しています。
ストップウォッチ回路で動作を確認します。RTLはそのまま、UCFファイルは作り直しています。
黒ボタンがスタートストップ、赤がリセットです。結構電流が流れるので、3端子レギュレータが熱くなりますが、まぁ触れられない程でもないので、気にしていません。
ちなみに、動作時は12VのACアダプタから130mA流れていました。CPLDの消費電力はすごいです。ところがLEDのコモンを見てみると、わずか2mA・・・コレで光るものなのだろうか?
・・・。
・・・・・・。
・・・・・・・・・あれ?
基板データがOKということは今回ハプニングなし?少し寂しいかも(笑)。