ちょっとTea Time !? グラフィックLCDの憂鬱(その2) 2019.10.14

グラフィックLCDで128×64のものを使うえるようになってきました。
便利なものを手にすると、欲がでてくるのので、もっと画素数の多いLCDも使いたくなってきます。
ということで、またAMAZONで色々と物色です。
 できるだけ安いものをということで、下記を購入してみました。
使い方は・・・・まあ、なんとかなるでしょう。すくなくとも、制御用IC(ILI9341)がわかっているので、
そのデータシートも入手できていますから、時間があれば解決するでしょう。


このLCDを買ってみました。320×240画素です。さらに抵抗線式のタッチスクリーンも含んでいます。

変則的なピン配置(憂鬱その1)
 AMAZON CHOICEということもあり、国内に在庫があるようですぐに送られてきました。
中華からだと、ほんといつ到着するかわからないのでイライラしますが、これはいいですね。
で、早速開封してみると、足は2列ありますが、うまくブレッドボードに刺さりません。
おかしなピッチ(2.54mmでない)で配置されています。


ピンは2列あるのだが、その配置が不規則でブレッドボードに刺さりません。

どうやら、ネットを調べるとこのタイプのピン配置はARDUINOと呼ばれるマイコンボードに接続することを前提としてピン配置が決められているようです。


この基板に直接できるようにピン配置が決まっているようです。

ネットをくぐって、図面で下記のものをみつけました。
青枠でくくったところは2.54mmピッチになっていますが、赤枠の4.06mmがものすごく中途半端です。



備忘録代わりに寸法図を探しておきました。

タッチパッドのピンはどこ?(憂鬱その2)

 接続方法については、基板にシルクがあるのでそれをみればわかります。
インターフェイスは8ビットのパラレルで行うようです。ILI9341のデータ使途ではシリアル転送もできるようなのですが、
この基板で設定できるどうかは不明です。まあ、最初は配線が多くなりますが、パラレル転送でやりましょう。
 で、ピンをみていてタッチスクリーンに関するピンが見当たりません。
 製品説明に偽りありか?と思いましたが、ひょっとしてどこかのピンと共通でつかっているかもしれないので、
テスターで調べてみることにしました。抵抗線式のタッチスクリーンなので、該当する2本のピン間の抵抗がかなり低いはずです。
でも、高々10数ポンの端子ですが、2本の組み合わせは結構たくさんあります。しらべること数分・・・・
 
みつけました。
  RSとLCD_D0間が325Ω
  CSとLCD_D1間が560Ω
です。どうやら、ここがタッチスクリーンの端子になっているようです。
抵抗値に差があるので、長辺側の方が抵抗値の低いRS、LCD_D0間(X方向)で、
抵抗が高いCS,LCD_D1間が短辺側(Y方向)でしょう。


ピン配置。タッチパッドのピンはCS,RS、LCD_D0,LCD_D1と共用でつかっているようです。

ちなみに、4線式のタッチスクリーンの動作原理は下記の通りです。

引用: https://www.takagishokai.co.jp/product-search/2017/04/10/118

動かしてみましょう(先人に感謝!)

動かしてみようと、データシートを読みだはじめましたが、結構なボリュームなので途中で挫折しました(笑。
ということで、ネットで探して、参考になりそうなデータを集めます。
 で、結論として下記のサイトの情報が一番参考になりました。

 参考サイト → http://picceri.blogspot.com/2019/01/320240-lcd.html

そのままの活用はだめで、自分用にカスタマイズは必要です。
コンパイラの違いによる作法の修正と、データ転送のインターフェイスの違いの修正。
そして、一番面倒なのは同じ整数宣言でも参考サイトのXCコンパイラではintは32ビット(と思われる)に対して、私のつかっているintは8ビットなので、
必要に応じて、int16やint32への宣言修正です。
 これらは結構な手間ですが、でも一から自分でつくるのに比べると、はるかに楽です。ありがとうございます。

動きました!

PIC18F26K20に接続して、動作させてみることにしました。
ブレッドボードにLCDが半分しか刺さらないので、一部ラッピングワイヤーで配線しています。

こんな形で動作させてみました。

表示される文字は小さいですが、TFTということもありコントラストは良好です。
でも、おじさんの目には8×8のフォントは小さいな〜。もっどデカイフォントを探してくる必要があります。

コントラストは良好ですが、いかんせん文字が小さいです。

タッチスクリーンもつかってみました。位置補正をしていないので、ペンで抑えている場所とドットを描いている場所がずれますが、
それはまずは気にせずに、ペンをなぞった位置を適当に画面上に換算して、描画するようにしました。
 ここでの、ちょっとした問題は、タッチスクリーンの電圧検知側はペンを押し付けないと出力電圧が不定になります。
そこで、検知の端子には20kΩ程度のプルダウン抵抗をはさみました。そうすれば、ペンを押さえていないときには
電圧はほぼゼロになります。これは、同時にペンを押さえた検知にもつかえて、
 ペンを離しているとき:出力電圧は30以下 (10ビット分解能)
 ペンを押しているとき;出力電圧は位置で100〜800程度で変化(10ビット分解能)
となります。そのため、ある一定以上の値にあれば、ペンが押されたと判断することができます。


タッチスクリーンを動かしてみました。

消費電力は・・・(憂鬱その3)

動作中の消費電流を測定してみましたが、およそ150mAと結構ながれます(PIC込み)。
電池で動かすにはすこし厳しいかな〜。

まとめ
 今回320×240のLCDを動かすことができました。ちょっとした波形や図形を表示するのに便利そうです。
なにかのアプリケーションがあったら、つかってみましょう。

なお他にも、色々なLCDがあるので、ちょっと試してみたくなりました。
ちょっと試してみたいのは、シリアル転送ですね。パラレルだと、必要な配線がかなり多くなります。
また、AMAZONあたりで探してみましょう!

調子にのって・・・・

もうすこしおおきなLCDを探していたら320×480のものがあったので買ってみました。
ちょっと高かったけど、納期優先です。この6割くらいのものもありましたが、
どうも中華から発送なので、いつくるかわからなかったです、こちらをポチットしました。

今度はこれを買ってみました。

別の製品ですが、寸法図があったので備忘録として掲載しておきます。

こちらが寸法図です。

制御ICはILI9486
 制御用のICは先につかったILI9341とは違って、ILI9486のようです。 Driver chip ILI9486.pdf
ILI9341とレジスターマップを比較して、ほぼ構成は同じのようなので、おそらくソフトも同じで動くだろうとのあんちょこな考えて
ソフトは変更せず、液晶だけ入れ替えてスイッチON!

電源の保護回路が・・・・
 なんと、電源を入れた瞬間、5V電源の保護回路が動いて電源が遮断されてしまいました。
どうやら数Aの電流がながれたみたいです。あちゃ〜こわしちゃったかな?

で、何がおこったか良くわからないのですが、どうやら5V入力の端子は、さきのLCDとは違って
直接バックライトのLEDに接続されている気配です。そのため、過電流がながれたようです。
そこで、対策として5Vラインに10Ωの抵抗をはさんんで、電源供給することに。そうすれば、
消費電流が110mA程度になりましたので、このLCDの動作電流(130mA)とほぼコンパラになりました。

でも動かない・・・・
電流はほぼ正常値になりましたが、やっぱり動きません。
さきの過電流で壊したかな〜といやな考えもよぎりましたが、
なんとなくLCDがチラ、チラと変化している様子もあるので、
たぶん大丈夫だろうとのもと、ソフトを見直すことに・・・・

やっぱりちょっと違うな〜
 で、マニュアルをILI9341とも比較しながら眺めだしすと、色々なことがわかってきました。
レジスター構成は同じでも、どうやらパラメータが微妙に違っており、そのため動かなかったようです。
ということで、パラメータをちょっと修正して、再度電源ON!

動きました!
 ようやく、動き出しました!これわれなくてよかった〜です。
さすがに320×480もあると、表示可能な文字も増えますね。
でも、老眼になりつつある小生には、ちょっと厳しいです(笑


ようやく動き出しました!


画面サイズが倍あるので、表示できる量も増えました。
10月の綴りが間違っていますね。正しくはOCTOBERです。



(まずは、おしまい)