Kicadで複数の基板を使う方法(忘備録)

published_with_changes 更新日: event_note 公開日:

labelKiCad labelMemo/Note

趣旨

KiCadを使って、1プロジェクトで複数基板を設計する方法です。

AD9833 moduleを使ったファンクションジェネレータを作ろうとしています。今までは1枚のユニバーサル基板で計画していました。 KiCadを使って回路を描いて、PCBレイアウトを行い、配線パターンの設計まで進めました。

表と裏はこんな感じになります。なかなか良いねと自己満悦していたのですが、

あらためて冷静になって配線のパターンを見ると、あまりの複雑さに手を出せないでいました。これをユニバーサル基板で作る勇気と技能は私にはありません。

そこで、基板を複数に分けようとKiCadでのやり方を調べましたが、なかなかGoogle検索にヒットしません。KiCadの初心者なので間違っているかもしれませんが、KiCadは「1プロジェクトで1枚の基板を作るCAD。回路図は階層化できるが、PCBエディター上では全階層の部品が表示される。複数基板として設計する機能がない。」のだと思います。

やっとKiCadを使えるようになったのに他のPCB設計CADを覚える気にはなれず、しつこくGoogleを探したら、下記に示すブログを見つけました。ただ、初心者の私には内容が理解しずらくて、本当に自分がやりたいことが紹介されているのか疑心暗鬼で倣ってみました。その結果、1プロジェクトで複数基板を設計することができたので、自分の備忘録としてやり方を残しておきます。

KiCAD で複数ボードプロジェクトを運用する | tech - 氾濫原

KiCAD で複数ボードプロジェクトを運用する

KiCAD は1つのプロジェクトにつき1つのボードしか作れない。小さな基板であれば1つの基板にVカットを入れるでいいが、どうしても複数ボードとして設計したい場合に困る。
複数プロジェクトにして回路図をわけると、今度はこの回路図間でコピペが動かないという問題が発生する。KiCAD はプロジェクト間のブロックコピー・ペーストができない。

分けた基板ごとにプロジェクトを作ってPCB化するのと何が違うのか、あらためて考えてみたら、メリットは複数基板の回路図がいつでも連携していることだと思いました。もう変更しない完成させた回路図から個別基板の回路図を切り出してPCB化するならば、基板ごとのプロジェクト方式でも問題はありません。修正も手間を惜しまなければできると思います。ただ、大変だと想像します。

今回、やってみた方法は個々の基板を階層シートとして扱えるので、階層シート間のコピー&ペーストができることがメリットだと思ました。それと実感はできていないのですが、階層シート間の整合性もチェックできているのだろうと思います。

下準備(回路図をコピー)

元のプロジェクトから新しいプロジェクトへ回路図をコピーします。正しいやり方かどうかはわかりませんが、ちゃんと回路図がコピーできました。

新規プロジェクトを作成

念のためにフォルダを作って、そこに新しいプロジェクトを作成します。KiCadのトップ画面で「ファイル」「新規」「プロジェクト」です。


プロジェクト名は「newtry.pro」にしました。


newtry.proのなかに、newtry.kicad.pcbとnewtry.schができていますので、回路図ファイルのnewtry.schを開きます。


新しくできた回路図に元の回路図を追加

開いたnewtry.schは図面枠だけの内容です。ここに元ファイルの回路図を追加するため、「ファイル」メニューから「回路図シートの内容を追加」を選びます。

追加する回路図を選択するポップアップウインドウが出ますので、コピー元の回路図ファイル(xxxxxxx.sch)を選びます。



Absoluteとの違いは判りませんが、デフォルトの「Use Relative Path」を選びます。続いて、リンクが切れるかもしれないという警告がでますが、気にしないで「ロードを続行」を選びます。

コピー元の回路図の内容が取り込めました。プリントフットの関連づけについては、プロジェクト固有のものは再定義が必要でしたが、一般的なものはコピー元の内容を引き継いでいるようでした。


【注記】
この方法でやると、追加したシンボルや自分で作ったシンボルも問題なく再現できています。検索トップに出てきた下記引用の階層シートを作成する方法だと、自分の場合はこのようなシンボルがうまく取り込めませんでした。

KICADの他のプロジェクトから回路コピーする
  1. 回路をペーストしたいプロジェクトのフォルダにコピー元の回路図を入れる。 ちなみに、コピーしただけではKiCAD上で回路図は見えません。
  2. ペーストするプロジェクトの回路図で階層シートを作成する ...
  3. 回路コピー&ペーストする
引用元:KICADの他のプロジェクトから回路をコピーする

複数の基板を扱う

上記の引用元に次のように説明されています。

考えかた
  • 全体を管理するプロジェクトとルート回路図を作る
  • 各基板ごとに階層シートとして回路図ファイルを分離する
  • 各基板ごとに別のプロジェクトとルート回路図を作る
  • 各基板のルート回路図から全体を管理するプロジェクトの階層シートを参照する
これで原理的には全体を管理するプロジェクトのルート回路図を開いて各階層シート(モジュール)に入ったり出たりして図を書け、各基板ごとのプロジェクトのルート回路図を開けば各基板ごとだけのネットリストを吐ける。

なんとなく言い回しがしっくりこないので、自分の言葉に置き換えます。

  • KiCadではひとつのプロジェクトでは一枚の基板しか扱えないので、基板ごとのプロジェクトを複数作る。
  • そして、それらのプロジェクトを統括する親プロジェクトを作る。この親プロジェクトの階層シート内に個々の基板のプロジェクトが構成されている。

手順1:基板ごとの階層シートを作る

「階層シートを作成」を選んで、図面の空いているところに必要な基盤の枚数だけ階層シートを作ります。階層シートのシート名とファイル名は何でも良いと思いますが、手順を理解しやすくするため引用元と同じにしました。



手順2:階層シートの内容を作る

回路図の必要な部分を選び、「ブロックをコピー CTR+C」または「ブロックを切り取り CTR+X」してから、対象の階層シートに入ります。初めて入った階層シートのなかは真っ白ですので、そこにコピーまたはカットした内容を貼り付けます。

階層シートに出入りしながら、このシート(この基板)に必要な回路図の内容を作成します。後から追加/修正できるので完成形にしなくてもOKでした。

同じことを別の階層シート(別の基板)に対しても行います。



最終的に図面枠には階層シートだけで他の回路は描いていない状態にします。個々の階層シートを開くと回路図の内容が現れます。確認出来たら、一端このプロジェクト回路図を保存します。

手順3:プロジェクト関連の2種類のファイルを複製

以上の手順で当該プロジェクトのフォルダには、newtry.proを始めとした何種類かのファイルができています。例えば、こんな内容です。これを親ファイル、親プロジェクトとします。

親ファイルのnewtry.schとnewtry-cache.libをコピーして、個別の基板プロジェクト用のファイルを作ります。元の基板を2枚に分けることにしたので、名前は引用例に合わせてModuleAとModuleBにしました。したがって次のようになります。

コピー元(親プロジェクト、親基板、親ファイル)
    newtry.sch
    newtry-cache.lib

基板A(ModuleAプロジェクト)
    ModuleA.sch
    ModuleA-cache.lib

基板B(ModuleBプロジェクト)
    ModuleB.sch
    ModuleB-cache.lib

手順4:分割基板プロジェクトの作成と調整

コピーし終わった状態で、親プロジェクト(newtry.pro)を開くとKiCadのトップ画面は次のようになっています。

回路図ファイル(ModuleA.sch, ModuleB.sch)をそれぞれダブルクリックして開けてから、一端、保存します。


上記の操作によって、基板Aと基板Bのプロジェクト(ModuleA/B.pro)が親プロジェクト(newtry.pro)の下層にできています。

それぞれの基板プロジェクトを開き、その回路図の不要な階層シート(基板Aなら、ModuleB.sch)を消します。

上の図のツリー構成が複数基板を扱えるプロジェクトの構成になっています。見かけ上、親プロジェクトに複数の階層シートがあり、それぞれの子プロジェクトにひとつの階層シートがありますが、親と子の階層シートは同じものです。つまり、どちらを開いて編集してももう一方に反映されています。

ただし、階層シート間でコピーする場合は、回路図が階層化回路図になっていなければならないので、親プロジェクトから階層シートを開いてコピー&ペーストをする必要があります。

手順5:個別の基板製作(Pcbnew)

回路図が編集できたら保存します。

ここからは子プロジェクト(ModuleA/B.pro)を開いて現れる回路図(ModuleA/B.sch)を使います。フットプリントの関連付け、およびネットリスト出力をして pcbnew すると、該当する基板の部品だけを出すことができます。

ここの手順の要点は、フットプリントの関連付け以後の処理は子プロジェクトで行うことです。親プロジェクトで現れる階層シートを使ってフットプリントの関連付けを行うと全構成が処理され、全構成のPCB基板になります。

ModuleAのPcbnew

ModuleBのPcbnew


Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down