スイッチサイエンスでSeeed StudioのXIAO用ディスプレイを買いました。
Seeed Studio XIAO用円形ディスプレイ - 1.28インチwww.switch-science.com
タッチパネルだけじゃなくRTCやTFカードスロットなどもついており、裏にXIAOが接続できるのでコンパクトで組み込みも楽そうです。
丁寧なGetting Startedも用意されており、LVGLを使ったサンプルを動かすところまであっという間にできちゃいます。
このままでも色々作れそうですが、やっぱりLovyanGFXを使いたいのでポーティングしておきます。このLCDを使うその時のために・・
仕様
私の探し方が悪いのかパネル部分のデータシートが見当たらないので、ソースコードから使い方を調べます。
LCD
TFT_eSPI ライブラリの Setup66_Seeed_XIAO_Round.h
でドライバやポートの設定がわかります。
こちらをみる限りドライバは GC9A01 のようです。これはLovyanGFXで対応されているので楽チンです。
ポートの接続は以下の通り。
ピン(XIAO) | GPIO | |
---|---|---|
SCLK | D8 | 7 |
MISO | D9 | 8 |
MOSI | D10 | 9 |
CS | D1 | 2 |
DC | D3 | 4 |
BL | D6 | 43 |
RST | N.C. | N.C. |
SPIのクロックは
クロック | |
---|---|
書き込み | 40MHz |
読み込み | 20MHz |
タッチパネル
タッチパネルの実装はここから読み取れます。
定数や関数名をみる限り CHSC6xというデバイスなんでしょうか・・? データシート探したけど見つからなかったのでコードの内容だけを頼りに実装します。
ピン(XIAO) | GPIO | |
---|---|---|
SDA | D4 | 5 |
SCL | D5 | 6 |
INT | D7 | 44 |
INTのピンがLOWに落ちた時がタッチ状態で、I2Cで座標を取得します。
仕様はよくわかりませんが、 アドレス 0x2E から 5バイトの読み込みを行い、1バイト目が1の時に座標を取得しています。
3バイト目がX座標、4バイト目がY座標になります。
実装
これらの仕様を実装した例です。
円形のディスプレイなので、タッチしてグリグリすると画像が回るサンプルになっています。
チャタ除去で10msの待ちを入れてますが滑らかに動いてます。さすがLovyanGFXですね!
Seeed Studio Round Display for XIAO のLovyanGFXポーティングできたのでCDを回した。XIAO はESP32S3使ってます pic.twitter.com/abP2plTXp7
— イナバ (@hollyhockberry) 2023年6月3日