PSoC 3.3V | LCD 3.3V | PullUP 3.3V
PSoC 5V | LCD 3.3V | PullUp 3.3V
どちらもLCDはちゃんと表示される
LCD駆動とPullUp用にPSoC 4 Pioneer Kitから引き出している3.3Vの電圧をテスタで測ると3.48V
オシロで測定したSCL、SDAの波形を見るとどちらも3.4V程度だ
データーシートで見ると
High値のMin: 0.7×VDDなので、
High値のMax: VDD+0.5V
3.3V駆動の時は2.31V~3.8Vで範囲内に収まっているのでこれはOK
5V駆動の時は3.5V~5.5Vなので仕様外になる
PullUpの値を調整して3.5V~3.8Vの間に収めてやればデーターシートの仕様内に収まるが
正直めちゃくちゃめんどくさい(^q^;
3.3Vと5VのデバイスでI2C通信させようと思うとRESETの信号レベルも考えないといけない
PSoCを5V駆動させたときのRESET信号
High値は5Vぐらい
PSoCを3.3V駆動させたときのRESET信号
High値は3.4Vぐらい
PSoCを5V駆動したときは3.3V駆動のLCDの仕様外になる(^q^;)
これもI2Cと同じようにオープンドレインにしてまとめてレベル合わせをするという手もあるが
可変安定化電源を作った時(http://dad8893.blogspot.jp/2014/12/blog-post_18.html)に
ツェナーで実験したようにツェナーで作った電圧は信用できない(誤差がかなりある)
シャントレギュレーターで精度を上げてPullUp用の電圧を調整などと考えてみても
部品点数が増えてどっちの信頼性が高いのかわからなくなる(^q^;
中間まとめ
製品で使うならデーターシートは絶対なのでI2Cで通信するデバイスの駆動電圧を合わせることが第一の解決策だと思う
が、5Vと3.3Vなら3.3VでPullUpすれば大体動くし
深入りしないで動かなければまた考えるという態度でいくことにします
5VでPullUpしてデバイスをぶっ壊すよりは3.3VでPullUpしておいてダメだったらまた考えるというのが趣味の電子工作としては現実的で楽な解決策のような気がします
0 件のコメント:
コメントを投稿