工作 > EAGLE and OLIMEX > OLIMEX 用ライブラリの作成
OLIMEX用ライブラリの作成
(2004/06/20)
EAGLE には、多数のライブラリが付属します(これが「使える」と言われる理由のひとつ)が、OLIMEX のデザインルールに合わない箇所がいくつもあること、使わない部品も多く探しにくいこと、ライブラリがヨーロッパ風であり、日本で一般的な部品が少ないこと、などより、結局自分でライブラリを構築することになります。
ライブラリ作成の手順
- 使う部品をリストアップする。
- シンボル(回路図記号)を作成する、または、標準ライブラリから lbrcpy.ulp でコピーしてくる。
- パッケージ(パターンのパッド情報)を作成する、または、標準ライブラリから lbrcpy.ulp でコピーして修正する。
- シンボルとパッケージを結び付けて、デバイスを作る。ピンアサインも行う。
ライブラリは、回路図設計の開始以前に、可能な限り整備しておきましょう。回路図を作りはじめてからライブラリを手直しすると、けっこう、手戻りが発生します。
- 作成したライブラリを使って回路図を設計する。
- 回路図から基板パターンを設計する。
- 発注する。
OLIMEX対応の設計ルール
OLIMEXに基板を発注するためには次の設計ルールでライブラリを作成する必要があります。
- レイヤ設定。次のレイヤを使います。
1 | Top | 表面のパッド | |
16 | Bottom | 裏面のパッド | |
17 | Pads | 穴挿入部品のパッド。表裏面にランドが作成され、ドリル穴が空き、スルーホールされる。 | |
18 | Vias | 配線のビアホール。表裏面にパッドが作成され、ドリル穴が空きスルーホールされる。 | |
20 | Dimension | 外形線 | |
21 | tPlace | 表面の外形線。シルクされる。 | |
25 | tName | 表面の部品名(R1など)。シルクされる。 | |
26 | bName | 裏面の部品名(R1など)。 | OLIMEXでは不使用。 |
27 | tValue | 表面の部品値(1kなど)。 | OLIMEXでは不使用。 |
28 | bValue | 裏面の部品値(1kなど)。 | OLIMEXでは不使用。 |
29 | tStop | 表面のソルダレジスト穴 | |
30 | bStop | 裏面のソルダレジスト穴 | |
51 | tDocu | 表面の補助線。シルクしたくない外形線などに使う。 | OLIMEXでは不使用。 |
52 | bDocu | 裏面の補助線。シルクしたくない外形線などに使う。 | OLIMEXでは不使用。 |
- シルク線幅 = 10mil。
- 配線最小線幅 = 10mil。
- 配線最小感覚 = できれば10mil、MUST=8mil。
- グリッド=0.05mm と 50mil を切り替えて使う。部品メーカの推奨パッドデータがmm 単位で公表されていることが多い。
- 基板=FR4、厚さ=1.5mm(0.062")、Cu層=35um(両面)
シンボルのコピー
標準ライブラリの中に欲しいシンボル(回路図記号)がある場合はそこからコピーしてくればいいです。
ライブラリのコピーは、楠氏のページからlbrcpy.ulpを使うのが操作性がよいようです。リンク先のページからlbrcpy.ulp をダウンロードして、~/eagle/ulp/ に保存しておきましょう。
使い方は上記のページに詳しく説明されています。ざっと説明すると次のとおりです。
- コピー元のライブラリを開いて、欲しいシンボル名をみつける。
- コピー先のライブラリ(自分用)を開く。
- run lbrcpy で、ダイアログが開く。
- Browse でコピー元のライブラリを開く
- Anzeige von ラジオボタンで Symbols を選ぶ。
- Copy ->ボタンを押す。
ちなみに、ライブラリを開くには、次の2つの手順があります。どちらでもOK。
- Control Panel の File メニュー→Open→Library... でファイルオープンダイアログが開くので、そこで lbr ファイルを選択。
- Control Panel で LBR ファイルを選択→右クリック→Open
シンボルの作成
ICなど、欲しいシンボルが無い場合はライブラリエディタで作成します。ライブラリを開いたあと、Symbol ボタンを押すと、ダイアログが開くので、New: にシンボル名を入れます。シンボルエディタが開くので、回路図を書くときと同様にシンボルを書きます。
コピーしてきたシンボルもそうですが、EAGLEは、お絵書きソフトではなく、CADなので、線の属性などにも注意が必要です。ピンを配置するときにも属性が指定できるのですが、後で修正もできます。
- ピン名
- Name→ピンクリック、で修正できます。ベースの場合は B、1番ピンの場合は1などとつけときましょう。
- 入出力
- Change→Direction→ピンクリック、で修正できます。NC, IN, OUT, I/O, OC, HIZ, PWR, PAS, SUP から適切なのを選びましょう。あとで ERC で役にたってくれます。
- Swap Level
- NAND ゲートの入力のように、ピンスワップが可能なものは、Change→Swaplevel... で1以上の同じ数値を入力しておきます。ボード設計で配線が混雑してきた時に、ピンを入れ替えることができます。
パッケージのコピー
抵抗やコンデンサの 1608 や 3216 チップ、トランジスタの SC-59(SOT23) パッケージなどは、標準ライブラリから lbrcpy.ulp を使ってパッケージをコピーしてきてよいです。ただし、次のものは、パッケージの作成と同様に、OLIMEX 用に修正する必要があります。
- レイヤ
- 特にシルクレイヤやシルクしないレイヤを OLIMEX 指定のレイヤに合わせる必要があります。
- シルク線幅
- すべて 10mil で書き直します。
- テキストフォント
- シルクしたいテキストフォントは Vector フォントで書き直します。
パッケージの作成
パッケージの作成は次の手順で行います。
- OLIMEX 対応環境を整える。
シルク線幅、ドリル径は一般環境とは異なりますので、必ず設定が必要です。私の場合は、olimex-setup.scr という形でまとめてあって、そこに SCR パスを通してあるので、script olimex-setupと実行するだけでOKです。
grid mil
set drill_menu 28 35 39 43 51 59 83 130
change size 50
change ratio 20
change font vector
- パッドを作る。
1:Top レイヤにパッドを作ります。データシートの推奨パッドサイズを参考にします。座標を (X座標 Y座標)の形で数値入力できること、キーボードの上下矢印でヒストリが効くこと、を知っていると便利です。できれば、mil グリッドで書きたいところですが(ボードレイアウトは 10mil グリッド推奨)、データシートが mm グリッドならそれで書いてもかまいません。中心(0 0)に対して対称になるようにします。
ソルダレジストは、デザインルールに基づいて、「パッド+余裕」のサイズで自動的に設定されます。
- シルクする外形を作る。
21:tPlace レイヤに、10mil 線で、シルクする外形線を引きます。部品搭載の目安になるような線を書いて下さい。パッドにシルクが被らないように!!
- シルクしない線を書く。
シルクしない線(外形線、注釈線など)を、51:tDocu レイヤなどに書きます。部品外形などは 39:tKeepout レイヤを使ってももよいでしょう。
- 部品名を入れる。
一般に、基板の上で部品を識別しやすいように、部品名(R11とか)を入れます。テキストの設定が、Size 50mil, Vector Font, Ratio 20% になっていることを確認して、25:tName レイヤに、>NAME と入れれば、ボード上では R11 とかに置換されます。
上のテキスト設定は、文字高さ=50mil, ベクタフォント、Ratio=20%ということは、50mil×20%=10mil の線幅、ということで、OLIMEX Acceptable なテキストができあがります。
27:tValue レイヤと >VALUE 文字列は、部品の値(51Ωなど)に置換されますが、普通の基板では使わないと思います。OLIMEX ではそもそも、27: tValue はシルクされません。もし部品値をシルクしたいときは、25:tName レイヤに >VALUE と書いて下さい。
- シルクしない注釈を作る。
tDocu などのシルクされないレイヤに、小さい文字で、レイアウトの参考になりそうな情報を書いておくとあとが楽です。たとえば、C12とか。シルクはあっちこっちに行ってしまうことがあるので、ジャストその場所にも tDocu レイヤに C12 とか書いておくと楽、とかね。
デバイスの作成
デバイスボタンを押して、新規デバイスを作成します。Add で symbol を呼び出し、パッケージを追加して、ピンの対応をつけます。
デフォルトではワケワカランピン名が付いています。symbol, package ともに、name ボタンで変更できます。意味のある名前に付け替えておくのがよいでしょう。
同一パッケージに複数のゲートが入っている場合などは、Swaplevel を設定しておくと、ゲートスワップが可能になります。
近藤靖浩