Basic library for SHARP LCD LS027B4DH01/LS027B7DH01
Dependents: AkiSpiLcd_demo AkiSpiLcd_demo2 LCDRAM AkiSpiLcd_example
Revision 29:cc44667bd084, committed 2016-10-14
- Comitter:
- K4zuki
- Date:
- Fri Oct 14 01:53:52 2016 +0900
- Parent:
- 28:25497b32c4b1
- Child:
- 30:d5c18e268866
- Commit message:
- Backed out changeset 242c02ed28e6
Changed in this revision
markdown/1.0_BoardDesign.md | Show diff for this revision Revisions of this file |
--- a/markdown/1.0_BoardDesign.md Fri Oct 14 01:53:45 2016 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -# 基板の設計 -## 液晶(_LS027B7DH01_)の仕様 -~~データシート[^16]を参照したらわかりますよね~~ - -- 5V単一電源で動作、低消費電力 -- 2.7インチモノクロTFT液晶 -- 400 x 240ドットで高解像度 -- 液晶が画素メモリを保持 - コントローラのVRAMが不要 -- 最大6本の信号が必要 -- 画素の情報を保持したまま表示をオンオフできる端子がある(**`DISP`**) -- 画面焼け防止のためのモード選択及びクロック入力端子がある(**`EXTMODE`/`EXCOMIN`**) - -この液晶の操作には最低3本の信号線が必要です: - -- **SI/MOSI**:SPIマスターからのデータ線 -- **SCLK/SCK**:SPIクロック線 -- **SCS/CSL**:スレーブセレクト信号線 - - 他のSPIスレーブデバイスはLアクティブが主流です(よく見かけます)が - この液晶はHアクティブで動作します。 - -ブレークアウト基板ではこの他にSPI-SRAMのセレクト信号とMISO出力がピンヘッダに -つながっています。一方、表示をオンオフする端子をH固定、画面焼け防止モード -選択端子はL固定、クロック入力端子は開放してあります - -## 5V単一で動くという話だけど... -この液晶は5V単一電源で動作させられますが、データシートでは信号電圧は3Vが -推奨されています。このブレークアウト基板では、SRAMの仕様に合わせて -レベルシフタと3.3V出力レギュレータを使って信号を3.3Vに変換しています。 -5Vで動作するマイコンでも3.3V出力ならばハイレベルと認識するので - -## 高解像度だけど... -400x240ドットが2.7インチに収まっているのはいままでにない高解像度で素晴らしいの -ですが、マイコンから操作する視点に立つと`400 x 240 = 96000`ドット分のメモリが必要に -なります。モノクロ2値で保持されているので[^11]実際は`96000 / 8 = 12000`バイト -ということになりますが、Arduinoでは外部メモリなしには考えられないサイズ[^12]です。 -mbedなら品種によりますが動かせるので、筆者は当初から青mbedで実験していました。 - -## SRAMの存在意義 -_擬似DMA_ というものをご存知でしょうか。ChaNさん[^13]の記事にパラレルバスでSRAMから -カラー液晶にデータを流しこむ方法として掲載されていたもの[^14]です。SRAMと液晶の -セレクト信号を同時に操作して、SRAMを読み出す操作が同時に液晶の書込みになる -というものです。CPUが読み出し操作をするので正しい意味でのDMAではありませんが、 -それぞれを読み書きするよりは早く済みます(単純に半分程度の時間で済む)。 - -これをSPIバスで実現しました:SPI-SRAMと液晶のセレクト信号を同時に[^15] -イネーブルにして、読み出されたデータをそのまま液晶への命令にします。したがって -SRAMには画像データと液晶への命令データが書かれていなければなりません。 - -<!-- --> -[^11]: ちなみにこれがカラー液晶だとRGB各1ビットだとしても少なくともこの3倍必要な計算に -なります。ムリダナ -[^12]: ArduinoのメインマイコンATMega328のSRAMは2KBです。まぢ無理... -[^13]: http://elm-chan.org/index_j.html -[^14]: http://elm-chan.org/docs/avr/avrdma_j.html -[^15]: TODO:実際はSRAMの読み出し命令を書き込んでいる間、液晶はセレクトされません -[^16]: http://www.mouser.com/ds/2/365/LS027B7DH01-542063.pdf