本文へスキップ
Display Engineer
タッチコントローラ · Hynitron

CST816S:データシート、ピン配置、初期化コード

CST816Sは、Hynitron製のシングルタッチ静電容量式タッチコントローラで、I2Cインターフェースと内蔵ジェスチャー機能を備え、1.28″ 240×240モジュールなどの小型・丸形ディスプレイに使用されています。

DEDisplay Engineer Applications Team · ディスプレイ アプリケーションエンジニア更新日 2026年10月21日
メーカーHynitron
種類タッチコントローラ
インターフェースI2C
最大解像度1 touch point

CST816Sの概要

項目

値

出典

I2Cアドレス(7ビット)

0x15

Espressif esp_lcd_touch_cst816s、Linuxデバイスツリーの例

タッチポイント数

1(1本の指)

EspressifドライバーおよびREADME

タッチデータ

0x01(ジェスチャー)から開始、続いて0x02(指の数)、Xは0x03–0x04、Yは0x05–0x06

Linux hynitron-cst816xドライバー

チップIDレジスタ

0xA7

Espressifドライバー

Linux互換

hynitron,cst816s

Linuxデバイスツリーバインディング

タッチの読み取り

Linuxドライバーはレジスタ0x01から6バイトを読み取ります:

レジスタ

内容

0x01

ジェスチャーコード

0x02

指の数(0または1)

0x03–0x04

X、ビッグエンディアン、下位12ビット

0x05–0x06

Y、ビッグエンディアン、下位12ビット

Linuxドライバーが処理するジェスチャーコード:0x01 上スワイプ、0x02 下スワイプ、0x03 左スワイプ、0x04 右スワイプ、0x0C 長押し。

CST816Sはタッチするまで応答しない

EspressifのREADMEは、このチップが「タッチ検出などのイベントが発生した後にのみI2Cコマンドに応答する。初期化時に応答を期待しないこと」と警告しています。そのため、起動時のI2Cスキャナーでは0x15で何も見つからないことが多く、ESPHomeには起動時のチップID読み取りをスキップするskip_probeオプションが用意されています。一部のチップではIDの読み取りが初期化失敗の原因になりうることにも言及しています。スキャン中は画面にタッチするか、IDチェックをスキップしてください。

リセットと割り込み

  • Linuxドライバーはリセットを50 ms間駆動した後、解放して100 ms待機します。Espressifのドライバーはそれぞれの段階で200 ms待機します。
  • EspressifのドライバーではINTは任意です(ポーリングも可能)。Linuxドライバーは割り込みを要求し、割り込みがなければプローブに失敗します。

ファントム(ゴースト)タッチ

ある開発者が、Waveshare ESP32-S3-Touch-LCD-2上のCST816Dが、誰もタッチしていないのにタッチを報告するテストスケッチを公開しています。2枚のボードで、Waveshare純正のデモコードを使用した状態で、主に垂直中心線に沿って発生しました。修正は確認されていません。ゴーストタッチが発生した場合は、まずベンダーのデモを実行してハードウェアとコードを切り分け、その後ソフトウェアでのタッチフィルタリングを行う前に、ボードの電源とグランディングを確認してください。

関連するタッチコントローラー

ESPHomeのcst816コンポーネントは、CST716、CST816D、CST816S、CST816T、CST820、CST826、CST836に対応しています。4″〜7″のマルチタッチパネルについてはGT911を、1.28″のラウンドディスプレイについてはGC9A01 + ESP32ガイドをご覧ください。

ガイドと比較

CST816S トラブルシューティングと FAQ

CST816SがI2Cで検出されないのはなぜですか?

CST816Sはタッチなどのイベントが発生するまでI2Cに応答しないため、起動時のI2Cスキャンでは0x15が見つからないのが通常です。スキャン中に画面をタッチするか、先にリセットを解除してください。ESPHomeではskip_probe: trueを設定します。チップによってはIDの読み出しにより初期化が失敗することがあるとEspressifも注意喚起しています。

CST816Sはマルチタッチに対応していますか?

いいえ、対応していません。1本の指の検出のみを報告し、Espressifのドライバーもポイント数を1に制限しています。ただしジェスチャー(上下左右のスライド、ロングプレス)は報告できます。マルチタッチが必要な場合はGT911クラスのコントローラーを使用してください。

CST816でゴーストタッチ(誤検出)が発生するのはなぜですか?

Waveshare ESP32-S3-Touch-LCD-2に搭載されたCST816Dが、ベンダー純正のデモコードの状態で画面の垂直中心線上にタッチを誤報告したという公開事例があり、確定した修正方法はまだありません。まずベンダーのデモを実行して自作コードを切り分け、その上でソフトウェアによるタッチフィルタリングの前に、電源とグランドを確認してください。

出典

  1. Espressif ESP-BSP:esp_lcd_touch_cst816sドライバー
  2. Espressif ESP-BSP:esp_lcd_touch_cst816s README
  3. Linuxカーネル:drivers/input/touchscreen/hynitron-cst816x.c
  4. Linuxカーネル:hynitron,cst816xデバイスツリーバインディング
  5. ESPHome:CST816タッチスクリーン
  6. seanuleh:Waveshare ESP32-S3-Touch-LCD-2(CST816D)向けゴーストタッチテストスケッチ

どのディスプレイが設計に合うか迷っていませんか?

サイズ、インターフェース、ホストプロセッサをお知らせください。ディスプレイエンジニアが 12 時間以内に、データシートと初期化コード付きで 2〜3 件の候補をお返しします。サンプルは 1 個から。