波形の乱れ #
「IC出力–ライン–IC入力」というラインを考えたとき、出力の立ち上がり/立下りが矩形波のように早ければ、伝送される信号にリンギングが観測される。これは伝送される信号が反射してくることによって信号が乱れるように見えている。
対策 #
通常よく使われる対策は2つ。
- 出力端に直列に抵抗を入れる
- 通常1対1の接続に使用される
- 立ち上がり、立ち下がり時間が遅くなる
- 分配が難しい
- 入力端に並列に抵抗を入れる
- 通常1対多の接続に使用される
- 消費電力の面で不利
リンギングの計算 #
どの程度リンギングが発生するかは算出することができる。下記のようなモデルを考えてみよう。出力インピーダンスZsを持つドライバが特性インピーダンスZ0の経路を通って、入力インピーダンスZtを持つレシーバに入力されるモデルである。
このモデルでドライバの出力が0->Voutになった場合、各部の電圧は下記のような時間変化となる。
- レシーバの入力端にVoutの電圧がZsとZ0で分圧されたものがやってくる
- レシーバの入力端はZ0とZtから計算される反射係数を持ち、やってきた電圧を反射する
- 反射された電圧がドライバに返ってきて、ドライバ側でもZsとZ0で計算される反射係数で反射される
- これを繰り返す
上記だけでは分かりずらいので具体例を計算してみる。 Zs=10Ω, Z0=50Ω, Zt=∞, Vout=5Vとする。ドライバ端での反射係数は(10-50)/(10+50)=-0.-0.666、レシーバ端での反射係数は1となる。
- ドライバ端電圧:5*50/(10+50)=4.166V
- レシーバ端電圧:4.166 + 4.166*1 = 8.33V
- ドライバ端電圧:4.166 + 4.166*-0.666 = 4.166 - 2.7746 = 5.555V
- レシーバ端電圧:8.33 + (-2.7746)*1 = 2.777V
- これを繰り返す 計算結果をグラフ化すると下記の通り。
ダンピング抵抗の値の決め方 #
先に記載したようにインピーダンスの不整合が原因で信号が反射するのでインピーダンス整合してあげれば良い。直列にダンピング抵抗を置く場合、線路の特性インピーダンス-出力インピーダンスで計算出来る。ただ出力インピーダンスは通常、ICのデータシートに書いていない。どうやって調べたらいいのだろうか。IBISモデルが公開されていたら、これを利用しよう。I-V特性からおおよそのインピーダンスを計算することが出来る。
例えば5Vのバスバッファ(SN54ACT245)で50Ωラインに信号を送信する場合を考える。SN54ACT245のIBISモデルは公開されているので、ダウンロードして中身を確認する。テキストエディタで中身を確認してもいいけど、分かりやすいようにVisual IBIS Editorで開いてみる。PulldownがLow出力時のドライバの能力、PullupがHigh出力時のドライバの能力を示している。それぞれ、0V, 5V付近の傾きからインピーダンスを計算する。
今回の場合、大体Low: 6.87Ω、High: 8.35Ωとなった。24mA出力のドライバがおおよそ10Ω程程度と言われているので正しそうだ。あとは50Ωから引き算すればいい。従って、ダンピング抵抗の値は50-8.35=41.65Ω程度となる。