PIC24F電子遊戯(2)
更新日:2021年1月29日

マジョカアイリスのLCD(640x48)をテストする・その2
マジョカアイリスハックの続きで今回もLCDテストをします。まずは液晶バックライトの電圧についてです。私はたまたまですが2回に分けてAmazonからマジョカアイリスを購入しました。分解したところみごとに2種類の液晶モジュールが摘出されました。
(2種類の液晶モジュール)
(それぞれ構造が異なります)
写真上側が基板タイプ、下側がポリイミドフィルムタイプです。どちらも制御方法は同じですがバックライト用LEDの電圧が異なります。私は100Ωの抵抗を介して電圧を印加していますが、基板タイプで約12V、フィルムタイプで約9Vの電圧が必要です。最初に入手したものはフィルムタイプだったので後から購入した基板タイプに液晶を交換したところ全く表示が出なくて焦りました。バックライト電圧の違いだけが原因だったようです。
さてこの液晶は640x48ドットで表示が構成されています。初期化などはややこしいですが、それは先人の方々の解析を参考にすることで解決出来ます。ここからはどのようにしてPIC24Fで駆動出来るかを考えていきましょう。
まず液晶の総ドット数は640x48=30720になります。また1ドットは2バイトで構成されています。
(RGB565フォーマット)
単純に計算してもかなりのRAM容量が必要となります。私の使うPIC24Fには8kBのRAMしか搭載されていません。この範囲内でなんとかならないかと考えました。そこで1ドットを2bitの数値で表せるようにフォントデータを作成することにしました。
(フォントデータの定義)
これで1バイトで4ドット分の情報を記憶することが可能になります。色数は4色に限定されますが30720÷4=7680となってなんとか他をやりくりすれば8kB内で完結出来そうです。
フォントはROM内で定義しますので充分すぎるくらいです。基本色として前回も説明しましたが15色を用意しました。
(基本の15色)
フォントデータには4色分しか定義されていないので、どの色で表示するかはパレット方式とすることにしました。1画面上には4色しか表示出来ませんが、シーン別でパレットを変えることで飽きの来ない表示が可能となります。
(パレット色の定義)
今回7種類のパレットを準備しました。このあたりは皆さんで自由に変えて頂いて構いません。どのような見栄えになるかを見て頂きましょう。
(パレット色による変化)
同じ表示データなのに色を変えるだけで見栄えがかなり変わります。とても良かったのではないでしょうか。光の関係上見えにくく写真を撮ったところもありますが実際にはもっと綺麗に見れます。
ここまでの分のMPLAB X IDE用のプロジェクトファイルを公開いたします。ここからダウンロードして下さい。コード生成はMCCを使用しました。また合わせて「Peripheral Library」も組み込んでいます。圧縮ファイル名は変えてありますが中身のプロジェクトファイル名は同じですので、前回のプロジェクトファイルをお持ちの方は気を付けて下さい。
プロジェクトファイルのダウンロードはこちらへ
一応ここまでの分の動画を撮りましたのでご確認下さい。
(インクリメントカウンター表示)
画面書き換えのスピードを計算するためにインクリメントカウンター表示を作りました。動画にも出てきますが1秒間に約8枚の画面更新が可能です。1画面表示約120msec程度です。まあこれくらいなら実用に耐えると思います。ここまではなんとかいったように見えますが、正直なところ1画面上に4色を同時に出す(出せるはず)部分がまだうまくいっておりません。4色目を表示させようすると、なぜか画面が歪んだりするようになります。上の写真や動画は全て3色で構成しています。まだもうちょっと私なりの研究が必要なようです。
LCDのテストはここまでです。次回からはピン数の多いPIC24Fを使用して実用的な製作に進めていきたいと考えています。さて何になるのでしょうか。使い道は沢山ありそうな予感がしますね。引き続きよろしくお願いいたします。

「PIC24F電子遊戯の表紙」へ戻る