2009年9月19日土曜日

FreeRTOSで液晶表示


先週なかなか表示してくれなかった文字がようやく表示されるようになった。

・・・

前回Blogに投稿したときは、LCDのクリアやカーソルの移動が出来ていたので、LCDへのコマンドは届いているが、データが届いていないという状況だった。

ハードの問題なのか、ソフトの問題なのか良くわからなかったので、今使っているLCDライブラリとは作者が別なソフトをネットで探し出しLCDの表示を試してみた。

しかし、状況は変わらなかった。
でも、これでソフトウェアの問題ではないことが確定した。

そして、LCDがコマンドを受け付けてデータを表示しないことから、RS(Register Select)信号がLowになったままであることが推測された。

よって、dsPICからLCDまでの配線をもう一度チェックして、半田付けもやり直した。
また、LCDへの5Vの電源電圧が不安定なために表示できていないのではないかとも思われたので、5Vのレギュレーターを追加した。

しかし、状況は変わらず。

次に、dsPICのリファレンスマニュアル等を読んで出力ピンの特性だとか、設定方法などを再チェック。
ここで、オープンドレインの設定が出来るということを知った。

オープンドレイン?って何だろ、と調べてみた。以下のURLに詳しく解説されていた。

http://www001.upp.so-net.ne.jp/FITDESIGN/manu6.htm
http://www.picfun.com/PIC24F/module/mod24F02.html

要するに大きな電圧や電流の回路とインターフェースするための回路構成ということで、今回のようにdsPICが3.3VでLCDが5Vの場合に、5Vで信号のやり取りをするための機能なんだと理解した。

そこで、問題のRSラインだけこのオープンドレインにして、RSラインを5Vにプルアップしてみることに決めた。
この際、当初使っていたRB15はA/Dコンバータと兼用できるピンだったため、入力電圧の許容が3.6Vと低く使えないので、Digitai出力専用のRB11と入れ替えた。

しかし、これでも駄目。

この後、しばらく悩みつつオシロスコープのプローブを当てて調べていたら、思わぬところに間違いを発見!

回路図を描くために使っているのが水魚堂さんの回路図エディタBSch3Vなのだが、これについていたLCDのライブラリのRSとR/Wのピン番号が、LCDモジュールを買ったときについてくる資料のものと違っていた。ライブラリではRSが5、R/Wが4なのだが、資料の方は、RSが4で、R/Wが5だった。

こんなところにバグが潜んでいるとは。。。。

というわけで、この配線を直したところ、正常に動いてくれた。やれやれ。

YouTubeに動画をUP。
http://www.youtube.com/watch?v=FAblW7iKw3I

0 件のコメント:

コメントを投稿