電子書籍の厳選無料作品が豊富!

現在128*64のOLEDモジュールをI2C経由でPIC18F26K22から動かしているのですが、不可解なことがあり、質問させていただきます。
OLEDモジュールは15ピンで8080,SPI,I2Cなどのプロトコルをジャンパーで選んで動作させることができるものを使っています。(ユニバーサルボードにはピンソケットを経由して接続しています)
そして、全て期待通りに動いています。

で、何が困っているかといいますと、電源を切って30分ほど放置しておき、再度電源を入れると画面が砂嵐のようになってしまうのです。
そしてこの状況に陥った場合、確実に直す方法がありまして、電源OFF後にこのOLEDモジュールをピンソケットから抜き、数秒後に再度挿入し、電源を投入すると確実に直ります。
動作確認用にタイマ割り込みで点滅するLEDをつけていますが、ちゃんと点滅するので動いているようです。
アナログの知識は弱いので、どこから手をつけていいのやら困っております。
クロックピンにはフェライトビーズや電源ラインへのパスコンなど基本的なことはやっているつもりです。
オシロで見てもI2Cの波形がなまっている様子はありませんでした。

どなたか「取っ掛かり」をあたえていただきたく、お願い申し上げます。

A 回答 (1件)

OLED モジュールを具体的に知りませんが、


電源がきちんと切れていない為に次回電源ON時の初期化が失敗してるように思います。
たぶんですが、OLED モジュールの電源を切ったつもりでも
制御信号線などを介して電圧が供給され、OLEDモジュールの電源ラインをずり上げてるんじゃないかと思います。

「電源切った」はずの時に、ちゃんと電源電圧が0Vになってるか、から確認しましょう。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
さっそくOLEDモジュールの電源電圧を確認してみましたところ、電源電圧が0.5Vぐらい残っていて、徐々に下がっていく様子が見えました。(コンデンサからの放電でしょうか?)
そこで、この電圧が0Vになるまで待ってから電源を投入すると砂嵐になるという再現ができました!
逆にこの電圧が残っている間であれば砂嵐は発生しませんでした。
そこで、砂嵐が出たら現在弱プルアップしているだけのリセットピンをショートさせると、確実に元に戻せることがわかりました。
この方法は機種は違うのですが http://www.picfun.com/P12F/p12f07.html を参考に何も考えずまねたものでした。
ということで、初期化時にちゃんとリセットするように直そうと思います。
いただいた取っ掛かりで、解決にたどり着くことができました!
本当にありがとうございました。

お礼日時:2012/08/27 09:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!