Eagleによるプリント基板の作成 (2009.6.13) |
今年の年頭に、「今年は少し、充電期間として、いろいろ基本的なところに手をつけていこう」と思い、まずは、ずーっとほおりだしてあったAVRにキャッチアップしてみました。これは全く簡単で、BASCOMなる優れたコンパイラのおかげで、工作においてだいぶ先が見通せるっようになりました。次は何かな?と思っていたとき、やっぱりこれからはQFPやQFNなどのチップを使えないと、まともなことができなくなるので、いつまでも「超絶技巧配線!」なんてアホなことをやっているわけにはイカン!、ちゃんとしたプリント板が作れないと話にならん・・・と思い立ち、「PC配線」の領域に手を出すことに決めました。
悪い癖で、なにか始めるときはWEBを一通り検索してみる癖がついてる(←本当は、まともな情報なんてWEB上には無いのは分かっているのですが、とっかかりの感触を得るには、有用だったりします)ので、見てみると、CADソフトで皆さんがお使いになっていて、情報もそれなりに多いのは、有名な「Eagle」であることが分かりました。ただ、それだけでは決め手にならず、実際にプリント板を安く作れることが重要です。これもいろいろ探っていくと、最近は中国にも安い供給業者もあるようですが、定番はブルガリアのOlimex社であることが分かりました。なんせ、ここはEagleをを使えば、面倒なGerberデータなどは必要なく、ボードデータ(Eagleのファイル)をそのまま受け付けてくれますから、なんの苦労もいりません。ということで、Eagle+Olimexという、定番コンビで始めることにしました。
次に考えるのは、「何をP板化するんじゃい?」ということです。一品モノの実験や製作にプリント板を作るのは時間と費用の無駄だと思っていますので、P板でなければできないモノということになります。私の場合、「多数の方に作ってもらう」ような高尚なことはやりませんので、「配布のための枚数稼ぎ」のP板は作ることはありません。やっぱり、P板でないと動作が保証できないモノを作るときに限られるようです。冒頭にも書きましたが、最近のチップはきわめて高度な機能・性能が得られるものがありますが、こいつらを使う場合、拡張基板を使っていたのでは、性能が発揮できないモノが多く、勢い、多層の基板じゃないとNG!となるようです。そういうモノが使えないとこれからの自作は面白くありません。よって、こいつらを生かすには、P板が必須になるというわけです。経験的には0.65mmピッチ以下になると、なにぶん危ないが、SOP(1.25mmピッチ)までなら手配線で十分だと思っています。
んでもって、まずは取っ掛かりは何かな?と思ったとき、真っ先に候補にあがるのがDDSの基板です。AD9952用に手配線を二回、Sさまに戴いた基板を1回使った経験もあり、チップ使用上のノウハウは十分積むことができました。あとは、「量産」ですね。DDSはHAM用には極めて有用なデバイスなので、いくらあっても「多すぎる」ことはありません。ローカルはもとより、SGとして、スイーパー用発振器等、「発振させるもの」は何でも置き換え可能、それも高性能ですから、こいつこそ、P板回路の候補に最適です。というか、もともと995xを使うために本プロジェクトを開始したようなものでしたが(笑)。 ということで、DDS基板を例にEagle-Olimex泣き笑い記録を書いておこうと思います。
さてEagleの使い方ですが、上記のロゴにリンクが張ってあるCadSoft社からフリー版をダウンロードすることからはじめます。実際には↓のサイトがEagle入門のデファクトになっているようです。こちらで、一通りの使い方はマスターできるはずです。ですから、この記事では、基本的な使い方に関する記述はしないことにします。
ただ、ちょっと踏み込むと「あれ、こんなことができればいいなぁ」と思うことがあります。そうしたときのために、こちらのサイトの中にある無償のチュートリアルも並行して読んでおくことをお勧めいたします。だいたい、Eagleを始めた初心者は井上さんのサイトを参照するので、決まって「分からないこと=サイトに書いてないこと」は皆さん共通のようです(笑)。なにか分からなければ、チュートリアルを参照すると解決することが多いようです。このあたりは、こちらのWebmasterに大変お世話になりました。
まずはEagleを開いて、井上さんのサイトを参照しながら回路図とボード図を行ったりきたりしていると、自然に全体像がつかめてくると思います。ここで重要なのは、漫然と例題にあるような簡単な回路をパターン化していくと「分かることも簡単なことばかり」になってしまいます。私の場合、ちょっと無茶ですが、はじめから0.5mmピッチのTQFPチップを使った基板を作ることにチャレンジました。ですから、途中、わからないことだらけでギブアップしそうでしたが、時間をかけて調べたり、いろいろな方にメールで聞いたりしてなんとか続けた結果、漫然とCADをいじっているより得られたもの(=小ネタですが(笑))は多かったように思います。そういった小ネタをメモしておいて、次に基板を作るときの備忘録として残しておきたいと思います。
<小ネタ集> 【2009.6.21】
●オートルーターはアナログ回路のパターン設計にはまったく役に立たちません。配置配線ができるかチェックする程度の利用に限定されると思います。以下の図はだいぶ以前のバージョンの配置で、「オートルートをかけたところ、完全配線までいかず、98%でギブアップしてしまいました」という結果です。ずいぶんと長いあいだ考え込んでいたが、なれのはてがギヴアップとは嘆かわしいです。部品配置は最終版とほとんど同じなのに人間様が手動で配線すると苦も無く配置配線できるのに、オートルータではできませんでした。しかし、仮にオートルータが「配線できた」と言ってきても、アナログ回路的には「ハチャメチャ」です。このとおりパターン化する気になる方はアナログ回路をいじることは止めたほうがいいと思います。えっ?「DDSはデジタル回路じゃないか!」ですか?・・・・・・・うーーーーーん(笑)!
2層でオートルートさせてみた
茶のパターンは上面、青のパターンは裏面
●グリッドはmm系とインチ系をうまく使い分けるようにします。QFPのLSIのピッチは0.5mmでmmのグリッドにぴったり載るのですがが、他のICはインチだったりするとパターンがずれるので、配置するときにグリッドを切り替えます。下の図の左上のドットでできた四角部分をクリックしてインチ/mil/mmを切り替えます。
●ドリル径をOlimexにあわせる必要があります。Olimex標準でないと追加料金が発生しますのでご注意を!以下をコマンドラインで実行すると ドリルメニューのプルダウンメニューがOlimex標準に変化します。
grid mm
set drill_menu 0.7 0.9 1.0 1.1 1.3 1.5 2.1 3.3
をコマンドラインで実行すると、
←コマンドライン
のように、ドリル径がOlimex標準になります。Drillのプルダウンメニューで確認してください。Viaホールの穴等はこれでOlimex標準になります。
ただし、ライブラリ部品の穴はライブラリコンバータを使って変換しておかないといけないですね。ここにあるULP(user Language Program)のlibconv.ulpをダウンロードし、EAGLEのULPディレクトリにコピーします。下図は変換したいライブラリのパッケージに対して、ULP(メニュー欄真ん中あたりのボタン)を選ぶと、実行させたいULPが表示されるので、これを指示に従って実行させます。
最後にボード図のコマンドラインで
run drillcfg
とやって、穴の種類のチェックをしておきます。
●デザインルールは10milが標準ですが、0.5mmピッチのICが有る場合、8milでないとDRC(Design Rule Checker)に引っかかって動かないようです。特に、ICのパッド間隔が0.2mm、パッド幅が0.3mmといった標準ライブラリなんか使おうものなら、8milでもアウトになります。8milは0.2032mmだから当然です。ここで7milにデザインルールを設定すれば、DRCエラーは無くなりますが、今度はOlimexの受け入れ基準である8milを満たさないので受け付けてくれません。
黒い四角がエラーの場所を示す
赤い極細線がClearanceエラーで、ピン間0.2mmでは10milのDRCに引っかかる
Minimum widthを10miから8milに変更
●上記のゴタゴタを避けるために、仕方なく標準ライブラリなるものをカスタマイズしないといけないのです。0.5mmピッチのQFPのICの標準ライブラリを変更することにしました。下図左は標準ライブラリのQFP-48です。このパッケージのパッド部分のプロパティを選び、Smd Sizeを変えます。
ライブラリというのはただで供給されてるものだからして、うまくいかなくても(エラーが出ても)しかたが無いものとあきらめるのがこの世界の常識なのだそうです。いろいろな方から「そんなの当たり前だろ」と言われちまいました。ライブラリは自分で作るのが基本らしいです。
Smd Size を1.2mm(長さ)×0.3mm(幅)から 1.3mm×0.25mmに変更する
●次に、ICの裏のEXPパッド(GNDパッド)の処理について考えて見ます。今回はこんな方法で逃げてみました。QFPパッケージの裏のグランドパッドのSmd Sizeを0×0mmにして消滅させます。これは基板に2mmの大Via(=GND接続)を打つためです。このVianのtSTOPを使ってGNDを露出させることで、GNDパッドを形成する方法を取りました。
左図はICのEXPパッドのプロパティ
右図でQFPの中央に直径2mmの大Viaを打ちそのtSTOP(四角の斜線部分)を利用してGND面を露出させる
●部品を基板にラフに配置したら、ポリゴンを設定してベタアースを作ったほうが操作性がよくなります。アースラインが各部品で接続されていると、信号線の配置見通しが悪く、混乱しやすいのです。ポリゴンの名前をGNDに変えて、一回Ratsnestコマンドでベタアースを作ると、アース側の接続線が全部切れるので、非常に見やすくなります。
●ドリル径とかパターン幅とかをデフォルト値ではなく任意に変えたい場合、スパナのマーク(Change)→例えばWidth→最下行に「・・・」があるのでそこを選ぶと、下図のように任意の値が記入でき、相当のプルダウンメニューに表示されて使えるようになります。例えば、極端な例ですが、10mm幅のパターンが必要になったら、デフォルトには無いのでこいつで設定します。
●tSTOP領域とシルク印刷領域の干渉でエラーが出ることがあります。ライブラリの穴径を標準の0.8mmからOlimex用の0.9mmに変更すると、パッドも大きくなりtSTOP領域も大きくなって、シルク印刷と干渉して、回路全体では大量のエラーが出ることがあります。この場合、ライブラリのシルク印刷を編集して、tSTOP領域に接触しないようにしないとNGなようです。こんなところにも標準ライブラリの落とし穴があります。
抵抗のシルク印刷(リード部分)が緑のパッド(Via)のtSTOPと干渉してエラーになる
シルク印刷で抵抗のリード部分をライブラリ編集で削除する
●ICの電源端子が多数あり、そのグループごとにまとめてバイパスコンデンサを配置しようとすると、なかなかうまくルートできなくて困ることがあります。バイパスコンデンサの位置を変えながら、グルーピングされているピンを希望の電源ラインにルートできる場所を探すことです。下図の「Route」の文字のあるパターンをルートしてみてください。ICのAVCCは3本まとめてこのバイパスコンデンサのホットエンドから接続したいと思っても、なかなかうまいルートをしてくれません。赤くハイライトされたパターンの動きに応じてと黄色い「部品接続を示す線」が接続先を求めて「うろうろ」します。これはやってみるとすぐに分かります。電源ラインをどこかAVCCピンに接続し、残りのピンの黄色い線も同じように「うろうろ」させながらルートさせて良さそうなポイントにまとめて接続します。
●ルートコマンドではなくwireコマンドで配線する方法を覚えておくと便利なことがあります。これは、回路図上は一本であっても別のコースを通って、おなじ電位のパターンに接続したい場合があります。このときはRouteコマンドではなくWireコマンドを用います。例えば、下図で、すでに引かれているGND線に、WireコマンドでA点からNEW LINEを引き始めます。まだこの時点ではNEW LINEとGNDはつながっていません。そこで、Nameコマンドを用いてNEW LINEの名前をGNDに変えてやれば、A点で接続できます。あとはRouteコマンドで、同じGND線上のつなぎたい場所にNEW LINEの先端をもって行って接続すればOKです。これは、EAGLEの使い方を井上さんのHPで学んだ方に共通のFAQなんだそうです(笑)。
●普通の部品のカスタマイズですが、 ライブラリの諸パラメータや形状が気に食わなければ、配置配線が完了したあとでも変更可能です。
●数本配置配線するごとにDRCをかけてみると有効です。配置配線が終盤になるまでDRCをかけず、かけたらかけたで大量のエラーが出ると本当にめげてしまいます。最初は、ライブラリにもエラーが多く、かなり配置したあとで、大量のDRCエラーに見舞われ「泣きそう」になったことも何度かありました。
●アナロググラウンドとデジタルグラウンドの分離と一点接続ですが、これがCADでは難しいです。やり方はあるのでしょうが、調べるのが面倒だったので、今回のAD995xではアナロググラウンドをメインに行い、デジタルグラウンドは太い幅のパターンで代用し、完全に分離して描きました。接続は裏面ジャンパー線です。あまり格好のいい方法ではないですが、一応ちゃんと動いています。
以上、気がついた順に雑多なことを書きましたが、作った基板は下の図のようです。実は、第1作とはいえ結構恥ずかしいパターンです。もっとも、考えてみればプリント基板なんて私にとってこれが処女作に近いですから、仕方ないと思っています。この際ですから恥を忍んで書き出すと、
@DDSのインターフェース信号端子をパッドではなくて、ちゃんと端子(ピンヘッダー等)にしておけばよかった。
A電源のアース引き出し端子を設けていなかった。スルーホールのViaからアースを取っているのはちょっと不細工。同じくクロック入力のアース側もViaが遠い位置にある。
B極めつけはパターン変更をするのが面倒くさくなり(終盤に近づくといじりたくなくなる)、出力トランスのDCカットを二次側で行ったこと。普通は一次側でやるのでしょうけど。
C後で考えるとバイパスコンデンサの位置が、必ずしも良いとはいなかった。
DスルーホールのViaをもっとたくさん打っておけばよかった。
等々ですが、これは、第二弾の発注のときにでも直しておこうと思います。
茶色の点線は表面のポリゴン、青は裏面のポリゴン
この状態でRatsnestコマンドを実行するとベタアースが掛かる
ベタアースにするとパターン面が見えずらいのでこのままにしておく
さて、ここまでくると、Olimexに発注してもいいと思うようになります。そこで、最後のチェックをやっておく必要があります。発注時の注意はこちらのサイトに詳しく記述されていますので、一点一点確認をしておくとよいでしょう。「最終確認」の部分が大変参考になります。
<Olimexからの基板と実装、特性> 【2009.6.27】
さて、なんとかエラーも無くなったので、Olimexに発注することにしました。必要なファイルを送ると、ほどなく、Purchase Order Formが送られてきます。これに記入してFAXすると、正式にオーダーしたことになります。POフォームにはクレジットカードの番号記入欄があり、この関係でFAXを要求しているのでしょう。
今回はデザインルールを8milのまま送ったので、15日もかかるんかなぁ?と思っていたら、意外に早く1Wで完了したと連絡が来ました。急ぐものでもないので、10milで特急製作する必要も無かったようです。
これが送られてきた基板です。45*75mmで、30EURの100*160mmの両面基板から4枚取ることができました。基板の裁断面はヤスリをかけてもらったので、すべすべです。パターン露出面は黄色(金色よりくすんでいる)ですが、黄銅でしょうか?OlimexのFAQにはCopperとしかかいてありませんでしたが。穴の精度はまぁまぁで、スルーホールのできもいいと感じました。シルク印刷は幅が8mil以上でないと印刷されませんので、印刷は必要最小限にしました。、
上図は1号機の部品実装の様子です。4隅のビスはガード用につけてありますが、殆ど不要でした。ちょっと見えにくいのですが、バイパスコンデンサは0.1μF//0.01μF//1000pPの三段がさねで実装しています。これを横平面に展開するととても面積を食ってパターン化が難しいです。こような「アマチュア的」実装ですが、趣味で楽しむには十分でしょう。
上図はまずはAD9952をマウントしたところです。0.5mmピッチのICなんて、最初から1ピンごとに半田付けするなんて不可能です。一辺が12ピンですが、これを一気に半田でてんこ盛りにします。フラックスを塗って、たっぷり半田が載る様につけます。ここでは躊躇せずにどーんと半田を溶かして盛大に盛るのが「こつ」です。
次に、盛った半田を半田吸い取り線を押し当てて再加熱して除去します。驚くほどきれいに除去できるので、気持ちがいいですね。No2機ではこの作業を3回やりましたが、パターンはびくともしませんでした。結構まともなエッチング処理がされていると感心です。自作だと、0.5mmピッチ(線幅0.25mm)ではこんなことをすると、あっという間にはがれてしまうので、さすがに外注の専門業者のメリットを感じました。
これは裏面のAD9952のパッドを基板面からみたところです。すでに48ピンは半田付けしてあります。裏をみると、スルーホールのViaとほとんど隙間のない様子が分かります。これなら、半田の挿入も簡単にいきそうです。
AD9952のパッドに半田ごて(34W低リーク形)を突き当てて、同時にスルーホールの壁にも熱を加えます。この状態で半田を流し込んで、一件落着です。きれいに半田がついています。半田の中央がちょっと凹んでいるのは、AD9952の裏面パッドに半田が流れ込んだためでしょう。基板表にはレジストがありますから、ほかのピンに接着される確率は低いと思います。事実、4台ともうまくいきました。
これは、4台が完成して、動作を確認したので、記念に「4台揃い踏み」状態を写真に取っておきました。こうやってみると、壮観ですね。一台は45mm×75mmしかないので、大きさはたいしたことはないのですが、部品が載るとそれらしく見えます(笑)。
SPAN:5kHz RBW:30Hz
さて、お決まりの近傍C/Nです。クロック周波数は、例の419.4304MHzです。TRXの50MHz用に95MHzを発振したところです。信号源にフェーズノイズ特性のあまりよくないHP8657を使ったので、すこーしノイズが残っていますが、十分にきれいです。さらにはXOを使えば、まったく問題なくなるでしょう。もっとも、FT-9000でもクロック源はPLL化されたVCOですからたいしたことはありません。XOでやれば、もっと良い特性が得られます。
SPAN:100MHz RBW100kHz
スペクトラム特性です。これも20MHz、40MHz離れにスプリアスがありますが、BPFで十分除去できるのは実証済みです。
このように、Eagle-Olimexのコンビで(趣味的には)実用に耐えるプリント基板を作ることができました。とにかく、自分でプリント基板を作るのは大嫌いなので(大昔に何度かやりましたが、あまりきれいにできずにすぐにほおりだしました。もしも、いままで続けていれば、ここまで嫌うことは無かったかも(笑)。)、リーズナブルな値段で、きれいなスルーホールや、超面倒くさい穴あけまでやってくれるOlimexには感謝感激です。
最後に、ここで挙げた要改善項目を反映したパターンを示しておきます。比較してもどこが変わったのかわかりずらいかもしれません。実際はベタアース面をみると、アナログアースパターンがずいぶんきれいになったと思っています。これで、すこし特性向上すればいいのですが。今から考えると、時代遅れの3216タイプのチップコンデンサ(大昔、○月にあったものを大量在庫で持っているので、やむ終えず使用)やリードタイプの1/6W抵抗など、およそ、まともなP板には使わないようなパーツを使っています。1608タイプなら配置は楽ですが、そうなると半田付けが大変です。ということで、2012くらいが手でつける限界かもしれません。
茶色の点線は表面のポリゴン、青は裏面のポリゴン
この状態でRatsnestコマンドを実行するとベタアースが掛かる
ベタアースにするとパターン面が見えずらいのでこのままにしておく
下は回路図です。新たに差動出力も出してみました。使うことがあるかどうか分かりませんが、もし不要なら、実装しなければいいわけですから、パターンがあっても無駄にはならないでしょう。
バッファのTRが2SC1815になってるが、これは2SC1906を使っている
アナログアースとデジタルアースの接続は回路に現れていない
次にP板を作るのは、足のたくさん生えたげじげじのFPGA搭載基板でしょうか??