ちょっと Tea Time!? 480x320LCD(ST7796)は動くか? 2024.11.27

結論: (従来作った)ILI9340のライブラリがそのままつかえます。

SPIあるいはI2Cで使えるグラフィックLCDは配線数も少なくて、便利に使えます。
手元でSPIで使えるものは320x240しかありません。480x320のものは、8ビットパラレル
なので、マイコンのI/Oをかなり消費してしまいます。そこで480x320以上の画素を持つもの
でSPIあるいはI2Cのものを探していたらありました。


夜な夜なALIを見ていてこれを見つけました。

モノが届いて裏面をみてみると、色々なインターフェイスに対応しているようです。
P8は8ビットパラレル、P16は16ビットパラレルです。ただ、これらはフレキでの接続
になるので使うのは難しいです。デフォルトはSPIです。ところでSPI3ってなんだろう?

デフォルトはSPIに設定されています。

使い方が探せない!

どうやって使うかは、ネットを探せばすぐに見つかるでしょう。
一応データシートはダウンロードです。ただ、膨大なページなので見る気はしません。
ST7796S_spec.pdf

ネットを探しますが、なかなか使えそうなものがでてきません。
とにかくC言語でもマイコンのポートを直接使うものだから、記述が全然違います。
仕方なく、データシートを眺める必要があるかな〜と思っていたら、

他のライブラリと共通?
 なにやら、ST7796が動くライブラリで他のLCDも動くような記述があるのを見つけました。
それなら、無茶苦茶楽です。さっそく、現有の基板で320x240用のLCDと交換してみることに。
そうすると、難なく動いてくれました。
 ただ、もとのライブり自体が320x240を前提にしてあるので、画面の一部しかアクセスしていません。

320x240のLCDとはピン配置が異なるので、配線を変換しています。


動きました。ただ、320x240用のライブラリなので画面の一部分しか使えていません。

そこで、ライブラリでの画素数の定義を320x240→480x320に変更して、再度実行です。
今度は、画面がフルで使えました。


ライブラリの定数を480x320に変更するだけで、問題なく使えました。下半分はカラーで横線を引いてみました。

どうせなら

ライブラリが共通で使えるなら、次いでにLCDのピン配置も同じにしてくれればいいのになあ〜。
ちなみに、基板にSCL,SDAとあるのでI2Cかと思ってしまいましたが、単にクロック、データという意味のようです。

左(320x240 ILI9340) 、右(480x320 ST7796) RST,BLはVCC接続でも可。

まとめ
 ILI9340とST7796はソフトはコンパチのようなので、同じライブラリが使えました。
 このLCD(480x320)はフレームが黒の金属板なのでケースへの取り付けに向きそうです。

(おしまい)