レベル変換
I2Cの場合
変換チップ等
http://akizukidenshi.com/catalog/g/gM-05452/
GPIO等のレベルが異なる時
それぞれが5vと3.3vの場合。
- 5v to 3.3v
- 3.3v to 5v
電圧を下げる時
5v out to 3.3v in
5v out - 10kΩ -+--- 3.3v in | 20kΩ --- GND
Vh@in = 5v * 20kΩ/(10k+20k) = 3.33...v
Out Current = 5v/(10kΩ+20kΩ) = 0.16mA
電圧を上げる時
3.3v out to 5v in
電圧を上げる側は考える事がいくつかある。
出力側に5v耐性があれば、Open drain 出力に5vプルアップで簡単に出来る。
しかし、5v耐性がない場合、5v耐性のあるトランジスタ、ゲート等の外部回路が必要。
5v | 30kΩ +-------- 5v in |(c) 3.3v out -- TR |(e) GND
論理が反転するのはご愛嬌。
トランジスタを使うぐらいなら、レベルシフタの方が良いかもしれない。
或いは、5v耐性のあるゲートを使って5vにプルアップとか。