ちょっと 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)はフレームが黒の金属板なのでケースへの取り付けに向きそうです。
(おしまい)