2018年10月20日土曜日

KiCadで基板作成: 作図と基板製造の依頼

前記事でEeschemaから出力したネットリストを読み込み、基板設計に進みます。KiCad Step by Step Tutorial日本語訳、Pcbnewリファレンスマニュアル日本語版KiCad実習テキスト「KiCad Basics」を主に参考にしました。

基板エディタPcbnew

図面設定・デザインルールの設定

  • File ⇒ Page Settingsで用紙サイズ、図面タイトルをセット
  • 数値の単位は Prefernces ⇒ Generalで変更できますが、図ではミリメートルです。
  • デザインルールエディタ Design Rules ⇒ Design Rules でデフォルト設定。Net Classes EditorとGlobal Deisgn Rulesタブのそれぞれにセットします。中華基板製造各社のデザインルールを参考にしました。

Net Classes デフォルト値


Net Classesを追加・修正


Global Design Rules デフォルト値


Global Design Rulesを追加・修正

はんだマスク


  • Dimensions ⇒ Pads Mask Clearance



ネットリストの読み込み

  • Tools ⇒ Netlist ⇒ Read Current Netlist としてネットリストを読み込みます。すると、部品を一カ所にまとまって配置されてしまうので、これを分散して配置させる操作をします。

Pcbnewでネットリストを読み込んだところ

ツールバー Mode footprint: manual and automatic movement and placementとして、右クリック Global Spread and Place ⇒ Spread All Footprints

マニュアルモードに変更

部品が分散して配置されました


ラッツネストが非表示になったら左側のアイコンをクリック


レイヤ

F.Cu 部品面(Front) 配線パターン
B.Cu はんだ面(Back) 配線パターン
F.Adhes 部品面 SMD等仮止め用ボンド塗布工程用
B.Adhes はんだ面 SMD等仮止め用ボンド塗布工程用
F.Paste 部品面 はんだペースト(Pcbnewが自動生成)
B.Paste はんだ面 はんだペースト(Pcbnewが自動生成)
F.SilkS 部品面 シルクス
B.SilkS はんだ面 シルク
F.Mask 部品面 はんだマスク
B.Mask はんだ面 はんだマスク
Dwgs.User 任意目的に使用できる汎用レイヤ 図Drawings
Cmts.User 任意目的に使用できる汎用レイヤ コメントComments
Eco1.User 任意目的に使用できる汎用レイヤ 設計変更指示 Engineering Change Order
Eco2.User 任意目的に使用できる汎用レイヤ 設計変更指示 Engineering Change Order
Edge.Cuts 基板外形
Margin 基板端部からパターンや部品までの所要の余白を示す
F.CrtYd 部品面 部品が物理的に占有する領域(Courtyard)を示す
B.CrtYd はんだ面 部品が物理的に占有する領域(Courtyard)を示す
F.Fab 部品面 製造用補足情報(Fabrication, 基板には表示されない)
B.Fab はんだ面 製造用補足情報(Fabrication, 基板には表示されない)


原点座標の設定

グリッドの原点、ドリルファイル、実装ファイルの原点を同じポイントに合わせます。原点の場所はどこでも良いみたいなので、基板の領域外で左下に原点を定めることにします。画面右側ツールバーの2つのアイコンで原点座標を設定します。Place the origin point for drill and place files, Set the origin point for the grid。


使い方

  • 部品を移動中にもラッツネストを表示させるには、左ツールバーHide footprint ratsnestをアクティブにします。

ラッツネストを表示


  • 距離の測定。ウインドウ右下の相対座標値は、スペースキーでゼロにリセットできる。距離を測るのに便利です。

相対座標値はスペースキーでゼロにリセット


  • 層数の変更、基板厚の変更 Design Rules ⇒ Layer Setup

    4層に変更


    • 部品面またははんだ面のコンポーネントを非表示にするには、画面右側Layers ManagerのRenderタブで、Footprints Front/Footprint Backのチェックを外す。配線の表示/非表示は、Layerタブで指定します。部品面だけ、半田面だけの作業に注力したいとき、他のレイヤの表示を一括非表示にできる仕組みがあれば便利だと思うんですが、あいにく無いみたいです。

    • 部品を部品面からはんだ面に移動するには、右クリックメニュー Flip


    • 配線を引こうとして、どうやっても確定できないときは、ERCに引っかかっている可能性があります。(画面左下にエラーメッセージが出ます)そういうときは配線の幅を変えて再チャレンジ。配線の幅を変えるには、右クリックメニュー Select Track Widthまたは画面左上のツールバーであらかじめ指定します。配線幅の選択候補は、Global Design RulesのCustom Track Widthに登録したものしか選べません。プロパティなどで任意に数値に変更できる手法は探した限り見つかりませんでした。
    • 既存の配線の幅を変更するにはSelect Track Widthで変更し、当該の配線にカーソルを合わせ右クリックメニューかからChange Track WidthあるいはChange Segment Widthとします。
    • ビアを打つには、配線中に右クリックメニューでPlace Through Via、またはVキー。GNDにビアを打つときは、GNDから配線を延ばしながらVキーを押します。後からサイズ変更する方法は配線と同じです。ビアは配線の一部なので単独で打つことはできません。
    • 配線削除はDELキー、配線のセグメント削除はBSキーです。
    • ベタグラウンドを作成するには、まずベタグラウンド領域の設定を行います。右ツールバーAdd filled zonesを選び、領域設定の1カ所目をクリックすると設定画面が出るのでレイヤやネット名などを指定した上で領域設定を終えます。領域設定が終わったら、ショートカットB で塗りつぶし。Ctrl + Bで塗りつぶし解除です。何度でも繰り返せます。

    さらにベタグラウンドにしたくない領域キープアウトエリアを指定できます。右ツールバーAdd keepout areasです。が、、、何故か期待通りの動きをせずベタ設定ができてしまいます。

    そこで、ベタグラウンドの中抜きエリアを追加するには、作成済みのベタグラウンドの輪郭線で右クリックメニューからZones ⇒ Add Cutout Areaとし、中抜き領域を設定後にいったんCtrl + Bで塗りつぶし解除を行ったのち、ショートカットB で塗りつぶしてください。



    基板の外形と取付穴

    • グリッドを1mmなど適切に設定します
    • Edge.Cutsレイヤに切り替えます
    • 右ツールバー Add graphic line or polygonアイコンをクリックし基板外形を描画します。基板角を面取りしたいときは、DXFファイルのインポート機能を使うしか無さそうです。基板の外形は、移動禁止にはできないっぽいです、残念。
    • 基板サイズの寸法線を参考に入れます。Dwgs.Userレイヤに、画面右側のツールバーAdd dimensionアイコンを使って書き込みます。
    • 基板端は配線できないのキープアウトエリアとします。FusionやELECROWでは0.3mmとなっていますから、0.4mm迄を配線・ビア・塗りつぶし禁止にセットします。導体レイヤで、画面右側ツールバーAdd keepout aresをクリックし、No tracks, No vias, No copper pourを部品面、はんだ面それぞれについて指定します。

    • 配線穴は、フットプリント(Mounting_Holesライブラリ)を追加することで実現します。ただしPcbnewでフットプリントを追加すると、ネットリストの再読み込み時に回路図には無い部品として削除されてしまうため、当該フットプリントのプロパティでMove and PlaceオプションをLock footprintにしておきます。また、レファレンス番号はアノテーションされないので手動で指定します。

    基板外形をDXFファイルで取り込む


    • タカチのPFケースに内蔵する基板を設計することにします。ケースの図面に推奨基板形状が記載されています。これをアレンジしてオリジナルの基板をつくります。タカチのサイトからダウンロードしたCADファイルをDraftSightでアレンジしてDXF形式で保存します。基板のカドを面取りするならここで済ませましょう。(例:R0.5)
    • KiCadの配線との相対位置を合わせるため、相互の基準点を決めておきます。まずは、基板外形図で基準点を原点にセットし、DXFファイルで保存します。ファイル形式はR2013 ASCII 図面(*.dxf)としてみました。

    タカチ ネットワークケースカタログより

    ネットワークケースの推奨基板形状

    オリジナル基板の形状


    • KiCadでインポート先の絶対座標をカーソルで確認しておきます。
    • DXFファイルをインポートします。フォルダ名等に日本語が含まれているとダメです。File ⇒ Import ⇒ DXF File
    • オプションでUser defined positionとし、インポート先の絶対座標をセット。基板外形なのでLayerはEdge.Cutsにします。



    DXFファイルをインポートできました


    フットプリントの自動配置

    • 基板の外形を作成
    • 位置を固定すべきコンポーネントを手作業で配置しロックする。フットプリントモードでフットプリントを右クリックしてLock Footprint、またはフットプリントのプロパティでLock Footprintする
    • 大きなフットプリントなど重要なコンポーネントも基板の特定の場所に配置しておく
    • 自動配置する 右クリックメニュー Global Spread and Place ⇒ Antomatically Place All Footprints
    • 次の例は、スイッチとコネクタをロックして行いました。わかりにくいですが、IC・抵抗・コンデンサの位置が変わっています。

    フットプリントの自動配置前


    フットプリントの自動配置後


    押しのけ配線

    • 配線を引くときに限り、支障となる他の配線を押しのけることができます。
    • OpenGLモードに設定 View ⇒ Switch Canvas to OpenGL
    • 配線アイコンAdd tracks and viasにて右クリック ⇒ Routing Options ⇒ Shoveモード

    押しのけ配線作業中



    KiCad内蔵オートルータ

    • 画面上のツールバーで Mode track: autoroutingとしておき、右クリックメニューでAutoroute ⇒ Automatically Route All Footprints とすると、グリッド設定に沿って自動配線してくれます。
    • 正直な感想としてもうひとがんばり!というところで、リファレンスマニュアルですら使い方が書かれていませ。その代わり、外部のオートルータとのインターフェースが備わっています。詳しくは次項で。

    オートルータ freerouting

    ソフトウエアの準備

    • Java Runtime Environmentをインストール
    • FreeRouting.jarをダウンロードしfreeroute.jarにリネームしたものをC:\Program Files\KiCad\binに置きます。
    • PcbnewツールバーでFast access to the FreeROUTE external advanced routerをクリックし、Export/Import to/from FreeRouteダイアログにExport a Specctra Design and Launch FreeRouteの文字があることを確認します。(参考Web

    Fast access to the FreeROUTE external advanced routerメニューを起動


    Export a Specctra Design and Launch FreeRouteが現れる

    使い方

    • オートルータはあくまでも補助ツール。面倒な細かな配線をやらせるべきで、すべてをお任せにはできないとされています。なので大事な配線は予め自分で配線しておきます。また、freeroutingは日本語非対応です。部品名などに日本語を含めないよう注意します。
    • 未アノテーションの部品があると怒られるので適宜修正します。
    • PcbnewツールバーからFast access to the FreeROUTE external advanced router ⇒ Export a Specctra Design and Launch FreeRouteにてDSNファイルをエクスポートすると freerouting が自動的に起動します。

    sesファイルをインポート


    オートルータ前


    オートルータ作業中


    グローバルDRCチェックを行う

    • 配線忘れやDRC違反が残っていないか、Tools ⇒ DRC で確認しましょう。
    • 一番大事なのは、エラーメッセージの Unconnected タブの内容です。次いでProblems/Markersをぼちぼちと潰して行きましょう。
    • キープアウトエリアに配線が入っているよ、というならどかせば良いですが、困ったのはPad near pad エラーです。QFN32ピンのパッド間が近接しているというもの。デザインルールでパッド間クリアランスの数値を変えればエラー除去できますが、そのままでは基板製造会社のデザインルールを割り込んでしまいます。仕方ないので、フットプリントを調整して回避することにしました。


    ところがフットプリントをアップデートしたのに、Pcbnewに反映されません。Pcbnewでフットプリントのプロパティにて、Change Footprint(s)でApplyしたところあっさりアップデートされました。ここでQFNのパッドの形をRectangularからOvalに変更するだけでDRCをパスできるようになりました。




    ガーバーファイルの作成

    2020.10.18 KiCad5用にアップデートしました

    普段使いにしているJLCPCBに掲載された手順を参考にしました。
    • Pcbnewにて不要な配線やビアを削除します 編集(E) ⇒ 配線とビアをクリーンアップ(l)

    • グローバルDRCチェックをしておきます 検査(I) ⇒ デザイン ルール チェッカー(D)


    • ガーバーファイルを出力します。ファイル(F) ⇒ プロット(l)
    出力フォーマット: ガーバー
    出力ディレクトリー: (絶対パスで指定)
    含まれるレイヤー:
     F.Cu, In1.Cu(4層の場合), In2.Cu(4層の場合), B.Cu, F.SilkS, B.SilkS, F.Mask, B.Mask, Edge.Cuts にチェック

    全般オプション:
     フットプリントの定数をプロット 設計によりチェックあり or なし
     フットプリントのリファレンスをプロット チェックあり(部品番号を表示)
     基板外形レイヤーのデータを他のレイヤーから除外 チェックあり
     ビアのテンティングを禁止 チェックなし(ビアにレジストあり)
     原点に補助座標を使用 チェックなし
     プロット前にゾーンの塗り潰しをチェック チェックあり

    ガーバーオプション
     Protelの拡張子を使用 チェックなし
     シルクをレジストで抜く チェックなし
     座標フォーマット 4.6, 単位 mm

    出力メッセージ
     すべてのオプションにチェックを入れる


    • 製造ファイル出力 をクリックするとガーバーファイルが作成されます
    • 続いてGenerate Drill Fileをクリック、各種オプション指定後に ドリル ファイルを生成します。


    • 生成されたファイルをすべてzipに圧縮し、製造を依頼します。
    • ファイルは任意のガーバビューワで妥当性を検証しておきます。JLCPCBでの注文画面でOnline Gerber Viewerにより簡易チェックも可能です。