ジャンクで時々STN液晶モジュールを目にするようになりましたが、今回程度の良いカラー液晶モジュールが手に入ったので、試食してみました。右のIMGに示す、対角4インチ、解像度は320×240ドット、モジュールの厚さ約7mm、CCFLバックライトを内蔵、さらにタブレット付きというシロモノで、PDA向けの液晶モジュールと思われます。STNとかTFTの原理といった液晶一般については、他のサイトを参照してください。
巷でよく見かけるSTN液晶モジュールは大体右に示すような構成になっていて、制御信号もどれも似たものとなっています。図に示したのは、白黒320×240ドット、8ビットシングルI/Fの構成と、先頭ラインの転送タイミングです。次に主な信号とその意味を示します。
ドットデータ入力。4ビットまたは8ビット単位。特に480ライン以上のSTNカラー液晶パネルでは、駆動デューティを下げてコントラストや応答速度を改善するため、nビット+nビットでそれぞれ液晶パネルの上下半分を同時スキャンするDSTNという2個1タイプのモジュールが多いようです。
ドットデータ(D0..Dn)をカラムドライバに取り込むシフトパルスです。1ライン分の転送に要するサイクル数は、水平ドット数/データ幅ということになります。片エッジのほか、パルスの両エッジでデータを取り込むタイプもあります。
ラインデータラッチ信号。カラムドライバに取り込まれた1ライン分のデータをラッチする、いわゆる水平同期信号のようなものです。
フレーム開始信号。CL1(LP)のタイミングで参照され、そのラインがフレームの先頭ラインであることを示す、いわゆる垂直同期信号のようなものです。
液晶パネル駆動波形の極性を選択する信号。1〜数フレーム毎に反転させて直流分が液晶パネルに加わらないようにします。最近の液晶モジュールは内部生成で外部からは必要としないものが多いようです。
正しい信号が入力されていないとき、液晶パネルに不正な駆動電圧が加わってダメージを与えるのを防ぐため、ドライバ出力をOFFする信号。表示開始後数フレーム期間経って駆動回路が安定してからONし、信号停止前やシステムリセット時にOFFするなど、液晶パネル保護のため適切に制御する必要があります。多くはLレベルでOFFです。
ロジック回路電源。昔は5V系、最近は3V系が主流のようです。
液晶パネル駆動電源。320×240カラーの液晶では+20〜+30V程度が多いようで、電流は数mA程度です。駆動電源は内部で分圧されて各駆動レベルが生成されますが、古い液晶モジュールでは個別に与える必要があるものもあります。また、DC-DCコンバータが内蔵され、外部供給を必要としないものもあります。この電圧を変えることによって表示濃度を調整します。
カラーパネルは、モノクロパネルの水平ドット数を単純に3倍にして、RGBの縦ストライプを印刷したものとなっています。したがって、RGBのドット配列は転送単位に合わない順序になるので、右の図に示すようにRGBデータをうまく並べ替えて転送データの中へ正しくパッキングしてやる必要があります。
STN液晶モジュールに入力される信号には、ドットをON/OFF(2階調)するだけの情報しかありません。これで多階調を実現するには、コントローラ側で3次元(時間軸)ディザリング処理を行う必要があります。具体的には、ドットをONするフレーム数の割合を変えることにより濃度をリニアに制御するのです。例えば、15フレームシーケンスでON/OFF比を制御すれば16階調表示が実現できることになります。STN液晶の応答速度は比較的遅いので速い周期のON/OFFは平均化されますが、ディザパターンの周期が長すぎるとフリッカが感じられるようになるので、16階調程度までが多いようです。
さすがにカラー液晶モジュールとなると、RGBのパック化や多階調表示などマイコンで直に駆動するのは困難になってきます。デバオタならここでPLDの類とSRAMを引っ張り出してくるところでしょうけど、手軽にやるには無駄な苦労は避けて専用ICを使うのがスマートと言うものです。ということで、今回は手持ちにあったエプソンの液晶コントローラ S1D13705(旧SED1375)を使ってみました(確か、秋葉で\3k程度だったかな)。これは、各種バスI/F、80KBのSRAM、LUT、汎用LCD I/Fなどを内蔵していて、多くのSTN/TFT液晶モジュールに対応できます。320×240ドットの解像度では4096色中256色の表示が可能です。
リフレッシュ周波数は、液晶の応答速度や階調制御の有無で下限が決まってきます。この液晶モジュールの推奨リフレッシュ周波数は階調制御を考慮してか130Hzとなっていましたが、階調制御しないなら50Hz程度でも使えると思います。
右のIMGは試しに表示してみたところ。必要な電源はVDDに3.3V、VEEに+23V、それとCCFLの高圧でした。一昔前のTFT並のコントラストが得られるようですが、応答速度はもちろんSTNのトロさです(^_^;。まぁ、階調制御の関係上、あまり速くても困るのですが。さて、何に使おう...
PDAに使われているタブレットにはいろいろな方式があると思いますが、この液晶モジュールに取り付けられていたのが抵抗膜式だったので、早速食べてみました。このタイプのタブレットは、構造が単純でマイコンに直結して使えることが特徴です。構造は右のIMGに示すように、透明な導電抵抗膜が蒸着されたガラス板と樹脂フィルムをわずかな隙間をおいて積層したものとなっています。それぞれの抵抗膜には、並行する二辺に電極が設けられ、電流の向きが互いに直交するようになっています。抵抗膜の抵抗値は数100Ωです。
定常状態ではそれぞれの抵抗膜は離れていて独立した回路になっています。ここで、樹脂フィルムの左下(+点)をペンで押さえてみます。するとその点の抵抗膜が接触して、左のIMGの上に示すような回路が形成されます。ポイントされた位置を検出するには、X層に電圧を加えてY層をフローティング状態にしてY層に現れた電圧を測ればX層の座標が分かります。同様にY層の座標も知ることができます。
例として今回の実験回路を図の下側に示します。測りたい層のポートにHとLを出力して電圧を加え、もう一方の層の電圧をA/Dコンバータで測ります。当然ですが、取り込む際は適当な平均化処理でノイズを除去したり、ポイントした座標と実際のドット位置が合うように校正する機能も必要になってきます。このときポートの内蔵プルアップ(抵抗膜より十分に高抵抗)をONにすることによりオープン状態でA/D値が最大となり、押されているかどうかも同時に判断できます。
右のIMGがタブレットを使ってみたところ。これで携帯型お絵かきパッドなんてのを作るのもいいかもしれない...(素直に電子手帳買えって?(^_^;)。