今回はLTSPICEでI2C,UART,SPIシミュレーションを行う過程の記事「IBISモデルから作ったSPICEモデルのDC特性を検証してみた_モデル検証編」を紹介します
前回はI2CのSDAピンをIBISモデルからSPICEモデルに変換しましたので、そのモデルがICのデータシート(スペック)通りかを確認したいと思います。
前回のモデルを作った「LTSPICEでI2C,UART,SPI等のシミュレーションをしてみた_モデル準備編」記事のリンクはこちらです
AM3352のデータシートを確認する
送信側のモデルを検証していきます。(前回作った受信側はパッケージ成分だけのため検証の必要がないため)データシートはこちらからダウンロードできます。
ラズベリーパイのように小さいボードの「BeagleBone」で使われているCPUです。
上記をIBISモデルが無かったラズベリーパイの代わりに見立てて使っています
今回は「DC特性の出力特性_VOH,VOL」の2つを確認してデータシート通りになっているかを確認したいと思います。
「DC特性の出力特性_VOH,VOL」from データシート
(20180624時点の)データシートでは「5.7章DC Electrical Characteristics」に記載されています。今回I2Cの電圧としては3.3Vとして使うためデータシートに書かれている「VDDSHV6=3.3V」とします。
引用すると「DC特性の出力特性_VOH,VOL」は下記になります。標準的なDC特性だと思います
MIN
|
NOM
|
MAX
|
UNIT
|
|
VOH (IOH=4mA)
|
VDDSHV6-0.45
=3.3-0.45
=2.85
|
V
|
||
VOL (IOL=4mA)
|
0.45
|
V
|
正直上記だけですと、「とある電流値(IOH,IOL=4mA)引いている時のVOH,VOL」でしかなくシミュレーションする上ではもったいないのでIBISモデルでも「DC特性の出力特性_VOH,VOL」を確認してみます
「DC特性の出力特性_VOH,VOL」from IBIS
AM3352のIBISモデルは自由に入手できます。TIのリンク先はこちらからです。
今回のIBISモデルとしては標準的なものを使用します。
内部PU,PDなど特についていない標準的な3.3V_IFを使用します。「3.3V-I/O-PI-NORMAL, IND, 10%]」を使って検証していきます
詳細は省き概略でいいますと「L出力時の特性がPulldown」「H出力時の特性がPullUP」に記載されていますのでこれらを使っていきます
電圧に対しての電流値(typ)(min)(max)が記載されています。PulldownとPullUPの必要な情報をEXCELに切り取ると便利です
そしてEXCELでVOLの必要な箇所をまとめますと、下記のように表・グラフにできますので「IOL電流値」と「VOL電圧値」の関係性がよく分かります
まずPulldownのVOL-IOLのグラフは下記になります。
緑がI(max)、青がI(typ)、赤がI(min)を示しています
実際データシートではVOL(IOL=4mA)の際にMAX0.45Vということでした。Pulldown特性のみを下記グラフから見ると赤線のI(min)がVOL(MAX)=約0.28Vと言ったとこでしたので、そんなもんかと言った感じです。
青線のTypの場合VOL=約0.17Vとなっています
あとPullUPのVOH-IOHのグラフは下記となります。
IBISのデータをそのまま持ってくると「電圧値がH特性にオフセットされていない」、「極性が逆」となっており少しイメージしにくいグラフとなっています。
※また変に右端にでている緑線のI(max)の箇所は実用上使わない箇所だと思いますので無視しています
そのため必要に応じて、見たい箇所にオフセットしてあげます。
オフセット値に関してはIBISモデルで記載していた[Volatage_Range]の値を使って
青線のI(typ)は3.3V、赤線のI(min)は2.97V、緑線のI(max)は3.63Vを足してします
修正後のグラフが下記です。大分見やすくなったかと思います。
IOH(typ)が4mA流すとき約3.15Vとなっていますので、ここもシミュレーションして結果を見ていきたいと思います
LTSPICEでシミュレーションしてみる
シミュレーションの準備
データシート,IBISモデルともにIOH,IOL=4mA周辺を見てきましたので
対応するように出力先のPU,PDを合わせてシミュレーションしていきたいと思います。
今回は特性は「Typ」を選択しています
モデルは前回作成したI2CのSDAピンをモデルにしたものです
今回のモデルのイメージとしては下記IBISモデルとしてみると分かりすいと思います
①「IN」・・・ SDA信号の波形を決めるピン
※今回は100kbps_周期10uでHigh,Lowを繰り返すパターンとします)
②「Vcc」・・・ ICの電源ピン
③「Vss」・・・ ICのGNDピン
④「Out」・・・ I2C_SDAの出力ピン
実際のシミュレーションするモデルでは下記形で行います。
シミュレーションの検証
(1)VOH-IOH特性
前回作成した出力側のモデルを利用して出力先に抵抗を付けて特性を検証します。
今回の抵抗は1kΩです。少し電流が多めに流れますが3.3V/1kΩ=3.3mAとなり、前章までに検討していた4mAに近いため1kΩを選択しました
シミュレーションの結果は下記形となりました。特に問題なく100kbpsのI2C想定の波形が出力されています。3.3V出力時(VOH出力時)をアップしてみたいと思います
シミュレーションでのVOH=3.17V(IOH=3.3mA)となりました。
前章でIBISモデルで確認したのはVOH=約3.15V(IOH=4mA)でしたので、かなり近い値ではないかと思います。
無事IBISモデルのDC特性をSPCIEモデルに引き継げているようです
(2)VOL-IOL特性
同様にVIL特性を見ていきます。下記でシミュレーションを行います
今度は下記のようにVILを確認できるように1kΩの抵抗を接続します
シミュレーションの結果は下記形となりました。
同様に0V出力時(VOL出力時)をアップしてみたいと思います
シミュレーションでのVOL=0.129V(IOL=3.3mA)となりました。
前章でIBISモデルで確認したのはVOL=約0.17V(IOH=4mA)でしたので、こちらも近い値ではないかと思います。
まとめ・感想
今回の検証にて前回作ったSPICEモデルが作成元のIBISモデルのDC特性を引き継げていたのではと思います。次回はAC特性の妥当性を確認したいと考えています。
<<20180812追記>>
作成したSPICEモデルのAC特性を検証した記事をアップしました。「LTSPICEでAC特性をシミュレーションしてみた_モデル検証編」
今日はここまでにしたいと思います。どうもありがとうございました
ラズベリーパイで簡単にI2C通信ができます。
EEPROMの詳細は下記となります。
コメント