ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

KiCadのSpice機能で外部モデルを読み込む方法

以前KiCadのspiceに関してこういう記事を書きました。
gsmcustomeffects.hatenablog.com

この記事では導入ぐらいしかやっていなかったので今回はメーカー配布のSpiceモデルの入れ方とかを書こうと思います。

導入

今回は1回路入りのTL082というものを使いますから
Texasinstrumentsのサイトからモデルをダウンロードします。

www.tij.co.jp

f:id:gsmcustomeffects:20180429195856p:plain

ダウンロードすると拡張子が303みたいになってると思うので適当なエディタで開き名前を付けて保存で.lib拡張子に変更します。

f:id:gsmcustomeffects:20180429200011p:plain

ここまででとりあえずは準備が完了です。

KiCadで読み込む

まずオペアンプを配置します。
普通にTL081のシンボルはあるのでそれを配置します。
ここでSpiceのピン数とシンボルのピン数、ピン配置を合わせないとエラーになるのでこのようにピン数とピン番号を編集します。
ここでは既存ライブラリを編集してしまっているため別名でバックアップを取っておくといいかもしれません
KiCad側がPspiceのICモデルを追加してくれれば何の問題もないんですがね・・・・・
f:id:gsmcustomeffects:20180429200715p:plain

まあシンボルをいじるとそのまま設計に支障が出るのでモデル側でピン位置をいじるのもいいと思います。
KICadの場合 フットプリントと割り付けるためシミュレーションに使わないピンも配置する必要があるためエラーになります。
僕はSpiceモデルにあまり詳しくないのでNCピンとかを増やす方法が何かあれば教えてください。

次にSpiceモデル編集を開きます。
f:id:gsmcustomeffects:20180429210020p:plain

ここでTL081.libを読み込みます
オペアンプはTrモデルの寄せ集めなのでサブ回路扱いになりますのでそれを選択します。
f:id:gsmcustomeffects:20180429201410p:plain

回路を書いていく

今回は普通の反転増幅回路を使うのでこのような回路を使います。
f:id:gsmcustomeffects:20180429200342p:plain

各種電源の設定はこのようになります。

V1:+9V
V3:-9V
V2は信号源なのでこのようにしました。
f:id:gsmcustomeffects:20180429202318p:plain

ここで終わりましたらアノテーションをします。

シミュレーションの設定

上記メニューからツール/シミュレータをクリックします。

そうするとこのような画面が出てきます。
f:id:gsmcustomeffects:20180429202547p:plain

ここでシミュレーションの設定をします。
今回はAC解析をするのでこんな感じで適当に設定します。

f:id:gsmcustomeffects:20180429202948p:plain

AC解析

あとは実行をクリックしてプローブボタンでみたい位置をクリックするとシミュレーションできます。
f:id:gsmcustomeffects:20180429203015p:plain

だいたい3MHzがユニティゲイン帯域幅なのでまあおおまかにあってはいるかと思います。

過渡解析

次に肝心な波形シミュをしていきます。

設定で過渡解析メニューで設定をします。
今回は入力周波数が1000Hz(200mV)なのでこのぐらいでいいかと

f:id:gsmcustomeffects:20180429203425p:plain

結果がこのようになります。
50Kと10Kで増幅回路組んでるのでだいたい5倍ちょい位の増幅になってると思います。
f:id:gsmcustomeffects:20180429203732p:plain
あと他に調整という機能がありましてそこで抵抗値のリアルタイム変更ができます。
保存を押すと回路図に反映させることができるのでフィルターのセンター周波数の決定とかには役立つのではないでしょうか?

まとめ

  • 外部モデルでのシミュレーションができた
  • ピン数、ピン番号がKiCadとSpiceモデルで違うので問題がある。
  • 既存でICモデルがないので何か一つSpice用のICシンボルを作る必要がある。

まあざっとこんな感じ
ベストなルーチンだとシミュレーションしてそのままレイアウト設計に行きたいので既存モデルのピン配置をそのまま使ってシミュレーション回せるようになれば完璧だと思う。
あとポテンショメーターだったりspice directiveを用いたパラメトリック解析はまだやっていないのでやってみたいと感じた。

まあ使いこなせれば便利な機能なので皆さんも試してみてください。