以前秋月より購入したまま家の中で眠っていた(衝動買いしたが使い方が?で・・)、シャープ製液晶ディスプレイLM32C041
を制御してみました。
LM32C041仕様(データシートより)
5.5インチパッシブカラー液晶表示器 表示画素 320x240xR・G・B各3ビット(512色)
電源 ロジック制御電源 5V(4.25-5.25V)、液晶駆動電源 30V(28.5-31.5V)、バックライトインバータ電源(別途必要)
制御信号定格(VSYNC周期を除きMIN値)
垂直同期信号(VSYNC) L幅:3HSYNC、H幅:248HSYNC、VSYNC周期(フレーム周期):12.5-20ms
水平同期信号(HSYNC) L幅:3DCK、H幅:376DCK
ドットクロック信号(DCK) L幅:40ns、H幅:40ns、DCK周期:100ns(10MHz以下)
制御信号設計
DCKの周波数は、データシートを見るとフレーム周期から逆算すると最低4.76MHzとなり、AVRで制御することを考えると
(3+248)x(3+376)=95129DCK 95129/20ms=4.76MHz
CPUクロックが15MHzでも3クロック時間しかないので、データ設定等の処理時間が取れないことになります。
(SRAM1バイト読み込みPORT出力で3クロック、以前はここで断念)
しかし、最近知ったことですがアナログ表示では連続してデータを送り続けないと表示が残らないが、デジタル表示であれば
途中でとめても表示は固定される。(DCKを止め、他の処理を割り込ませられる)
これなら、何とかできそうなので16MHz動作のMega8で組むことにしました。
DCKは、バックグランドで処理させるためタイマカウンタ1の高速PMW制御でOC1Aに出力させました。
(カウンタ1のTOP値をICR1Aとし、OCR1Aと一致したときにOC1Aをトグル出力します。)
PMW周期をCK(CPUクロック)の1/3でデューティ比は1/3です。
タイミングチャートのフロー
液晶電源+30V回路
通常+30Vを使うことがないので、どうやって作くるのかわかりませんでしたが、これもインターネットで探しタイマIC555を利用した
コッククロフト・ウォルトン回路という昇圧回路を利用しました。
電圧調整は555に接続した10kΩ可変抵抗でおこないますが、本体19-20PのVRが変わると変動するので相互に調整が必要でした。
液晶バックライトインバータ回路
LM32C041には、バックライト用に冷陰極管が2本付属していますが、インバータ回路が付いてないので自分で用意しなければなり
ません。(現在手配中、秋月では売り切れ中)
回路図
製作図
プログラムソース (ヒューズビット 上位:C9、下位:EE)
縦横各4分割(赤・緑・青・白)表示1秒更新、R1ビットはPC4で設定、PC5でSTOP設定
実行結果 バックライトをはずし、背面から電球型蛍光灯で照らしているので暗く色むらがある。
(左側は基板にさえぎられているためくらい。)
とりあえず、単純な表示ができた。
次は、画像データの表示に挑戦したい。