2022年1月23日日曜日

2.4 Inch LCD 240x320 7PIN(ST7789)

2.4 Inch LCDをRaspberry Piと接続してRetroPieで使用してみました。


[関連記事]


2.4 Inch LCD Display Module


以前使用したこのがある2.4インチ 240x320 SPI TFT LCD ILI9341よりも基板が小さく裏面がスッキリしているタイプのLCDを探していたら、このLCDを発見したので特になにも考えずに購入してみた。

しかし前回のLCDと違うタイプのようで、接続するピンの数から違うため前回の接続方法を使用することができなかった。
またこのタイプのLCDはネット上でも情報が少ないため、メモとして残しておきたい。





2.4 Inch LCD Display Module
2.4 Inch LCD Display Module



購入したLCD

パッケージにはILI9341V SPIとの記載があります。






2.4 Inch LCD Display Module (裏面)
2.4 Inch LCD Display Module (裏面)



LCDパネル(GMT024-10)を調べてみるとDeive ICはST7789のようです。

LCDはよく使われる2.4インチLCDと違い7ピンしかありません。
今回は下記のようにRaspberry Pi 3 Model B+と接続してみました。

CS → PIN24(GPIO8:SPI_CE0)
DC → PIN29(GPIO5)
RST → PIN31(GPIO6)
SDA → PIN19(GPIO10:SPI_MOSI)
SCK → PIN23(GPIO11:SPI_SCLK)
VCC → PIN17(3V3:power)
GND → PIN20(GND)


RetroPieをSDカードにインストールする。
今回は"retropie-4.5.1-rpi2_rpi3.img.gz"を使用。
新しいRetroPieは色々面倒なので敢えて古いバージョンを使用。
※SPIはオンにしない。



fbcp-ili9341をダウンロード
sudo apt-get install cmake cd ~ git clone https://github.com/juj/fbcp-ili9341.git cd fbcp-ili9341

st7735r.hを変更
sudo vi st7735r.h #if defined(ST7789) || defined(ST7789VW) #define DISPLAY_NATIVE_WIDTH 240 #define DISPLAY_NATIVE_HEIGHT 320
st7735r.cppを変更
sudo vi st7735r.cpp #ifdef ST7789 // // // // if ((madctl & MADCTL_ROW_ADDRESS_ORDER_SWAP)) SPI_TRANSFER(0x37, 0, 0); #endif

ビルド
mkdir build cd build cmake -DSTATISTICS=0 -DST7789=ON -DSPI_BUS_CLOCK_DIVISOR=8 -DGPIO_TFT_DATA_CONTROL=5 -DGPIO_TFT_RESET_PIN=6 -DDISPLAY_INVERT_COLORS=ON .. make -j sudo ./fbcp-ili9341
・-DSTATISTICS=0 :オーバーレイ統計の無効
-DST7789=ON :ST7789有効
-DSPI_BUS_CLOCK_DIVISOR=8 :表示速度の指定(6~30の偶数)
-DGPIO_TFT_DATA_CONTROL=5 :データ/制御(DC)をGPIO5に
-DGPIO_TFT_RESET_PIN=6 :リセットをGPIO6に
-DDISPLAY_INVERT_COLORS=ON :ネガポジ反転





/boot/config.txtを変更
sudo vi /boot/config.txt disable_overscan=1 framebuffer_width=320 framebuffer_height=240 hdmi_group=2 hdmi_mode=87 hdmi_cvt=320 240 60 1 0 0 0 hdmi_force_hotplug=1

/etc/rc.localを変更
sudo vi /etc/rc.local sudo /home/pi/fbcp-ili9341/build/fbcp-ili9341 & exit 0

再起動
sudo reboot



※設定変更時はディレクトリを削除後ビルドから
cd fbcp-ili9341 rm -rf build








RetroPieの表示
RetroPieの表示


RetroPieが表示できるようになりました。







コントラストの調整



左:変更前     右:変更後
左:変更前     右:変更後


液晶パネルの質の問題もあるかもしれませんが、表示品質が余り良くないように感じます。
特に発色が薄味で好みではないのですが、少しでも良くなるよう以下の設定を変更して様子をみることにしました。

コントラストが強すぎて白飛びしていましたので一部の設定を消してみました。


st7735r.cppを変更
sudo vi st7735r.cpp #ifndef ST7789VW // This is disabled on ST7789VW because it was observed to look visually bad, makes colors a bit too contrasty/deep //SPI_TRANSFER(0x26/*Gamma Curve Select*/, 0x04/*Gamma curve 3 (2.5x if GS=1, 2.2x otherwise)*/);^M #endif

写真ではわかりにくいのですが、ほんの少しだけマシになったような気がします。
本格的に変更する場合は、数値を入力したらいいと思いますが未確認です。







[2022.1.29追記]
起動の確認だけにはなりますが
retropie-buster-4.7.1-rpi4_400.img.gz (Raspberry Pi 4)
retropie-buster-4.7.1-rpi2_3.img.gz (Raspberry Pi 3 Model B+)
でも動作することを確認しました。



Raspberry Pi 4
Raspberry Pi 4



config.txtの変更は行わなくても動作しますが、画面の回転の問題とかはあると思います。
また"dtoverlay=vc4-fkms-v3d"を無効にしても動作して回転も一応できるところまでは確認しましたが、config.txtを変更中に一度EmulationStationの起動ができなくなると変更した設定を消しても元に戻すことができなくなることは要検証かな。

なんかPi4(Busterかもだけど)は一筋縄でいかないことが多くて面倒ですね。

0 件のコメント:

コメントを投稿