Altium Designer 統合ライブラリの基本・作成方法
基板設計をするためには回路図を書き、基板上の部品配置を行わないといけません。
そのために、まずは部品のライブラリを整備することが重要で、私はこの作業にかなりの時間を費やします。
多数の部品を扱っていると、意外と公開されているライブラリが間違っていたりします。
そのため、公開されているライブラリはそのまま使用せず、面倒でも自分で作り直す作業を必ずしているのです。
Altium Designerは「統合ライブラリ(拡張子.IntLib)」という仕組みで部品のライブラリを持っています。
これは、回路図から基板上の部品配置など、部品に関する全ての情報が入っているファイルになります。
しかし、この統合ライブラリのファイルは直接編集できるわけではなく、ソースライブラリからコンパイルする形で生成します。
ソースライブラリは、「統合ライブラリパッケージ(拡張子.LibPkg)」というプロジェクトファイルの他に「回路図ライブラリ(拡張子.SchLib)」「PCBライブラリ(拡張子.PcbLib)」などのいくつかのファイルから構成されるものです。
コンパイルを行うことによって、これらの全ての情報を統合ライブラリに取りまとめて出力するような形となっています。
ライブラリの保存計画
最近のバージョンでは少なくなったと聞くのですが、昔のバージョンではAltium Designerが落ちることが多かったのです。
巨大なソフトウェアですし、どこかでメモリリークしているのかとは思いますが、取れる対策はDropbox等のオンラインストレージ上で作業するということでした。
今はNextCloudを使用していますが、保存のたびにHistoryフォルダに過去のファイルが保存されるためか、Historyフォルダだけ同期保留中になっていることが多いです。
それ以外のファイルはバックアップが取れているため気にしないこととしていますが、気になる方は他の方法を探ってみてください。
ソースライブラリの保存先
私はNextCloud上にAltium/Libraryというフォルダを作り、用途ごとにライブラリを作りたいため以下のフォルダ分けをしています。
フォルダ名と同じ「統合ライブラリパッケージ(拡張子.LibPkg)」を作成しています。
そのため、コンパイルを行うと、フォルダ名と同じ「統合ライブラリ(拡張子.IntLib)」が作成される仕組みになっています。
フォルダ名 | 概要 |
---|---|
Analog | オペアンプやコンパレータ等アナログ系IC。電流センスアンプも |
Audio | オーディオアンプやオーディオインターフェース用ICなど。 |
Capacitor | コンデンサ |
Clock | 水晶やRTC等クロック関係部品 |
Connector | コネクタ |
DataConverter | ADCやDAC等のデータコンバーターIC |
Diode | ダイオード |
Display | LCDディスプレイ |
Inductor | インダクタ |
Interface | I/Oエキスパンダ・I2C関係や、UART等のドライバ等インターフェース関係IC |
Logic | ロジックIC |
MCU | マイコン・マイコンボード |
Memory | EEPROMやSRAM等のメモリIC |
Optical | 光学部品。LEDやフォトカプラ等 |
PLD | CPLD・FPGA |
Power | 電源関係IC |
Protection | 保護関係。ヒューズやPTC等 |
Resistor | 抵抗 |
RF | RF関係 |
Sensor | センサー等 |
Switch | スイッチ |
Transformer | パルストランス等 |
Transistor | トランジスタ・IGBTやMOSFETも |
あくまでも私が実践している方法ですので、例として参考にするまでで各自使いやすい管理方法を考えてみてください。
私は使用していませんが、フリーのAltiumライブラリ「Celestial Altium Library」も存在しています。
ソースライブラリの作り方(種類で振り分ける例:Connector)
ファイル名 | 種別 | 概要 |
---|---|---|
Connector.LibPkg | 統合ライブラリパッケージ | プロジェクトファイル |
External.PcbLib | PCBライブラリ | フットプリント(外部向け・DCジャック・BNC・USB等PC関係・音声コネクタ他) |
External.SchLib | 回路図ライブラリ | 回路図記号 |
Header.PcbLib | PCBライブラリ | フットプリント(ピンヘッダやピンソケット等、基板上で使用するヘッダー) |
Header.SchLib | 回路図ライブラリ | 回路図記号 |
JST.PcbLib | PCBライブラリ | フットプリント(JSTのコネクタ・XH・VH等) |
JST.SchLib | 回路図ライブラリ | 回路図記号 |
Terminal.PcbLib | PCBライブラリ | フットプリント(基板取付のターミナル・ネジ端子・ファストン端子等) |
Terminal.SchLib | 回路図ライブラリ | 回路図記号 |
生成される統合ライブラリファイル:「Project Outputs for Connector」フォルダ以下「Connector.IntLib」
回路図ライブラリとPCBライブラリは統合ライブラリパッケージに任意の数を登録できます。
しかし、複数ファイルに分かれていても、統合ライブラリになると全て混ざった状態で1つのライブラリとして表示されるため、ソースライブラリを作る際の分類でしかないです。
ソースライブラリの作り方(型番で振り分ける例:Logic)
ファイル名 | 種別 | 概要 |
---|---|---|
Logic.LibPkg | 統合ライブラリパッケージ | プロジェクトファイル |
Logic.PcbLib | PCBライブラリ | フットプリント(ロジックIC向け、SOIC/TSSOP等) |
74ACT.SchLib | 回路図ライブラリ | 回路図記号(74ACT......) |
74AVC.SchLib | 回路図ライブラリ | 回路図記号(74AVC......) |
74LVC.SchLib | 回路図ライブラリ | 回路図記号(74LVC......) |
生成される統合ライブラリファイル:「Project Outputs for Logic」フォルダ以下「Logic.IntLib」
ロジックICは種類は多くとも、パッケージの種類はそこまで多くないため、先程の例とは違って、PCBライブラリは1つです。
回路図ライブラリの書き方
他のライブラリを参考にする
LCSCのパーツ番号を追加しておく
LCSC Part #
JLCPCB Help Center - How to generate Bill of Materials and Centroid File from Altium
抵抗などの同じパッケージで種類が多い場合、実際の値はValue等で入れている場合があると思います。
その場合は、1つの部品に定まらないため、LCSCのパーツ番号を追加できないです。
これを追加したい場合は、抵抗値ごとにライブラリをつくる必要が出てきます。
(1KΩの抵抗、1.2KΩの抵抗、1.5KΩの抵抗、など。E12系列ならまだしも、E24以降の系列になるとそれだけ作るのが大変です)
PCBライブラリの書き方
メカニカルレイヤーの意味
メカニカルレイヤーは自由に増やすことが出来ます。
しかし、どういう意図で使われるのか、メモしておきましょう。
レイヤ名 | 概要 |
---|---|
Mechanical 1 | |
Mechanical 13 | 3D |
Mechanical 15 |
PCBAに出せるPCBライブラリを作成する
最近は安価にPCBAが行えるようになってきました。
プリント基板に部品実装も行ってもらうことをPCBA(Printed Circuit Board Assembly)と言います。
実際に依頼するときには、部品表となる「BOM(Bill of Materials)」と部品の位置を指定する「CPL(Component Placement List/ Centroid File / Pick and Place File)」というファイルが必要になります。
部品の中心座標はどこにする?
デフォルトではCenter-X/Yを使用するようになっていて、Pad-X/YとRef-X/Yも追加してCPLファイルを書き出しできます。
Centerはパッド位置から自動的に計算される中心位置、Refはフットプリントの原点、Padはパッド1の座標となっています。
対称なパッドを持つ部品であれば、自動的に計算される中心位置で合っていますが、例えばSDカードコネクタなどのパッド位置が対称でない部品では、Centerは実際の位置からはかなり外れてしまいます。
そのため、部品を吸着する位置を原点にするのが重要なのではないでしょうか。
ただ、その場合は基板の端に合わせてコネクタ等の部品を配置したい場合でも、原点は部品の中心となっていますから、グリッドで基板端に合わせることは難しいです。
現実的には、座標指定で配置するしかないようです。
- KB: Calculate component Pick and Place Center of a footprint
- Preparing Assembly Data in Altium Designer
- Topic: How to force altium to put connector on edge
SFPコネクタなどの複数の部品から成り立つコネクタは扱いに困ります。
部品の向きはどうすればいい?
できる限りテープの向きに合わせると良いです。
Tape & Reel Packaging Standards
IPC準拠フットプリントウィザード
私は実際には、パッドを手動で配置することは少なく、IPC準拠フットプリントウィザードを使用します。
部品の寸法値から複数のサイズのフットプリントを生成することが可能です。
これは IPC-7351 (Section 3.1.5.4) で定義されているもので、
- M – Maximum (Most) Material Condition (Density Level A) 低密度
- N – Median (Nominal) Material Condition (Density Level B) 中密度
- L – Minimum (Least) Material Condition (Density Level C) 高密度
と定められています。
私はSMD部品では実際にIPC準拠フットプリントウィザード中で、M/N/Lそれぞれのフットプリントを生成して、ライブラリには全部登録するようにしています。
通常時使用するものはNにしておき、場合によってM/N/Lそれぞれを使い分けています。
ちなみに、IPC-7351最新版のPDFは以下URLで販売されていますが、数万円します…
- [英語版]IPC-7351B: Generic Requirements for Surface Mount Design and Land Pattern Standard
- IPC-7351 - Revision B - Standard Only: Generic Requirements for Surface Mount Design and Land Pattern Standard
また、部品自体の寸法もIPC-7351(旧IPC-SM-782A)にできるだけ従うようにしています。
IPC-SM-782Aで調べてみると、PDFファイルがあると思います。
フットプリント生成に使用した値(チップ抵抗)
Component Types : CHIP
(mm) | R1005 | R1608 | R6432 |
---|---|---|---|
(L)Min | 0.9 | 1.5 | 6.2 |
(L)Max | 1.1 | 1.7 | 6.6 |
(W)Min | 0.4 | 0.7 | 3.0 |
(W)Max | 0.6 | 0.9 | 3.4 |
(T)Min | 0.1 | 0.15 | 0.35 |
(T)Max | 0.3 | 0.4 | 0.85 |
(A) | 0.4 | 0.6 | 0.71 |
Package Type : Chip Resistor
フットプリント生成に使用した値(チップコンデンサ)
Component Types : CHIP
(mm) | C1005 | C1608 | C2012 | C3216 | C3225 |
---|---|---|---|---|---|
(L)Min | 0.9 | 1.45 | 1.8 | 3.0 | 3.0 |
(L)Max | 1.1 | 1.75 | 2.2 | 3.4 | 3.4 |
(W)Min | 0.4 | 0.65 | 1.05 | 1.4 | 2.3 |
(W)Max | 0.6 | 0.95 | 1.45 | 1.8 | 2.7 |
(T)Min | 0.1 | 0.2 | 0.25 | 0.25 | 0.25 |
(T)Max | 0.3 | 0.5 | 0.75 | 0.75 | 0.75 |
(A) | 0.6 | 0.85 | 1.1 | 1.35 | 2.2 |
Package Type : Chip Capacitor
Polarity Pin Location : None
フットプリント生成に使用した値(チップインダクタ・ビーズ)
Component Types : CHIP
(mm) | L1608 | L2012 | L3225 |
---|---|---|---|
(L)Min | 1.45 | 1.8 | 3.0 |
(L)Max | 1.75 | 2.2 | 3.4 |
(W)Min | 0.65 | 1.05 | 2.3 |
(W)Max | 0.95 | 1.45 | 2.7 |
(T)Min | 0.2 | 0.3 | 0.4 |
(T)Max | 0.5 | 0.7 | 0.8 |
(A) | 0.85 | 1.1 | 1.2 |
Package Type : Chip Inductor
Polarity Pin Location : None
フットプリント生成に使用した値(チップLED・TVS・ESDサプレッサー)
Component Types : CHIP
(mm) | D1608 |
---|---|
(L)Min | 1.5 |
(L)Max | 1.7 |
(W)Min | 0.7 |
(W)Max | 0.9 |
(T)Min | 0.2 |
(T)Max | 0.3 |
(A) | 0.2 |
Package Type : Chip Diode
Cathode Pin Location : Pin 1(TVS等はNone)
フットプリント生成に使用した値(チップ集合抵抗)
Component Types : Chip Array
(mm) | AR8_3216 |
---|---|
(E)Min | 1.4 |
(E)Max | 1.8 |
(D)Min | 3.0 |
(D)Max | 3.4 |
(A) | 0.6 |
Hull side type | Concave |
(B)Min | 0.25 |
(B)Max | 0.55 |
(L)Min | 0.15 |
(L)Max | 0.45 |
(e) | 0.8 |
pins | 8 |
フットプリント生成に使用した値(電解コンデンサ)
Component Types : CAPAE
(mm) | SMD_CAP_AL_10X10_H10 |
---|---|
(L)Min | 11.3 |
(L)Max | 10.5 |
(L1)Min | 11.3 |
(L1)Max | 10.5 |
(W)Min | 10.1 |
(W)Max | 10.5 |
(T)Min | 3.0 |
(T)Max | 3.4 |
(TW)Min | 0.8 |
(TW)Max | 1.1 |
(D)Min | 9.5 |
(D)Max | 10.5 |
(A) | 10.0 |
フットプリント生成に使用した値(チップダイオード)
Component Types : SODFL
(mm) | SOD-123F |
---|---|
(E1)Min | 2.65 |
(E1)Max | 2.95 |
(D)Min | 1.65 |
(D)Max | 1.95 |
(A) | 1.1 |
(b)Min | 0.75 |
(b)Max | 1.05 |
(L)Min | 0.5 |
(L)Max | 0.8 |
(E)Min | 3.5 |
(E)Max | 3.7 |
PCBライブラリに3Dモデルを適用させる
3Dモデルの入手先
- 3Dfindit - KiCad CAD Catalog
- KiCad Libraries - 3D Models
- TraceParts
- SnapMagic(旧SnapEDA)
- Component Search Engine
- GrabCAD Community Library
- 3D ContentCentral
- Celestial Altium Library
他、部品のメーカーサイトを見ることや、Digi-Key・Mouser等で「EDA/CADモデル」にチェックを入れて探すなどがあります。
使用する部品と同じ形状の互換品も含めて探すと見つかりやすいです。
汎用的な部品であると、型番ではなく一般的な呼び名で検索するのも良いと思われます。
3Dモデルは基本的にSTEPファイルでやり取りします。
3Dモデルの編集
メーカーごとにモデルの色が違ったり、精細度が違ったりするので、一度3D CADソフトウェアで編集をしています。
STEPファイルを編集できるソフトウェアが必要です。
私は永久ライセンスだった頃の「Autodesk Inventor LT 2015」を使用していますが、最近ですとSOLIDWORKS for Makers、DesignSpark MechanicalやFusion 360、無償で使用可能なものにはFreeCADやSolveSpaceなどがあります。
新規でモデルを起こすのには、CadQueryでも良いと思われますが、(実際にKiCad 3D Libraryでは使われてます)既存のモデルを編集する作業は向いていません。