秋月で400x96のカラーLCDモジュール【LTA042B010F】が\300という破格で販売されていました。 しかも、「メーカーに問い合わせてもカタログ<仕様書>は、もらえません。メーカーの問い合わせは、絶対に行わないようにお願いします。」とのこと。 これは使い方を解析して活用してあげなければかわいそう。ということでやりました。
毎度のことですが、ジャンクへのトライ&エラーの結果ですので、ココにある情報が必ず正しいとは言い切れません。
ジャンクなので個体差もあるかもしれません。
確かな情報が欲しければ、各個実験して動作を確認してください。
このLTA042B010Fはその過程を楽しむなかなか高度なキットだと思います、たぶん。
「この情報だけを元にプリント基盤とASIC発注したぜ、でも動かねぇぞゴルァ!!」とか言われても関知しません。
番号 | 記号 | 意味 |
---|---|---|
1 | DE | データイネーブル |
2 | CK | サンプリングクロック入力 |
3 | GND1 | GND |
4 | HS | 水平同期入力 |
5 | VS | 垂直同期入力 |
6 | UN6 | 不明 |
7 | GND2 | GND |
8 | B5 | 青データ入力MSB |
9 | B4 | 青データ入力 |
10 | B3 | 青データ入力 |
11 | B2 | 青データ入力 |
12 | B1 | 青データ入力 |
13 | B0 | 青データ入力LSB |
14 | GND3 | GND |
15 | G5 | 緑データ入力MSB |
16 | G4 | 緑データ入力 |
17 | G3 | 緑データ入力 |
18 | G2 | 緑データ入力 |
19 | G1 | 緑データ入力 |
20 | G0 | 緑データ入力LSB |
21 | +5V | 電源入力 |
22 | R5 | 赤データ入力MSB |
23 | R4 | 赤データ入力 |
24 | R3 | 赤データ入力 |
25 | R2 | 赤データ入力 |
26 | R1 | 赤データ入力 |
27 | R0 | 赤データ入力LSB |
28 | +5V | 電源入力 |
29 | Vo | コントラスト |
30 | GND4 | GND |
31 | +5V | 電源 |
32 | GND5 | GND |
33 | -9V | 電源 |
34 | GND6 | GND |
35 | +9V | 電源 |
36 | GND7 | GND |
実際に信号を入れたときの振る舞いから、各ピンの機能を以下のように解釈しました。右の表と合わせて見てください。 番号は基板のシルクに従います。
この端子をLにすると入力データが有効になります。Hの時の振る舞いは判らないので、たぶん。
[2007/05/22] 船長さん xcrOSgS2wYさんの記事によると、この端子をHにするとテストパターンが出るそうです。データ・イネーブルではないみたいです。(関連リンク参照)
この端子電圧の立ち下がりエッジで水平同期信号、垂直同期信号、色データ、が採取されます。それから、水平方向のアドレスがインクリメントされます。
CKを323クロック以上入れた後に、このピンをHにしてCKを入れてやると、水平方向のアドレスがリセットされ、垂直方向のアドレスがインクリメントされます。
この端子をHにしてCKを153クロック以上入れてやると、垂直方向のアドレスと水平方向のアドレスがリセットされます。
RGB各成分6bitで合わせて18bitを入力します。値はCKの立下りエッジで採取されます。 右のピンアサイン表に従えば正論理でMSBがR5,G5,B5、LSBがR0,G0,B0です。 秋月の資料では番号が逆に振られているので気をつけてください。
右図のようにアナログな電圧を入力してコントラスト(のようなもの)を調整します。 手元の個体では2.2Vだったので、±9Vの電流が勿体無ければ5V-GNDから生成してもよいかもしれません。
+5V,+9V,-9Vに対する0Vを供給します。パターンは内部で繋がっているみたいです。
ランドは内部で繋がっていないようなので、全てに配線して全てに5Vを供給する必要があります。
+9V,-9Vの電源をそれぞれ入力します。電圧が小さいと液晶が色を保持する時間が短くなるようです。 反対に、±12Vなどとすると液晶が色を保持する時間を長くできるのでクロックが著しく遅くても表示できるみたいです。
よく判りません。とりあえずLに固定してます。
向かって右方向にx、下方向にyとします。 左上((x,y)=(0,0))から x方向に 1画素ずつ 順に CKの立下りで 画素値を入力してゆきます。 右端まで入力できたら、一つ下の左端(0,1)から、また順にx方向に1画素ずつ順に画素値を入力してゆきます。 下端まで入力できたら、左上(0,0)に戻って再びx方向に1画素ずつ順に画素値を入力してゆきます。
入力をやめると表示は消えてしまいます。
まず、同期信号を入れない場合こんな感じ(下画)になります。 水平同期信号を入れなくとも、(107+400+53)クロック毎に、xアドレスが勝手にリセットされて、yアドレスが勝手にインクリメント(+1)されるみたいです。 また、垂直同期信号を入れなくとも、y=(107+400+53)+1になったらxアドレスとyアドレスが勝手にリセットされるみたいです。 同期を取ることはできますが、アドレスの初期値が不明なため、画像はずれて表示されます。
次に、同期信号を入れる場合こんな感じ(下画)になります。 同期信号を入力すると、アドレスがリセットされるので、確実に同期がとれます。
また、表示される領域の最後の画素値を入力したらすぐに同期信号を入れてしまうようにすば、
入力するクロック数を減らしてほんの少しフレームレートリフレッシュレートをあげることができます。
Vo端子をHi-Zにするか0Vにすると、右画の様に画素値が15辺りで飽和するので、 RGB各4bitの12bitカラーとして使用できます。 このときR4,R5,G4,G5,B4,B5はLに固定しておきます。 このLCDは一画素当りRGB各6bitで18bitの色を表現できるのですが、 配線が面倒だったりマイコンのIOが足りなかったりして、工作にはちょっと重すぎると思う場合は少し物臭できます:D。
AKI-H8/3694F で探りながら解析を進めました。 細かい工作をしてると、3694って高速大容量な部類なのですが、フルカラーの画像を扱うとなると足らないです。 こういうのは、デバイスとしてはPLDの出番だと思います。 それと、エンディアンを逆に配線してしまったので十分なスキャン速度が得られませんが置いておきます。 18bit×200×48の画像を内蔵ROMいっぱいに格納して、縦横2倍に拡大表示するプログラムです。
秋月のAE3069LAN(H8) と 付録基板のCQ-7144A(SH2) とで動きのあるものを表示してみました。 回路・ソースコードは夏コミ(C74)を目処に公開します。
本2nd(PDF版)公開しました。naruの記事はそのうちhtml化します。