74HCU04のSpiceモデル

個人的なメモです。

Spiceシミュレーションをする際、デジアナ混在、或いはインバータを使って発振をするような場合に74HCU04のモデルが欲しいなと思ったことは何度かあります。

NXPあたりでもIbisやSpiceモデルを公開しています。

74HCU04: Hex unbuffered inverter

 

以前は登録が必要だった気がします。.cirとして内部でサブサーキットとして記述しているようで面倒だなと思ったら、.lib形式で個人で公開されている方がいました。

http://www.analog-innovations.com/

”Device Models, & Subcircuits” のリンク内に色々公開されています。

HCU04もCMOSで作っているので、使えそうです。

KicadとLTspice(回路シミュレータ)の連携(6)ブロック毎のシミュレーション

もう良いんじゃね?という声が聞こえてきそうですが、もう一つシミュレーション関連のTipsです。

勘の良い方はタイトルを見てピンと来たかもしれません。製品の回路図には当然様々なブロックが載っていますが、シミュレーションをかけたいのはアクティブフィルタの部分だったりDC-DC電源の部分だったり、幾つかあると思います。

結局それぞれのブロックごとにシミュレーションをかけるので(また回路設計者と基板設計者が別、或いは会社のシステム云々という理由もあるかもしれません)、LTSpiceその他のシミュレータソフト側で回路図を描いてシミュレーション、回路が決まったら製品の回路図に展開というのが今までの流れではないでしょうか。

KiCadでは、回路図シートの中に回路図シートを設ける「階層構造」を持つことが出来ます。そしてこの階層ファイルは、「実際に別のファイルを紐付け」しています。(プロジェクトフォルダ内に別名の.schファイルがあるので分かります。)

という事は、紐付けされたそれぞれの子ファイルから単独でネットリストを吐き出せば、ブロックごとにシミュレーションが可能になり、回路図の二度打ちを本当になくす事が出来ます。

ということで、demoフォルダの幾つかのプロジェクトファイル、自作プロジェクトファイルの子ファイルを直接C:Program FilesKiCadbinEeschema.exe(Windowsの場合)で開き、ネットリストを抽出したところ、確かに子ファイルのみのネットリストが作成されました。

後は子ファイル内のSpice用のシンボル対応や、制御構文を書くだけですので、本ブログに書いて手順でイケる筈です。回路図の二度打ちが無くなると本当に楽ですね。KiCadどれだけ凄いんでしょうか。

階層ファイルについても色々Tipsがありますが、まだ後日まとめます。

※子ファイルを直接Eeschemaで呼び出す事は問題ないか、(特に問題ないと思いますが)一応開発MLに質問してあります。回答が届きましたらこちらでご連絡します。

 

KicadとLTspice(回路シミュレータ)の連携(5)FFT解析

KiCadのTipsというよりもLTSpiceでの.cirファイルのTipsに近いので、もう終わりにしようかと思いましたが、もう少しだけ書き足します。

AC解析、過渡解析と来れば次はFFT解析です。

前々回の記事で使用したプロジェクトファイルから作成した 555_ltspice.cir を使って、FFT解析を行います。作成されていない方は上記ファイルをダウンロードしてご使用下さい。

1.ダウンロードしたファイルをLTSpiceで開き、上部メニュー左から五番目のアイコンを押して解析を実行します。

2.上部メニュー「View」から「FFT」を選択します。
LTSpice_fft_1

 

3.設定ダイアログが開くので、解析したいノードを選択します。ここではV(/pwm)を選択しました。サンプル数、解析にかける時間の区間、窓関数などが選択できます。ここでは「ハニング窓」を選択しています。窓関数については詳しくないので、専門の方に委ねさせて頂きます。
LTSpice_fft_2

 

4.下図のように結果が表示されます。
LTSpice_fft_3
また、画面上右クリックで「Manual Limits」をクリックする事で軸設定を変更できます。

PS.今回もファイルをダウンロードされた方は下の「ツイート」「いいね」をクリックして下さると嬉しいです。

KicadとLTspice(回路シミュレータ)の連携(4)サブ・サーキット

前回の記事ではOPAMPのAC解析を行いましたので、今回はトランジェント解析をやってみます。
タイマーIC、NE555を使ってPWM回路を作り、トリガー電圧、ACサイン波入力、ディスチャージ端子、出力波形を追ってみます。
今回もプロジェクトファイルを作りましたので良かったらダウンロードしてみてください。
敢えてエラーを残してある箇所がありますが、後ほど説明します。
kicad_ltspice_ne555_pwm.zip
ファイルを展開し、.schファイルを開くと図のような回路が表示されます。
555は最初からEeschemaにあるライブラリファイル”linear”内の”LM555N”を使用しました。電圧源は、”電源” “トリガー電圧” “モジュレーション電圧(sin波)”の3つです。sin波の電圧源はAC解析の時には”AC”という属性でしたがトランジェント解析の時には”SIN”となります。各電圧源の設定をコメント表記していますので参考にしてみてください。
kicad_ltspice_ne555_1
前回同様、ネットリスト出力を行い、作成された.cirファイルをLTSpiceで開きます。
kicad_ltspice_ne555_2
“LM555Nがありません”というようなメッセージが出ていますので修正を行います。LTSpiceのライブラリディレクトリの内”sub”フォルダを検索すると、下図のように”NE555.sub”というのがありますので、これを使います。
ltspice_sub_1
ここで.subというファイルが出てきましたが、spiceでは回路の1ブロックを”サブサーキット”として扱うことが出来ます。各社が提供しているspiceモデルを.sub形式に変換できれば、それも使用できそうです。
という訳で、.cir内の”LM555N”を”NE555″に書き換え、”.lib NE555.sub”の行を加えてNE555を認識させて再実行します。今度はちゃんとグラフウィンドウが開くと思います。
kicad_ltspice_ne555_3
グラフウィンドウ内で右クリックして、”Visible Traces”で電圧ノードを選択すると数のように結果が表示されます。
kicad_ltspice_ne555_4
少し見難いので、トリガー電圧を非表示にして見ます。グラフウィンドウ内で[Del]キーを押すとマウスカーソルがはさみの形になります。この時にウィンドウ内の赤い文字”V(/trig)をクリックすると、トリガー電圧の波形が消えます。入力電圧とディスチャージ端子電圧、出力波形の関係が良く分かります。
kicad_ltspice_ne555_5
テキストウィンドウで入力電圧を変化させて再実行すると波形も変化します。.subファイルさえ手に入れば、LTSpiceの回路規模無制限というメリットを合わせて、もっと規模の大きい回路もシミュレーションでき、しかもそれが直ぐに基板に展開できるのは凄いですね。
ps.ダウンロードされた方は、この下にある「ツイッター」「いいね」など押して頂けると嬉しいです。

KicadとLTspice(回路シミュレータ)の連携(3)

画面を見てるだけでは分かりにくいと思いますので、下記リンクにLT1208を使用したKicadのプロジェクトファイルをアップロードしました。KicadとLtSpiceをインストールした後に、こちらのダウンロードボタンを押してプロジェクトファイルを開いてみてください。
kicadプロジェクトファイル-LT1208シミュレーション用
kicadを立ち上げて解凍されたlt1208_ltspice.pro(.sch)を開きます。今回は、spice用に作成したオペアンプのコンポーネントを同梱しています。基板設計時にはピン配列を元に戻すため、「For SPICE」のコメントを入れたコンポーネントを作成しました。
kicad_ltspice_sim_lt1208_1
左側に正負電源、その右にAC解析用の信号源とLT1208を使用した回路を配置しています。
青い枠の中がspiceの制御構文で、”+PSPICE”の部分はこの分がSPICE制御構文であることを宣言するためのものです。その後LTSpiceのライブラリパスの指定、AC解析実行と進みます。”.print”の部分は結果表示の部分ですがLTSpice側で本当に必要なのか良く分かりませんでした。
またその他の青文字は信号源の設定内容をコメントで記しているだけで、SPICEの動作には関係ありません。
次に、前々回の記事の手順でSpiceネットリストを作成し、作成された.cirファイルをLTSpice側で開きます。
kicad_ltspice_sim_dialog
.cirファイルがテキスト表示されたら、左から5番目のアイコンをクリックしてシミュレーションを開始します。”V/”で始まる項目を選択すると、テキスト画面の上部にグラフエリアが表示されるので、右クリック後に”Visible Traces”で表示項目を選択します。これで振幅と位相特性が表示されていると思います。
kicad_ltspice_sim_lt1208_2
グラフが重なって見にくいときは、右クリック後に”Add Plot Pane”をクリックするともう一つグラフエリアが作成されます。
さらに、画面下のテキストエリアを編集することで、再度シミュレーションを実行できます。この際にはいちいち保存しなくても大丈夫です。下の画面ではC2の値を変えているので、位相特性が変化しています。
kicad_ltspice_sim_lt1208_3
部品の値や入力信号の大きさもテキストエリアで修正し、すぐに実行できます。
パラメータを変化させて一括表示なども出来るのかもしれませんが、そこまで出来なくても十分高機能だと感じます。
ps.ダウンロードされた方は、この下にある「ツイッター」「いいね」など押して頂けると嬉しいです。

KicadとLTspice(回路シミュレータ)の連携(2)

LTSpiceとの連携の前に、EeschemaでSpice用のコンポーネントがどのように作られているかを見てみます。
具体的な事例がないと分かりにくいので、Kicadインストールディレクトリ内の /share/demos/pspice/pspice.pro(.sch)を例にしてみます。Eeschemaを開くと下図の回路図中に信号源とGNDのシンボルがあります。
kicad_pspice_sch0622
この図で使用しているGNDコンポーネントは、Kicadに添付されているライブラリファイルpspice.lib内の”0″という
コンポーネントです。
kicad_pspice_symbol_0622_1
コンポーネントのプロパティを確認すると、下図の赤枠の中で”チップ名”(chip name)と”定数”(Value)に0が設定されています。これによりGND電位を0Vと設定しているようです。
kicad_pspice_symbol_0622_2
次に信号源V2のプロパティを見ると、”チップ名”(chip name)に”VSOURCE”が、”定数”(Value)に”AC 0.1″が設定されています。ここで、交流電圧源0.1Vの設定をしています。
kicad_pspice_symbol_0622_3
同様に信号源V1は”VSOURCE”、”DC 12V”と設定されています。回路の電源電圧はこれで指定すれば良さそうです。
kicad_pspice_symbol_0622_4
これで、信号源とGNDの設定が大体分かりました。シミュレーション終了後、実際の基板設計に入る際にもしかしたらこれらのコンポーネントを通常のコンポーネントにを置換する必要があるかもしれませんが、これについては別途確認することにします。

KicadとLTspice(回路シミュレータ)の連携

KicadのEeschemaには、回路シミュレータ用のネットリストを出力する機能があります。単独の回路シミュレータもGUIを装備しているものが殆どだと思うので、(回路シミュレータも装備している高額CADを除いて)シミュレーション後に再度基板CADに入力することになります。
今回、Kicadで出力したネットリストを、LTspiceに読み込んでみました。
初めてなので、インストールディレクトリ内の”KiCadsharedemospspicepspice.sch”を修正して使用します。
下の図は試しに描いた回路図です。
Kicad_simulation_1
オペアンプLT1012を使用し、マイナス電源はプラス電源をコピーして修正しました。各ネットにはネット名のラベルをつけてわかり易くしています。
青枠内のテキストがSPICEの制御構文です。いろいろな構文を書いておいて、不要な部分はLTspiceに読み込んだ後にコメントアウトする事にします。SPICEについては以下のURLを参考にさせて頂きました。
HSPICEの使い方 ~SPICEネットリストの書き方~
回路図作成後、”Prefix refarences…”の項目にチェックを入れてネットリストを出力します。
Kicad_simulation_2
“ファイル名.cir”というネットリストが作成されますが、ここでオペアンプのピン番号(ネットリスト上の順番)を確認します。SPICEでのピンの順番と実際のパッケージのピン番号が違いますので、「非反転入力」「反転入力」「プラス電源」「マイナス電源」「出力端子」の順に並べ替えます。(今回は手修正しましたが、頻繁に使う場合にはSPICE用のコンポーネントを作成した方が良いかもしれません)
Kicad_simulation_3
上の図で制御構文の”.lib LTC.lib”はLTspiceライブラリのパスの記述です。”.tran”の前に”*”をつけてトランジェント解析をコメントアウトし、AC解析のみを実行させます。
次にLTspiceを起動し、”File”→”Open”でSpiceネットリストを開くと、解析をしたいノード電圧、電流などを聞いてくるので選択します。(下図)
Kicad_simulation_4
するとグラフのウィンドウが開くので、右クリック→”Visible trace”で表示する項目を選択します。
Kicad_simulation_5
解析結果が以下のように表示されます。
Kicad_simulation_6
シミュレーションだけならKicadを持ち出す必要もないですが、Kicadには回路図と基板のクロスプローブ機能(EeschemaでC1を選択するとPcbNewでC1に移動する)があるので、上記のような使い方も良いと思います。
最終的には使う人の好みですね(^^)
フィルタやDC-DCコンバータの設計、また一般的なトランジスタのSPICEモデルなどが使えたら、とても幅が広がるので、もう少し勉強してみたいと思います。

(2012年06月26日 18:04 追記)
この記事のOPAMPピン板指定の順番が違っていましたので訂正しました、正しくは「非反転入力」「反転入力」「プラス電源」「マイナス電源」「出力端子」です。公開しているOPAMPシミュレーション用のプロジェクトファイルは最初からこのようになっていますので、ダウンロード済みの方もそのままお使い頂けます。