KiCADで作る反転増幅アンプ
Overview
反転増幅アンプの設計を通してKiCADの操作を習得しようというページ.
自分の手を動かして実際に触ってみるのが習得の一番の近道
- 反転増幅回路の回路図を描く.
- PCBをデザインする.
- (Optional) デザインしたPCBをRm131にある基板加工機(MITS Elevenlab)を使って作成してみる.
今回作る反転増幅回路の回路図と最終的に作る基板のCADイメージはこんな感じ.
完成形のCADファイル:
- Rev.1 : inverting_opamp_tuto_rev1.zip
- このページで作るのと同じもの.
- Rev.3 : inverting_opamp_tuto_rev3.zip
- DIP ICソケット(8pin)を使えるように改良したもの.
準備
KiCADのインストール
まずこれがないと始まらない.
https://www.kicad.org/download/ から自分の環境にあったものをダウンロードしてインストールする. ここでつまづくことはないはず.
必要な部品
今回の回路の作成に必要な部品は次. 秋月電子のリンクを貼っているので, 足りなければリンク先から購入可能.
その他
KiCADに限らず, CADの操作では中ボタン(マウスホイールのクリック)を使うことが多いので, マウスがあった方がよい.
KiCADによる回路デザインの流れ
KiCADを使った回路デザインの流れはこんな感じ.
- プロジェクトの作成
- 回路図の作成
- (Optional) SPICEで回路シミュレーション
- PCBデザイン
- Gerber ファイル, Drill ファイルを出力して, MITS基板加工機で基板作成 or 発注
プロジェクトの作成
632a77438921cae1727478f5
KiCADを起動すると次のようなウインドウが出てくるので, 左側のメニューの Create new blank project をクリックする.
適当なディレクトリに適当な名前でプロジェクトを作る.
下の画像の例では, プロジェクト名を inverting_opamp_tuto
としている.
Create a new folder for the project に ☑️ を入れると, 指定したディレクトリにプロジェクト名と同じ名前のディレクトリが新たに作られる(画像の例の場合, ~/Documents/KiCADProjects/
に inverting_opamp_tuto
という名前のフォルダが作られる).
Save をクリックすると, プロジェクトが初期化されて次のような画面になる.
回路図を描く
回路図エディタを起動する
Project Filesの <project name>.kicad_sch
もしくはウインドウ右側の Schematic Editor をクリックして回路図エディタを起動する.
白紙の回路図が現れる.
回路図エディタの操作
マウス操作:
- マウスホイールスクロール: ズームイン/アウト
- 中ボタンクリック+ドラッグ: 平行移動
よく使うキーボードショートカット:
a
: シンボル(部品)の追加p
: 電源系シンボルの追加w
: 配線r
: アイテムの回転x
: アイテムを横方向に反転y
: アイテムを縦方向に反転e
: シンボルを編集v
: シンボルの定数(抵抗値や容量など)を編集
シンボル(部品)の追加
まず初めに回路に使う部品を追加していく.
右側のツールバーの をクリックするか a
を押すと, シンボルを選ぶウインドウが現れるので, リストの中から目的のシンボルを探し出して, 回路図に追加する.
ウインドウ上部の検索画面にシンボルの名前やキーワードを入れると合致するものをフィルターして表示してくれる.
例えば,
- 抵抗 →
r
- キャパシタ →
c
- グラウンド →
gnd
グラウンドやPowerについては右側の Power Symbol( p
key )からでも追加できる.
今回使うオペアンプNJM4558もデフォルトでシンボルリストに入っており, njm
と検索すれば出てくる.
NJM4558は2回路入りオペアンプなので,
- NJM4558 A : オペアンプ1
- NJM4558 B : オペアンプ2
- NJM4558 C : +Vcc / -Vee
の3つのシンボルから構成される. 1回目のクリックでAが, 2回目のクリックでBが, 3回目のクリックでCが回路図に配置される.
今回使う部品を配置したら次のようになる(一部gndが足りてないけど).
シンボルの定数値の編集
まだシンボルを配置しただけなので, 抵抗値や容量といったシンボルの定数値を入力する必要がある.
シンボルをダブルクリックするかシンボルにカーソ ルを重ねて e
を押すことで定数値を編集することができる.
Kiloなどの接頭辞は以下が使える.
G
: GigaM
: Megak
: Kilom
: milliu
: micron
: nanop
: pico
配線
シンボルの配置, 定数値の入力が終わったので, シンボル同士を結んでいく.
( w
key ) をクリックすれば配線モードに切り替わる.
マウスを動かしてシンボル間の配線を行うだけ.
配線が終わったものが次.
シンボルにリファレンス番号を割り当てる
上部ツールバーの Fill in schematic symbol reference designators をクリックして R?
や C?
, U?
の ?
となっている部分に自動でリファレンス番号を割り当てる.
例) R?
→ R1
, R2
リファレンス番号割り当て後.
ERC(Electrical Rules Checker)で回路をチェックする
回路図は書けたつもりなので回路図の配線にミスがないかERC(Electrical Rules Checker)というツールでチェックする.
回路図エディタ上部の をクリックしてERCを開いて, Run ERC をクリックする.
ERCが問題のある箇所を示してくれる.
回路図上でも問題のある箇所を赤矢印で示してくれる.
今回問題になっているのは次の2点.
- NJM4558の使っていない2回路目の方に x 印(No Connection)をつけていない
- 電源系に
PWR_FLAG
をつけていない
1.はウインドウ右側のバツ印のアイコンをクリックして, No ConnctionをU1Bの5,6,7pinに付与すれば解決できる.
2.の問題はPpwer Symbolの中にある PWR_FLAG
を矢印で示された部分 GND
と U1Cの V+
, V-
に付与すれば解決できる.
PWR_FLAG
はKiCADに電源の配線を教えてあげるためのもので, エラーチェックに必要となる.
修正したものが次.
回路シミュレーション
KiCADにはSPICEが組み込まれており, 回路シミュレーションも可能である. ただ, 今描いた回路図そのままでが情報不足であり, SPICEを回すのは不可能である. SPICEを回すための情報をいくつか回路図に書き加えてやる必要がある.
ラベルの追加
まず, どこが入力でどこが出力かわかるように input
, output
ラベルを追加する.
右のツールバーの ( Ctrl + L
/ Cmd + L
) でラベルを追加できる.
入力信号の設定
SPICEでシミュレーションを回すための適当な入力を付け加える.
今回はsin波 sin(0 1 1k)
(オフセット電圧V0 = 0V, 振幅電圧VA = 1V, 周波数 FREQ = 1kHz) とする.
VSIN
というシンボルを回路図の適当なところに追加して, GND
, input
と接続する.
ここで, 回路図上のGNDをSPICEが自動的にGNDと認識してくれるわけではないので, 0
をGNDにつなげておく必要が必要がある点に注意(面倒).
Reference番号のアノテートも忘れずに.
電源系の配線
GND同様に, +15V, -15VもSPICEは自動で認識してくれるわけではないので, +15V, -15Vも明示的に回路図に描いてあげる必要がある(面倒).
VSOURCE
を追加して電圧値を書き込んで +15V
, -15V
, GND
と接続する.
Reference番号のアノテートも忘れずに.
SPICEモデルの割り当て
抵抗やキャパシタといった基本的なシンボルはデフォルトでSPICEモデルが結びつけられているが, オペアンプNJM4558やコネクタはSPICEモデルは結びつけられていないので, 自分でSPICEモデルを登録する必要がある.
NJM4558についてはメーカーが提供しているSPICEモデルを利用する. https://www.nisshinbo-microdevices.co.jp/ja/design-support/macromodel/ からNJM4558を探してダウンロードする.(NJM4558_v2_NewJRCという名前のファイル)
このモデルはどこに配置していてもいいが, とりあえず, プロジェクトディレクトリに配置しておく.
NJM4558のシンボルをクリックしてシンボルの編集画面を表示し, 編集画面の下部にあるSpice Model ...をクリックする.
Model タブを選択し, LibraryのSelect fileからダウンロードしたファイル郡の中の NJM4558_v2_NewJRC\njm4558_v2.lib
を選択する.
Modelは NJM4558
, Typeは Subcircuit
を選択し, OKをクリック.
NJM4558のSPICEモデルの登録はこれでOK.
あとはコネクタの処理をSPICEに教えればよいが, 今回はそれほど高周波を扱うわけでもないので, コネクタはSPICEには無視させる事にする.
シンボルの編集画面 > Spice Model を開いて, Disable symbol for simulation にチェック ☑️ を入れる.
これでSPICEシミュレーションの準備は整った.
SPICEシミュレーション
メニューバーの Inspect(検査) > Simulator をクリックしてSpice Simulatorを開く.
Sim Parameters > Transientで Time step, Final time, Initial timeを設定する.
左上のRun Simulation ▶️ をクリックしてシミュレーションを回し, Add Siganlsで波形をプロットする.
想定どおり10倍反転増幅アンプとして動作している.
以下, 設定を変えてSPICEで色々遊んでみた(意外とSPICEモデルが優秀だった).
AC解析するためには VSINの編集画面 > Spice Modelを開いて,
- AC magnitude = 1 (V)
- AC Phase = 0
のように入力する.
Sim Parameters で次のように入力すればAC解析ができる.
フットプリントの割り当て
回路図だけでは, 回路図上の抵抗がスルーホール抵抗なのかチップ抵抗なのか, そのサイズはどのくらいなのかといった事は分からない. しかし, 回路記号で表されている部品が実際にはどういった部品なのか(そのサイズや形状)といったことを知っていないとPCBのデザインはできない.
そこで, KiCADでは回路図を描いた後に, 回路図の記号にフットプリントを割り当てる. フットプリント=PCBの上に投影した部品の形のようなものなので, シンボルにフットプリントを割り当てることはそのシンボルに対応する部品の物理的な形状を指定する事に等しい.
一般的なスルーホール抵抗とそのフットプリント.
DIP-8パッケージとそのフットプリント.
ウインドウ上部の Assign Footprints をクリックする.
次のようなウインドウが開くので, それぞれのシンボルにフットプリントを割り当てていく. フットプリントの数は膨大なので, フィルターをうまく使って目的のものを探し出す. フィルターされたフットプリントが右側のペーンに表示されるので, シンボルを選択した上で目的のフットプリントをダブルクリックする事でシンボルにフットプリントをアサインできる.
ちなみに THT はスルーホール, SMD は表面実装の意味.
Filtered Footprintsで右クリック>View Selected footprintでフットプリントのプレビューを見ることもできる.
SPICEシミュレーションのために回路図に書き込んだVSIN, +15V, -15VはPCBデザインには使わないので, シンボルの編集画面で Exclude from board にチェック ☑️ を入れて無視する.
今回は, 次の表のようにシンボルとフットプリントを対応させ, OKをクリック.
Ref | Val | Footprints |
---|---|---|
C1 | 0.1u | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm |
C2 | 0.1u | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm |
J1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Horizontal |
J2 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Horizontal |
J3 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Horizontal |
R1 | 18k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal |
R2 | 180k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical |
U1 | NJM4558 | Package_DIP:DIP-8_W7.62mm |
PCBデザイン
PCBレイアウトエディタの起動
回路図エディタの右上の緑のPCBのアイコン をクリックしてPCBレイアウトエディタを起動する.
レイヤー
F. で始まるものは表面, B. で始まるものは裏面に対応するレイヤーを意味する.
次のレイヤーを知っていれば大体なんとかなる.
- Cu : 銅箔レイヤー. フットプリントをつなぐ配線を描くレイヤー.
- Silkscreen : シルク. 文字やフットプリントを書くレイヤー. よく見る緑の基板に入っている白い文字. MITSの基板加工機では残念ながらシルクの印刷はできない.
- Edge. Cuts : 基板外形や穴を描くレイヤー. 切る 作業に関するレイヤー.
PCBレイアウトエディタの操作
マウス操作:
- マウスホイールスクロール: ズームイン/アウト
- 中ボタンクリック+ドラッグ: 平行移動
よく使うキーボードショートカット:
a
: フットプリントの追加x
: トラックの追加Ctrl + Shift + v
/⌘ + Shift + v
: 孤立viaの追加r
: フットプリントの回転f
: 選択したフットプリントを表面/裏面に移動させるv
: Cuレイヤーの切り替えe
: フットプリントのプロパティを編集
基板, レイヤー設定
をクリックすると, 基板の設定画面が開く. Board Stackup > Physical Stackup から, 基板のレイヤー数や基板厚を設定できる. 2レイヤー, 厚さ1.6mmの基板を設計する場合, デフォルトの設定のままで問題ない.
線幅などのデザインルールも Design Rulesから設定変更できる.
MITS ElevenLabを使う場合はデザインルールを
- 線幅 ≥ 0.8mm (線が潰れたりするかも)
- 穴径 ≥ 0.3mm (今あるドリルの最小径は0.3mm)
- Viaサイズ ≥ 0.8mm (潰れたりするかも) としたほうが良い.
回路図を反映させる
PCBレイアウトエディタにまだ回路図を反映させていない, あるいは回路図に変更を加えたときは, 上部ツールバーの Update PCB with changes made to schemantic ( F8
key) をクリックして, PCBに変更を反映させる.
PCBに回路図を反映させると, 回路図エディタで指定したフットプリントが適当に配置される. 回路図上で繋がっていた部品, ピン同士は細い線で繋がれている.
基板外形
Edge.Cuts レイヤーを選択し, 右側のツールバーの図形描画ツールを利用して, 基板の外形を描く.
マウントホール
Edge.Cuts レイヤーに移動し, Add a footprint ( a
key)をクリックする.
フットプリントリストの MountingHole
の中から目的のものを選んで好きな場所に追加する.
マウントホールのPadをクリックしてNet NameをGNDを意味する0に設定すれば, 後でベタGNDを作成するときにGNDと繋いでくれる.
フットプリントの配置
マウスでドラッグして, フットプリントを好きな位置に配置する.
r
で回転, f
で表面/裏面へ移動ができる.
適当に配置したものがこちら.
配線
F. Cu か B. Cu レイヤーを選択して細い線で繋がれているフットプリントを Route Tracks ( x
key)でつなぐ.
v
keyで F .Cu と B. Cu を行き来できる.
フットプリントをつなぐ細い線がなくなると全て繋ぎ終わった合図.
ベタGNDの作成
右ツールバーの< Add a filled zone をクリックする.
鉛筆形のカーソルに変化するので, ベタGNDにしたい範囲の始点をクリックする.
クリックすると, Copper Zone Propertiesというウインドウが開くので, ベタGNDを作成したいレイヤーを選択, Netリストから 0
または GND
を選択してOKをクリックする.
あとは基板外形を描く時と同じ要領でベタGNDを作成したい範囲を囲む.
囲み終わったら, を右クリックしてFill All Zonesをクリックする (or b
keyを押す).
これでベタGNDが作成される.
今回はGNDラインの配線を行なっているが, ベタGNDがGNDネットを自動的に結んでくれるので, ベタGNDを作成するときはGNDの配線を行う必要はない.
シルクにテキストを追加する
所属とかデザインした年, バージョン情報をシルクに書き込みたいという場面は多い. F. Silkscreen or B. Silkscreen レイヤーに移動した後, Add a Text Item で好きな場所にテキストを追加できる. ソルダーレジストを塗布する場合, 部品やパッドにかぶっていなければ(配線と被っていても)問題ない.
シルクにロゴを入れる
かっこいいロゴを作ってしまった場合, 基板にもロゴを印刷したくなるのが人間の性.
今回は京大のロゴをシルクに入れてみる. KiCADのLauncherから Image Converter を起動する.
Image ConverterのLoad Bitmapから画像を開く.
対応フォーマットは調べていないが, png
や jpg
は読み込める.
Sizeを調整した後, Output Format で Footprint(.kicad_mod file) を選択してエクスポートする. 何回も使うならファイルに書き出したほうが良いが, そんなに使うことなさそうなので, クリップボードにエクスポートする.
PCBレイアウトエディタに戻ってきて, シルクのレイヤーでロゴを貼りたい場所にペースト(Ctrl + V
/ ⌘ + V
)する.
チェック
PCBデザインが一通り終わったら, 回路図のときと同じように問題がないかチェックする.
上部のツールバーの をクリックして, DRC(Design Rules Checker)を開いて Run DRC をクリックして問題(配線忘れなど)がないかチェックする.
View > 3D Viewer ( Alt + 3
/ Option + 3
) でデザインしたPCBを3Dでグルグル回しながら見ることができる.
MITS ElevenLabで基板を製作
注意点
MITS Eleven Labを使う場合はデザインルールを
- 線幅 ≥ 0.8mm (線が潰れたりするかも)
- 穴径 ≥ 0.3mm (今あるドリルの最小径は0.3mm)
- Viaサイズ ≥ 0.8mm (潰れたりするかも) としたほうが良い.
線やパッドの間隔が狭い場合, MITS基板加工機は線やパッドを分離できないので注意.
Gerberファイルの出力
まず, MITS ElevenLab用のConverterが読めるフォーマットでPCBレイアウトのデータを出力する. MITSのConverterはDXF, Gerberを読めるが, 今回はGerberを利用する事にする.
PCBレイアウトエディタで File > Plot をクリックする.
Plot formatで Gerber を選択して Plot と Generate Drill Files をクリックして, 適当な場所にGerberファイルとDrillファイルを出力する.
基板を作る
MITS ElevenLabを使った基板の加工についてはここでは割愛(資料自体は作ってあるのでアップロードしたい).
MITS ElevenLabで作った基板が次.
この基板に部品を実装したものがこちら.
この回路を実際にテストしてみた. SPICEのシミュレーション結果とおおよそ同じ振る舞いを示している.