概要
KiCadに電子回路シミュレーションであるngspiceが付属しています。あまり使い方の情報が無いので基礎的な使い方を調べてみたいと思います。
ngspiceとは?
カリフォルニア大学バークレー校で開発されたSPICEという電子回路シミュレーションから派生したアプリケーションとなります。アナログ・デバイセズが開発したLTspiceが有名で、日本ではあまりngspiceの情報はありませんでした。
ngspiceの使い方
KiCad6には最初から入っており、そのまま使うことができます。ただし、情報が少ないのでLTspiceと連携させている例が多いです。

回路は後ほど説明しますが、上記のように回路を書いてからすぐにシミュレーションが可能です。

検査の中にあるシミュレーターを呼び出すだけです。

こんな感じで分析をすることができました。
抵抗を分析してみる

先程の回路図に戻ります。
電源

いろいろな電源がKiCadにはありますが、ngspiceで利用できるものには制限があります。基本的にはSimulation_SPICEにあるものから選択するのが無難です。普通の電源の場合にはVDC、パルスの場合にはVPULSEを選択します。

VPULSEのプロパティです。アノテーションでV1に名前を自動割当した状態です。この状態で「Spiceモデル…」のボタンを押します。

ここがパルスの設定になります。
項目 | 説明 |
---|---|
初期振幅幅 | パルスオフの電圧 |
パルス振幅幅 | パルスオンの電圧 |
遅延時間 | 最初の電圧が出るまでの時間 |
立ち上がり時間 | パルスが立ち上がる時間 |
立ち下がり時間 | パルスがたち下がる時間 |
パルス幅 | パルスオンの時間 |
周期 | パルスの周期 |
上記の設定項目になります。

たとえば上記の設定をした場合。

こんなグラフがでます。

今回は0Vから3.3Vまでのパルスで、遅延と立ち上がりと立ち下がりは無し、500uの幅で1m周期にしました。

上記のようにpulseのところにシミュレーションで使うパラメーターが表示されています。
抵抗の設置

抵抗は通常のdeviceのでも構いません。

pspiceにもシミュレーション専用の抵抗があります。

並べてみるとpspiceの抵抗は長いです。どちらでもよいので私は普通のRを使っています。

抵抗値はいつものところで設定します。気をつけないと行けないのはRの文字が使えません。20Rと指定するとパースエラーになってしまいます。

あと注意することはspiceは単位記号の大文字と小文字を区別しません。2Mと記述した場合には2mと判定されて0.002になります。2MEGと指定することで2,000,000になります。
GNDの設置

必ずGNDはどこかに接続してください。接続していないと分析結果がおかしくなります。エラーにならない場合があるので非常にはまりポイントです。
シミュレーション起動

起動すると何も表示されませんが、これが正常です。

まずはパラメーターを指定します。いろいろタブがあるのですが「過渡応答」を今回使います。

英語だとTransientですね。内容的には時間経過での分析になります。時間ステップで分析をする時間間隔を指定します。今回1u(1マイクロ秒)にしました。最終時間は何秒まで分析するかで、2m(2ミリ秒)にしました。初期時間は何秒から開始するかで0で最初から分析します。

この状態で実行ボタンを押すと、、、何も表示されません。下のウインドウに実行結果が表示されています。エラーがある場合にはここにわかりにくい文言で表示されます。

最初に行うのは「信号を追加」です。上記のウインドウがでるので必要そうなものをダブルクリックすると追加されます。

追加されました。左軸が電圧で、右軸が電流です。両方同時に表示するとわかりにくいですね。信号の部分をダブルクリックすると消すことができます。

今回電圧はパルスで変動する要素がないので抵抗に流れた電流をみてみます。一度でも電圧を表示すると左側に電圧のメモリが出たままになります。

一度消してから分析しなおすと右側の電流メモリだけになります。

あと個人的には「白地」、「凡例を表示」はオンにしたほうが好きです。このへんは好みで表示を切り替えてください。ただし「白地」は保存されるのですが「凡例を表示」は毎回オフになるので追加するのが面倒です。

あと信号の右クリックからカーソルを表示できます。

カーソルは移動できるので、横に移動することでそのときの値が表示されます。

3.3Vで20Ωの抵抗ですので、流れる電流は165mAで正しい分析ですね。
条件の保存
さて、何度かシミュレーションをしていると毎回「過渡応答」の設定をするのが面倒になってくるはずです。これを回路図からパラメーターを渡す方法が実はあります。

SPICEネットリストを表示します。

よくわからない設定値が出てきました。これがspiceの内部で利用している設定ファイルになります。

この文字列をベタッと回路図のテキストで書き込みます。

シミュレーションのパラメーターのカスタムに表示されたのが回路図から渡せるパラメーターになります。

シミュレーションを起動した段階で「過渡応答」に値が入っていました。
.tran 1u 2m 0
つまりこの文字列のみが必要なコマンドであることがわかります。

実は最初の画面にあった説明していない文字がこのパラメーターになります。本当はspiceのドキュメントからこの情報を調べればいいのですが、結構たいへんです。今回の方法で確認したほうが安全ですし、渡せないパラメーターが結構あります。とくにLTspiceとはちょっと違うのが面倒なところです。
まとめ
情報がすくないのですが、利用できると結構便利だと思います。ただし、KiCADで分析したものはそのまま基板作成には使えません。がんばれば大丈夫なこともあるんですが、ハマりポイントが多いので分析は分析用の簡易化した回路図で別に利用するのがおすすめです。
コメント