どうもミソジです。
今回はLTSPICEでI2C,UART,SPIシミュレーションを行う過程の記事LTSPICEでI2C,UART,SPI等のシミュレーションをしてみた_モデル準備編」を紹介します

前回まで実際にラズベリーパイとI2C複数デバイスをつなげてアナライザを使って波形を見ていましたが、今回はLTSPICEでI2C等のシミュレーションを行う事前準備をしたいと思います。

前回記事のリンクはこちらです
sP_20180401_135924.jpg


目次
1.LTSPICEのI2Cのモデルを用意するには
2.IBISモデル⇒SPICEモデルの変換の仕方
3.変換するIBISモデルを拾ってくる
4.SPICEモデル頑張って作ってみた
5.SPICEモデルをLTSPICEで使えるように整える
6.まとめ・感想


1.LTSPICEのモデルを用意するには

はい、いきなり最難関の項目ですね。
LTSPICEでI2C,UART,SPIなど評価する際に一番難しいことと言えば「モデルを用意する」ことに尽きると思います

LTSPICEのデフォルトではCPUやI2C,UART,SPIのEEPROM,センサ等は有りませんので自らモデルを用意するしかありません。

またLTSPCIEに直接使えるCPU,I2Cデバイスの「SPICEモデル」はネットを探してもほとんど無いのが現状だと思います
i2c100.PNG


しかしデバイスメーカはLTSPICEには直接は使えないですが「IBISモデル」を提供しているケースはよくあります。下記例はI2CのEEPROMの例です
i2c112.PNG


そのため今回は「IBISモデル」⇒「SPICEモデル」に変換してLTSPICEでシミュレーションを行って行きたいと思います

2.IBISモデル⇒SPICEモデルの変換の仕方
この章に関しては詳細に書き出すとまとめきれないので今回は概要を記載しときます。(また詳細版は違う記事を起こしたいと思います)

※筆者もシミュレーションの専門家ではないので、あくまで個人的な遊びのシミュレーションということでお願いします

筆者が調べた中では2つほど変換ツールを見つけれました。

結論から言いますと今回は②の「IBIS-PSpice Converter Ver 3.0」を利用してIBISモデルからSPICEモデルを作ってみました

①IBIS2SPICE
IBISの本家HPであるIBIS Open Forumにも記載がありました。ここのサイトはIBISの規格書などがあり勉強になると思います。下記のようにIBIS自体の構成など書いてあります
ibis2.PNG

この中の「FREETools」紹介されているツールが下記のIBIS2SPCICEになります。
名前と電話番号アドレスなど適当に登録すれば使えてダウンロードできました

但し無料で公開されているのはIBIS_Ver1.1,2.1と大分古いようですソフトとしては1998年に作られたものが公開されているようです。(現在201805時点の最新IBISのVerは6.1ということです)
ibis1.PNG

多分これでも単純なI/Oは変換できそうですが、他にないか他にも探してみました

IBIS-PSpice Converter Ver 3.0
ネットでも結構探していましたが「①以外の変換ツールが見つからない…」と思っていましたが以前買った2017年10月のトラ技の付録CDに載っていました!その時の記事はこちらから
sP_20171002_043323.jpg

付録のDVDにプリント基板開発のツールが沢山入っていました。


いざ開いてみるといきなりポップアップが出てきて
ibis4.PNG

対応している形式としては「I/O」「3-state」のみということですがIBIS Ver3.2まで対応しているということです。

現状のデバイスではよく見かけるのはIBIS Ver4.2ですが、まぁ「I/O」と「3-state」は昔からあるIOタイプだからなんとかなるでしょう(と適当な筆者な考えです。まぁプライベートのシミュレーションということで見逃してください)

ibis5.PNG

作成されたのは2005年ですが北海道大学の吉川先生という方が作ってくれたようです。

日本人が作成してくれて少なからず日本の注記も多少有り、①のツールより取っ掛かりやすかったです。

大変便利なツールを残していただき、吉川先生にはこの場を借りてお礼を申し上げます。


3.変換するIBISモデルを拾ってくる

今回はI2Cのマスター側となるCPU、スレーブ側のデバイスのIBISモデルを例にしてみました。どこからか拾ってくる必要がありましたのでネット上で探していきました。

(1)CPUのIBISモデル
最初はラズベリーパイのCPU(Broadcom BCM2837等)のIBISモデルを使おうとしていましたがが見つからず…。
sP_20180512_095551.jpg

そのためI2CのIFを持っているCPUを適当に探します。IntelとかTIなどが登録無しにIBISモデルを簡単にダウンロードできるので、今回はTIの「AM3352」というものにしました。TIのリンク先はこちらからです。

ラズベリーパイのように小さいボードの「BeagleBone」で使われているCPUです。



上記をラズベリーパイの代わりに見立てて使いたいと思います。
Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品
Raspberry Pi
2016-02-29




※本来は筆者が持っている安いマイコン(MSP430)の軽いデータ量のIBISモデルを持って来ようと思ったのですが、無かったです。
sP_20180512_092731.jpg
TI掲示板見るとメーカ曰く、「もっと高速通信をするデバイスじゃないとIBISモデル要らないでしょ」という感じでした。掲示板リンク先はこちらから


(2)I2Cのスレーブ側となるデバイスのIBISモデル

こちらに関しては以前から使っているEEPROMのIBISモデルがありました。リンク先はこちらから
ibis6.PNG
EEPROMの詳細は下記となります。
EasyWordMall AT24C256 I2C インターフェースEEPROMメモリモジュール
Apple Trees E-commerce co., LT






「スポンサーリンク」



4.SPICEモデル頑張って作ってみた
先ほどIBISモデルは手に入れたのでSPICEモデルを作っていきます
正直なところツール使ってのIBIS⇒SPICEモデル変換も一筋縄ではいきません

特にCPU等は変換途中でエラーが沢山出ますので対応して狙ったモデルを変換するようにIBISモデルを弄る必要があります。
ibis7.PNG
ここは地道な作業ですが、IBISファイルをテキストエディタを見つつ変換に必要・不要な箇所を修正していきましょう

(特にCPUは細かい設定が多々あるので大変です)。まずは変換したいピンのモデル名を見て原因を追っていきます
i2c37.PNG

今回はモデルに細かな設定があったのでツールが変換できなかった様子です
必要ない細かい設定名はツールが迷わないように一旦削除してしまいましょう
i2c38.PNG

他に細かい修正した箇所もあるのですが、何とか変換することができました。
(また細かい修正などは別記事にしたいと考えています)
ibis8.PNG

同様にデバイス側EEPROMのSPICEモデルも作っていきます。
EEPROM側は細かな設定が無いのでCPUよりはSPICEモデル作るのは楽だと思います


5.SPICEモデルをLTSPICEで使えるように整える
(1)送信側のモデル
ようやくSPICEモデルが入手できたのでこれをLTSPICEで使えるようにサブサーキット化します。
作ったSPICEモデルの中身を確認し、接続に対応させてサブサーキットのファイルを作成してあげます。
i2c25.PNG

今回はIBIS-PSpice Converter Ver 3.0のツールを使いましたので、そちらの出力形式に合わせてサブサーキットを作りますと「1_IN,2_OUT,3_VCC,4_VSS」ですので下記のような形作ってみました。
i2c20.PNG

これが実際どういうモデルのかというと、そもそもIBISモデルの構造から説明する必要があるのですが詳細は省略します。(「IBISモデル」でググれば簡単にでてきますので…)。
筆者が考えているイメージとしては下記です。
ibis11.PNG  

作ったサブサーキットに作ったSPICEモデルをリンクさせてあげます
ibis10.PNG

これで送信側(ドライバ・マスター)のモデルが作成完了しました。

(2)受信側のIBISモデル
受信側のIBISモデルに対しては、どこまで作りこむというのがあるのですが今回は簡単に「パッケージのRCL成分」と「パッドまたはダイの容量成分C_comp」だけ入れて終わりにしたいと思います。
イメージとしては下記イメージです
ibis12.PNG
もしかしたら本来はこちらのリンク先の「レシーバモデル」のように電源・GNDも作って上記橙色のクランプダイオード分まで入れこむ必要があるかもしれませんが手間なので省略します。

そのためIBISモデルを必要情報を引っ張ってきましょう

IBISモデルの一番最初に出てきます。今回はTyp値を使います
ibis13.PNG


まずは送信側同様に受信側のサブサーキットを作ります。今回は「1_Pin,2_Die,3_Vss」と作ってみました。
ibis14.PNG

ライブラリをテキストで作ってあげます。
ibis15.PNG

下記のように何時ものブロック図で書いてもらっても結構です
特にRCLだけですので、ここらへんは好きに作ってもらっていいと思います
ibis16.PNG

あとはサブサーキットに作ったSPICEモデルをリンクさせてあげます。これで完成です
ibis17.PNG



「スポンサーリンク」

6.まとめ・感想
これにてシミュレーションで使える送信側と受信側のモデルが用意できました。
今回はI2Cのモデルを用意しましたが、同様にUART、SPI等のIFのモデルが作成できます。

モデルの妥当性が怪しい箇所があると思いますが、個人的にIFのシミュレーションをして動作確認程度ならばこれで十分かと思います。

次回は作ったモデルが本当にICのスペック通り機能しているのか妥当性を確認しています。

<<20180721追記>>
作成したSPICEモデルのDC特性を検証した記事をアップしました。

IBISモデルから作ったSPICEモデルのDC特性を検証してみた_モデル検証編
リンク先はこちらからです
ibis23.PNG



今日はここまでにしたいと思います
どうもありがとうございました


ラズベリーパイで簡単にI2C通信ができます。

EEPROMの詳細は下記となります。