June 22, 2008
簡易レベルシフタ
「環境に優しく」が合言葉の時代。ICだって環境に配慮してるんです。クロックを動的に変化させたり、使ってないモジュールはスタンバイさせたり、電源電圧下げたり。
そのおかげで最近のICの電源電圧は1.8Vとか3.3Vとか5Vとか3Vとか2.85Vとか・・・。
このように、電源電圧が違うIC同士の通信はオープンコレクタとか入力トレラントとか特殊な機能がついたICでもない限りは、ちゃんとレベル変換してあげる必要があります。
具体的には、VHC125など、レベル変換の機能を持つバッファICを間に挟む方法です。
で も 、
1~2本の信号線だけでいいのに、こんな大事にしなくてもいいよぉ、とも思うわけです。
そんなわけで今回は、製品に使ったら怒られそうだけど、実際あんま問題ない超簡易的なレベルシフタを紹介しちゃいます。
08/07/04 ちょっと加筆
そのおかげで最近のICの電源電圧は1.8Vとか3.3Vとか5Vとか3Vとか2.85Vとか・・・。
このように、電源電圧が違うIC同士の通信はオープンコレクタとか入力トレラントとか特殊な機能がついたICでもない限りは、ちゃんとレベル変換してあげる必要があります。
具体的には、VHC125など、レベル変換の機能を持つバッファICを間に挟む方法です。
で も 、
1~2本の信号線だけでいいのに、こんな大事にしなくてもいいよぉ、とも思うわけです。
そんなわけで今回は、製品に使ったら怒られそうだけど、実際あんま問題ない超簡易的なレベルシフタを紹介しちゃいます。
08/07/04 ちょっと加筆
ほい。でけた。抵抗2つ。
いや、マジマジ。これでCMOS入力は普通イケる。
つくばチャレンジのときの5Vマイコンと3.3V青歯基板の間シリアル通信のレベル変換はコレでやって、全然問題なかった。マイコン(5V)のTxを「高電圧側」につないで、青歯基板のRxを「低電圧側」につなぐ。も一つ同じ回路を用意して、同様にマイコン(5V)のRxを「高電圧側」に、青歯基板のTxを「低電圧側」につなぐ。
抵抗の値は(5V,3.3V)の場合、(Ra,Rb) = (4.7kΩ,8.2kΩ) または (3.9kΩ,6.8kΩ) または (3.3kΩ,5.6kΩ)。
TTL入力の場合は常時数mA?ぐらいの電流が流れる必要があるので、こんなふうに抵抗つけた回路は良くない。
抵抗の分圧というワザを使っている。これによって、高電圧側が出力をHにした場合、低電圧側の入力端子には高電圧側の電圧の0.63倍の電圧がかかる。高電圧が5Vの場合、3.15V。「あれ?3.3Vじゃないじゃん!」と思うかもしれないが、ICの入力には「入力ハイレベル電圧」というのが設定されていて、この電圧を上回ればHと判断してくれる。これは通常、電源電圧より低い。(この青歯基板の場合、電源電圧×0.7=2.31V)
またこの回路の場合、低電圧側の出力がHになったときに高電圧側の入力にかかる電圧は、低電圧側のH電圧と同じになる。これも同様に、高電圧側のICの「入力ハイレベル電圧」を上回っていれば良い。(このマイコンの場合、2.2V)
なお、低電圧側の出力は高電圧側の入力に直結してしまえばいいと思われるかもしればいが、何かの拍子に高電圧側も出力になってしまった場合、低電圧側のマイコンに高電圧がかかる可能性がある。しかし、この回路を挟んでおけば高電圧がかかることはないので、そのような不慮の事故を防ぐ役割がある。
ほぅ。けっこう頑張って書いたな。
こんなふうに理屈は通るんだけど、製品で出すときは普通バッファICをカマせます。なぜかってぇと、この回路の場合抵抗が入ってて、電流が全然取れないからです。だから、TTL入力のICにはオススメしないし、何よりFETのゲートやサーボの信号には絶対使えない。
この抵抗にはほとんど電流を流す必要はないので、できるだけ小さいのを使っちゃっていいです。
ちゃんとした方法でやりたい人は、VHC125が秋葉原の鈴商に売ってます。変換基板については、千石で売ってるDAISENの変換基板が安くていいかんじ。
こっちの記事の基板を裏から見た図で使ってますね。
---
てか、後で気づいた。あの青歯ってTTLレベルじゃん!私の場合は動いてるけど、あんま抵抗値上げると良くないかも。。
---
08/08/30 追記
この記事の内容について、miconoさんに追試をして頂きました。
gomisaiさんがトランジスタを使った正攻法を記事にしてくださいました。
---
08/10/24 さらに追記
何度も言うようですが、これはあくまで逃げ方であり、正攻法ではありません。VHC125などのICを使ったほうが、通信品質がケタ違いに良いです。
最近はこんなのもあるみたい。自分で回路を作る自信がない人は利用してみるのもいいでしょう。
09/01/18 さらにさらに追記
こーいうふうに信号レベルを減衰させるのは、アッテネータって言うらしいよ!
なお、分圧回路は電圧をとりだすためのもので、電圧を取り出した部分はインピーダンス無限大である必要があります。しかしICのInput端子は、実際はそうではない場合がほとんどです。
トラックバックURL
この記事へのコメント
1. Posted by takuo July 20, 2008 19:20
miconoさんいつも情報有難う御座います。
ねがてぃぶろぐで、5V-3.3Vの簡単なレベルシフトの情報がありました。
http://blogs.yahoo.co.jp/gomisai/24363625.html
・Trタイプ
・NMOSタイプ
両方のシミュレーションの例も開催されていました。
基本的には、フィリップス社のI2C仕様書でも
紹介されているそうです。
http://www.nxp.com/acrobat_download/literature/9398/39340011_jp.pdf
・NMOSタイプ
大事なRBT-001ですので、テストしてから踏査してください。あくまでも自己責任でお願いします。
ねがてぃぶろぐで、5V-3.3Vの簡単なレベルシフトの情報がありました。
http://blogs.yahoo.co.jp/gomisai/24363625.html
・Trタイプ
・NMOSタイプ
両方のシミュレーションの例も開催されていました。
基本的には、フィリップス社のI2C仕様書でも
紹介されているそうです。
http://www.nxp.com/acrobat_download/literature/9398/39340011_jp.pdf
・NMOSタイプ
大事なRBT-001ですので、テストしてから踏査してください。あくまでも自己責任でお願いします。
2. Posted by micono July 21, 2008 11:38
miconoです。
ありがとうございます。
ページを見てみたのですが、
いちばん最初の絵の
2SC1815のトランジスタ1つ
1.5Kの抵抗2つ
470の抵抗1つ
用意すればいいってことになるんでしょうか?
よろしくお願い致します。
ありがとうございます。
ページを見てみたのですが、
いちばん最初の絵の
2SC1815のトランジスタ1つ
1.5Kの抵抗2つ
470の抵抗1つ
用意すればいいってことになるんでしょうか?
よろしくお願い致します。


