作品紹介
RXマイコンを使ったLCDユニットの製作(1)
ホームページに戻るトップページに戻る前ページに戻る次ページに進む最終ページに進む
秋月電子通商などで販売している、セイコーエプソンのLCDコントローラS1D13781評価ボードS5U13781R00C100(以降LCDC評価ボード)と、4.3インチ(480×272ピクセル)のLCDパネルATM0430D5(XIAMEN ZETTLER ELECTRONICS)を使ったLCDユニットの製作を紹介します。
そのコントロールには、同じく秋月電子通商のRX621マイコンボードを使用しています。
1.LCDユニットとは

このLCDユニットは、ホスト機器(表示を行う上位の機器)からの指示によって表示を行う、データ表示端末です。
ホスト機器からのコマンドによって、線や円などのグラフィック描画やビットイメージ画像の表示、そして文字※1の表示などを行うことができます。ただし、容量の都合で漢字フォントは入っていません。
表示できる色数は、後で説明するレイヤー機能実現のため最大256色※2としました。写真のように色数が多い画像はセーフカラーに減色すれば表示可能です※3
動画の表示はできません。

ホスト機器との通信には二線式のRS-485を使い、RS-485を介して与えられたコマンドでいろいろな描画を行います。コマンドについては後ほど説明します。
使用したセイコーエプソンのLCDコントローラ評価ボードは、文字通り評価用の基板であって実用を想定していません。しかし、そこは容易にプリント基板を起こすことができないアマチュアの精神力で、実用を目指してそのままケースに収めました。
※1.ANK(英字,数字,カナ,記号)のみです。漢字は含みません。
※2.セーフカラー216色と基本16色に、透過色と無効色の2色を含みます。
※3.フルカラーのビットイメージ画像も表示できますが、レイヤーは機能しません。

正面から見たところ  向かって左から見たところ  後ろから見たところ
LCDユニットの外観(画面は試験用)

2.特長

2-1.主な描画機能
描画機能の一覧表

2-2.裏画面機能でチラつきをなくす

裏画面機能(ここではこう呼びます)は、描画するときのチラつきをなくすことと、描画の過程があからさまになってしまうことを防ぐ機能です。
LCDコントローラS1D13781は、内蔵するVRAMにカラーコードを書き込むことで表示を行います。しかし、LCDコントローラ自体には描画機能がないので、マイコンのプログラムによって線や図形などのグラフィックや、テキストのフォントパターンなどを書き込みます。
その状況で起きる問題のひとつとして、表示内容を更新するとき、例えばあるデータが変わったため表示中のグラフを書き換えるときなど、表示を一旦消去して再描画を行うと、その消去がチラつきになることがあります。
もうひとつの問題は、通信や計算の都合で描画指示が遅くなった場合や、表示内容が多い場合などに、描画の過程が見えてしまうことがあります。
非常に高速で描画できれば良いのでしょうが、このLCDユニットはそれほど高速ではありません。その解決策として、描画をVRAMとは別のメモリ上(=裏画面)で行い、新しい画面ができてからVRAMに転送するということを行います。VRAMに裏画面を上書きするだけで、VRAMの消去がないのでチラつきが発生しませんし、必要な描画が終わってから表示するので描画の過程も見えません、それが裏画面機能です。
マイコンの外部メモリとして増設したSRAMは、レイヤー機能を兼ねた裏画面用として使用しています。詳細については次のレイヤーで説明します。

2-3.4つのレイヤーを重ね表示

レイヤーとは画像を重ねて表示する機能で、S1D13781もPIP機能で重ね表示ができますが、それとは異なります。
レイヤーで重ね表示ができると、レイヤーを分けることでほかの画像を壊さずに画像を描いたり消去したりできます。例えば、グラフィック表示とテキスト表示を別のレイヤーに分けると、グラフィックを意識せずにテキストの書き換えができます。
増設メモリは512KBなので、1ピクセル256色(1ピクセル=1バイト)にすると、1画面480×272ピクセルですから4レイヤー作れます。
下図はレイヤーの構成図です。この図で、最上部の表示画面(VRAM)からレイヤー3~0の順に見たとき、透過色を除いて最も上のレイヤーにある色が表示されます。透過色は下レイヤーを表示すためのもので、透明色とも言います。
最背景色というのは、全てのレイヤーが透過色だったとき表示する色で、全ピクセルが黒色です。
4レイヤーとも480×272ピクセル256色で、表示画面に転送する段階でカラーパレットによって24ビットのフルカラーに変換されます。ただし、透過色と無効色として2色使用するので、実際表示できるのは最大254色です。
なお、このLCDユニットでは透過色と無効色に専用のパレット番号を割り当ててあるため、カラーパレットテーブルを書き換えても通常の色を透過色または無効色に変更することができません。
レイヤーのメモリを裏画面として機能させる場合は、レイヤーへの書き込み描画のみ実施してVRAMへの転送を停止しておきます。そして、レイヤーへの描画が完成してからVRAMに転送します。

※注記:フルカラー画像の描画はLCDコントローラのVRAMに直接書き込むため、レイヤー機能は無効です。
レイヤーの説明図

2-4.カラーパレットで最大254色表示

カラーパレットは、各レイヤーの256色をLCDパネルの24ビットフルカラーに変換するテーブルです(全レイヤーに共通)。各レイヤー各ピクセルのパレット番号は、このカラーパレットによってフルカラーに変換された後VRAMに転送されます。従って、パレット番号はカラーコードではなく、カラーパレットからカラーコードを取り出すためのインデックスと言えます。
カラーパレットは、セーフカラーと呼ばれる216色と基本16色といわれる16色、そして透過色と無効色の2色がデフォルトでセットされます。残りの22色は通常未使用ですが、デフォルトでは白色にしています。カラーパレットは変更することもできますが、データ表示という用途を考えるとデフォルトの状態で十分だと思います。
透過色と無効色はそれぞれパレット番号254と255で、この2色はカラーパレットを変更できません。
無効色は文字通り無効のパレット番号で、描画しても描画されずレイヤーのメモリにも残りません。従って、このパレット番号で描いた部分は元の画像が残ります。
下の写真はLCDユニットのテストモードで表示した実際のカラーパレットで、表示されている数値は16進でパレット番号を表しています。この中で、0x00(0)~0xD7(215)がセーフカラーの部分、0xD8(216)~0xE7(231)が基本16色の部分です。

カラーパレット表示(前半)  カラーパレット表示(後半)
カラーパレット(前半)           カラーパレット(後半)

2-5.文字表示はANK のみ

LCDユニットには、3つのサイズのANK(英字,数字,カナ,記号)フォントと、数字のみのフォントを3種類内蔵しています。
(1) 6× 8dotフォント(ANK)
(2) 8×16dotフォント(ANK)
(3)12×16dotフォント(ANK)
(4)16×32dotフォント(数字のみ)
(5)28×32dotフォント(数字のみ)
(6)12×16dot7セグメント風フォント(数字のみ)
これらのフォントは、通信コマンドにより拡大表示ができます。ただし、指定できる倍率は1からの整数です。
(1)~(3)のANKフォントは、制御コード(文字ではない部分)のフォントが異なっています。また、(1)~(3)のANKフォントは、テストモードで表示する画面の中で、それぞれの文字一覧表を表示するので文字の形を確認できます。
下の写真は、テストモードで表示された「8×16dotフォント」と「12×16dotフォント」です。

8x16ドットフォントの表示  12x16ドットフォントの表示
8×16dotフォント             12×16dotフォント


2-6.組み込みシンボルの表示

下記に示す、あらかじめ内蔵された29種類のシンボルマークを表示できます。シンボルは下記表示例の左上から右下に向けて0~28の番号が付けられていて、その番号を指定して表示します。なお、最初の4つ(シンボル0~3)は16×16ピクセル、それ以外は32×32ピクセルのイメージ画像です。
これらのシンボルマークは、指定のレイヤーの指定の座標に自由に表示できます。またこれらは、シリアルフラッシュに記録されているのではないので、シリアルフラッシュの操作に影響されません。
組み込みシンボルの表示

2-7.シリアルフラッシュで画像保存

LCDC評価ボードに実装されている16MBのシリアルフラッシュメモリM25P16に画像データを保存し表示することができます。
保存できる画像データは480×272ピクセル以下の非圧縮ビットマップで、独自のデータ形式になりますが、8ビットのセーフカラーモードまたは24ビットのフルカラーモードです。
保存されている画像は、ホスト機器からのコマンドで描画中レイヤーの指定された位置に表示できます。ただし、フルカラーモードの画像は常にVRAMに直接転送して表示します。それはレイヤーを無視した表示なので、表示中の画像を壊したり、以後の描画に影響したりすることがあります。

シリアルフラッシュに書き込む画像データは0~65534のインデックス番号で管理され、小さい画像なら2700枚以上保存できます。ただし、画像が大きいほど保存できる枚数が少なくなります。
また、インデックス番号0番に保存した画像は、LCDユニット起動時に起動画面として、画面左上隅から表示します。
シリアルフラッシュメモリに画像データを書き込むには、LCDユニットをテストモードで起動し、マイコンボードにあるUSBポートを使ってパソコンから書き込みます。そのためには専用のパソコンソフトが必要ですが、そのパソコンソフトについて後ほど説明します。

2-8.テストモード

メイン基板のジャンパピン1(JP1)をショート状態で電源をONするとテストモードで起動します。
テストモードはデモンストレーション機能を兼ねるもので、ホスト機器の有無に関係なく単独で動作し、カラーパレットの色やグラフィック描画機能などの確認ができます。
また、シリアルフラッシュに画像データを書き込むには、テストモードで動作させる必要があります。ちなみに、マイコンボードにあるUSBポートはテストモード中のみ使用可能です。

ホームページに戻るトップページに戻る前ページに戻る次ページに進む最終ページに進む
■■■ 注 意 ■■■
1.ここに掲載された内容(写真,図,表などを含む)の、全てまたは一部を無断で使用しないでください。
2.ここで紹介した手法(構造や仕組み,回路,プログラムなどを含む)を使用したことにより、問題や不利益が発生したとしても一切関知しません。
3.ここで紹介したプログラム例は、正常なコンパイルおよび正常な動作を保証するものではありません。