ILI9325/9341/9342の2.4インチパラレル TFTモジュールを使う


ILI9325/9341/9342の2.4インチパラレルTFTモジュールが動きましたので紹介します。
写真を見て分かるように、完全にArduino UNO用のシールドモジュールです。
Arduino用なので5V駆動(背面のレギュレータで3.3Vに降圧)が基本ですが、ILI9342はレギュレータが実装されていないので 3.3V駆動です。

ILI9325




カラーバーを表示すると分かりますが、あちこちドットが抜けていることが分かります。


ILI9341




こちらのカラーバーはきれいに表示されます。


ILI9342

見た目、ILI9341とそっくりですがレギュレータが実装されていないので3.3V駆動です。
またフラットケーブルの取り付け位置が違います。



こちらのカラーバーもきれいに表示されます。


こちらで 紹介されているとおり、mcufriend.comの2.4インチシールドモジュールには多数のバリエーションが有ります。
裏面にLCDコントローラーの型番が刻印されていることが有りますが、刻印もない時は、
こちらのツールを使って、LCDコン トローラーを特定する必要が有ります。
このツールはこ ち らで公開されているArduino用の「LCD_ID_readreg」を移植しただけです。

これらのモジュールは、全て240x320の解像度です。
座標軸の設定(X=0、Y=0の場所やX,Yの増分方向)はTFTの初期化パラメータで変更することができますが、以下の様に設定しています。


Raspberry用のソースはこ ちらで公開して います。
git clone https://github.com/nopnop2002/ili9325_rpi
cd ili9325_rpi
cc -o ili9325 demo.c ili93xx.c fontx.c -lwiringPi -lm -DILI9325
cc -o ili9341 demo.c ili93xx.c fontx.c -lwiringPi -lm -DILI9341
cc -o ili9342 demo.c ili93xx.c fontx.c -lwiringPi -lm -DILI9342

モジュールとPiとの接続は以下の様になります。
パラレルI/Fなのでピンをたくさん使います。
TFT RPi/OPi(Pin#)
LCD_RST Pin#7
LCD_CS Pin#3
LCD_RS Pin#5
LCD_WR Pin#26
LCD_RD Pin#28
LCD_D0 Pin#29
LCD_D1 Pin#31
LCD_D2 Pin#33
LCD_D3 Pin#35
LCD_D4 Pin#37
LCD_D5 Pin#32
LCD_D6 Pin#36
LCD_D7 Pin#38
5V 5V(*)
3.3V 3.3V(*)
GND GND

(*)レギュレータが実装されていれば5V駆動、実装されていなければ3.3V駆動です。

簡単なグラフィック関数が含まれています。








フォントファイルはFONTX形式のファイルを使っています。


複数のフォントを同時に使う事ができます。


WiringPiライブラリしか使っていないので、OrangePiでも動きます。


ピンをたくさん使うのが嫌な時は、74x595(シフトレジスター)経由でも動かすことができます。
但し、メチャクチャ遅くて、ほとんど使い物にはなりません。
git clone https://github.com/nopnop2002/ili9325_rpi
cd ili9325_rpi
cc -o ili9325 demo.c ili93xx.c fontx.c -lwiringPi -lm -DILI9325 -DSR595
cc -o ili9341 demo.c ili93xx.c fontx.c -lwiringPi -lm -DILI9341 -DSR595
cc -o ili9342 demo.c ili93xx.c fontx.c -lwiringPi -lm -DILI9342 -DSR595

この場合のモジュールとPiとの接続は以下の様になります。
TFT RPi/OPi(Pin#) 74x595
LCD_RST Pin#7
LCD_CS Pin#3
LCD_RS Pin#5
LCD_WR Pin#26
LCD_RD Pin#28
5V 5V(*)
3.3V 3.3V(*)
GND GND
LCD_D1
QB(Pin#1)
LCD_D2
QC(Pin#2)
LCD_D3
QD(Pin#3)
LCD_D4
QE(Pin#4)
LCD_D5
QF(Pin#5)
LCD_D6
QG(Pin#6)
LCD_D7
QH(Pin#7)

GND GND(Pin#8)

N/C QH'(Pin#9)

3.3V SRCLR(Pin#10)

Pin#18 SRCLK(Pin#11)

Pin#22 RCLK(Pin#12)

GND OE(Pin#13)

Pin#16 SER(Pin#14)
LCD_D0
QA(Pin#15)

3.3V VCC(Pin#16)

(*)レギュレータが実装されていれば5V駆動、実装されていなければ3.3V駆動です。

これらのモジュールはどれもFrameBufferコンソールとして使うことができました。
FrameBufferコンソールについては、こちらで紹介しています。

続く....