同じプロジェクト内の複数のPCBのデザイン作業

Ari Mahpour
|  投稿日 五月 9, 2021  |  更新日 七月 1, 2024
同じプロジェクト内の複数のPCBのデザイン作業

弊社のPCB設計の大部分は、 Altium Designerプロジェクト(すなわち.PrjPcbファイル)に従って単一のPCB に配置されます。時々、さまざまなスタッフィングオプションを持つバリアントを使用してデザインします。さまざまなスタッフィングオプションを備えた複数のPCBを必要とする単一のプロジェクトを扱うことはめったにありませんが、そのようなプロジェクトが発生すると、私たちの多くは行き詰まる傾向があります。設計者がプロジェクトをフォーク(すなわちコピーアンドペースト)し、回路図および(または)PCBにわずかなバリエーションを追加するのを何度も見てきました。一般的に、この技法はデザインに戻って更新する必要がある時を除き容認されます。両方のプロジェクトで正確な変更をどのように処理していますか?これらの変更が同一であることをどのように保証しますか?これは何回発生しますか(改定A 、B 、Cなど)?この記事では、単一のプロジェクト内で複数のPCBデザインを管理し、信頼できる唯一の情報源(SSOT:Single Source of Truth)を確保する方法について説明します。私の最後の記事「パンデミック時代の試作活動 :リビングルームから電子機器を構築する」を使って実例の精査も行います。

プロジェクトファイルのセットアップ

ここでの目的は、回路図内でSSOTを維持しながら、それでもPCB自体のバリアントを配線できるようにすることです。この例では、単一の回路図を作成しましたが、2つのPCBを備えています。

図1:複数のPcbDocsを含むプロジェクトファイル
Figure 1: Project files including multiple PcbDocs

また、上部にバリアントも表示されます。キルンコントローラー用に2つのバリアントを作成しました。1つは Raspberry Pi(標準サイズ)用、もう1つはRaspberry Pi Zero用です。標準的なサイズは基本的にZeroの大きいバージョンなので、私はRaspberry Pi Zeroのハットデザイン配線を始めました。配線が完了したら、 PCBデザイン全体を標準サイズのPCB(PiHat - Full.pcbDoc)にコピーして貼り付けました。多少のマッサージングが必要でしたが(カットアウト、ポリゴンポア、基板外形など)、コンポーネントとルートは同じでした。

私の回路図には、両方のデザインに存在するすべてのコンポーネントを含めました(それらがスタッフされているかどうかにかかわらず)。

図2:バリアントのない回路図
Figure 2: Schematic with no variants

私は、標準サイズのRaspberry Pi HATに十分な余裕があることに気付きましたので、AC-DCコンバータを基板に組み込むことにしました。もちろん問題は、回路図にこれを追加すると、小さなPi HAT基板用にPCBにインポートされることになることです。このように、フルサイズは私たちの希望ではないので、意図的にPcbDocに入れないようにしました。

図3:スタッフされていない部品を明示的にインポートしません
Figure 3: Explicitly not importing the unstuffed parts

そのコンポーネントはデザインに含まれていないため、「未配線の」 DRCエラーは生成されません。また、 DNI(インストールしない)オプションも同様にバリアントに追加したいと考えています。

図4:フルサイズボードのDNI
Figure 4: DNI for the full-size board
図5:Pi Zero基板のDNI
Figure 5: DNI for the Pi Zero board

混乱を避けるために、フルサイズバージョンの DC電源コネクタを完全に取り外しました(AC 入力を使用しているため)。また、Pi Zeroバージョンに関しては逆のことをしました。

出力ジョブファイル

回路図をデザインし、基板を配線し、スタッフィングオプションを構成したので、出力ジョブファイルをセットアップする必要があります。これらの出力ジョブファイルは、各ボードを個別のスタッフィングオプションで構築するために必要なファブリケーションおよびアセンブリパッケージを生成します。これは、ベンダー向けのパッケージを作成する際に、見過ごされがちで、大きな問題を引き起こす可能性のある重要なステップです。

この例では、PCBごとに別個の出力ジョブファイルがあります。簡単にするために、ファブリケーションとアセンブリの両方に単一の出力ジョブファイルがあります(一般的にはAltium Designerのサンプルプロジェクトでは2つの別々の.outjobファイルに分割されます)。図6と図7に示すように、.outjobファイルは、バリアントの選択とPcbDocの選択を除いては同じです。複数のスタッフィングオプションについては、ウィンドウの上部にあるバリアントのオプションを使用します。私たちは、指定されたPCBのみをスタッフィングするために関心のあるPCBのパッケージを生成します。たとえば、「Pi」バリアント(標準サイズのRaspberry Pi HATをスタッフする)では、「Pi Hat-Full(フルサイズ)PCB ファイルを選択します。Raspberry Pi Zero HAT用のファブリケーションおよびアセンブリパッケージの生成には関心がありません。より小さいRaspberry Pi (Zero) HATについても同様です。目的の基板のみを製作して組み立てるために必要なファイルを生成します。

図6:フルサイズのプロジェクトバリアントとPCBが選択された出力ジョブファイル
図7:Pi Zero sizeプロジェクトバリアントおよびPCBが選択された出力ジョブファイル
Figure 7: Outjob file with Pi Zero size project variant and PCB selected

最後に、再利用を可能にするために、次のようにフォルダ構造の設定でスペシャルストリングを使用します。

図8:スペシャルストリングを使用して、出力フォルダにプログラムで名前を付けます
Figure 8: Using Special Strings to name output folders programmatically

これにより、バリアント名に基づいてサブフォルダを自動的に作成することができます。バリアント名が変更された場合は、フォルダも変更されます。

これらの出力ジョブファイルをスクリプトやその他の方法でさらに圧縮する方法は他にもありますが、これはこの記事では扱いません。この記事の目的は、これが可能であることを示し、これを設定する多くの方法の1例を読者に提供することです。

まとめ

この記事では、設計者がSSOTから推進される複数のPCBを管理する際に直面する課題について説明しました。プロジェクトの複数のコピーを作成して管理するのではなく、出力ジョブの構成によって複数のPCBをデザインしながら、単一のPCBプロジェクトを維持します。これらの構成により、プロジェクト内に複数のPcbDocファイルを保持することができますが、特にそれらの基板用のパッケージを生成します。このテクニックを使用し、複数のPCBに展開する単一のプロジェクトを更新することで、設計者は時間とコストを節約できます。

アルティウムが次のPCB デザインをどのように支援できるかについて、詳しく知りたいですか?アルティウムのエキスパートと話をしてデザインに関する意思決定を簡単かつ自信を持って行う方法を学びましょう。

筆者について

筆者について

Ariは、設計、デバイスパッケージ、テスト、および電気、機械、およびソフトウェアシステムの統合において幅広い経験を持つエンジニアです。彼は、設計/デザイン、検証、テストのエンジニアをまとめて団結したグループとして機能させることに情熱を注いでいます。

関連リソース

関連する技術文書

ホームに戻る
Thank you, you are now subscribed to updates.