STM32WB - TSC
タッチセンシングコントローラ

1.0 版

こんにちは。STM32 タッチセンシングコントローラ（TSC）のプレゼンテーションへようこそ。TSC によって、設計者はどのようなアプリケーションにもタッチセンシング機能を簡単に追加することができます。

1

概要

2

• 静電容量センシングテクノロジーを提供• 表面電荷移動取得の原理• 最大 21 の静電容量センシングチャネル• 詳細な設定が可能• BOM の削減

アプリケーション側の利点• 楽しく、ユーザーフレンドリーなインタフェース• 密閉された環境による信頼できるタッチボタン• 機械部品不要

近年、タッチセンシングは、携帯電話、IH 調理器やオーブン、コーヒーメーカーなど、多くのアプリケーションで非常に一般的になりました。このタイプのインタフェースは、機械部品が不要なため、標準的な押しボタンより柔軟性と信頼性があります。
STM32WB デバイスに内蔵されているタッチセンシングコント
ローラ（TSC）は、そのようなインタフェースを管理する簡単な手段を提供します。TSC は最大 21 の静電容量センシングチャネ
ルで安定した電荷移動取得原理をサポートします。詳細な設定が可能であり、少数の外部コンポーネントだけでユーザフレンドリーなインタフェースを設計できます。

2

主な機能

3

• いくつかの STM32 MCU シリーズで使用可能な実績ある表面電荷移動取得原理• ７つのアナログ I/O グループで分割される最大 21 の静電容量センシングチャネルをサポート• チャネルとアナログ I/O グループの数は、使用される MCU に依存• 最大 7 つの静電容量センシングチャネルを並行して取得できるため、非常に良好な応答時間• 最大 3 つの静電容量センシングチャネルに対して 1 つのサンプリングコンデンサにより、システムコンポーネントを削減• スペクトル拡散による電荷移動取得シーケンスの完全なハードウェア管理のため、ノイズの多い環境でのシステムの安定性が向上• 対応する STM32Cube パッケージで無料で入手可能な STM32Cube タッチセンシングライブラリで動作するように設計されている• 処理機能の強化により、最適化された感度とイミュニティ• 近接、タッチキー、リニア、およびロータリータイプのタッチセンサに対応

タッチセンシングコントローラの主な機能は、次のとおりです。
• いくつかの STM32 MCU シリーズ（STM32F0、STM32F3、STM32L0、および STM32L4）で使用可能な実績ある電荷移動取得原理。
• 7 つのアナログ I/O グループに分割される最大 21 の静電容量センシングチャネルをサポートします。チャネルとアナログ I/O グループの数は、選択された MCU に依存します。
• 最適なパフォーマンスのために、最大 7 つの静電容量センシングチャネルを並行して取得できます。このため、非常に良好な応答時間を実現します。
• 1 つのサンプリングコンデンサだけで最大 3 つの静電容量センシングチャネルを管理できます。このため、BOM が減ります。
• 電荷移動取得は完全にハードウェアによって管理されるため、CPUのオーバーヘッドが軽減されます。スペクトル拡散機能の使用により、ノイズの多い環境でのシステムの安定性が向上します。
• 最後に、タッチセンシングコントローラは、対応する STM32Cube パッ
ケージで無料で入手可能な STM32Cube タッチセンシングライブラリで動作するように設計されています。このライブラリは、安定した静電容量センシングソリューションの開発に必要なすべての処理を提供し、近接、タッチキー、リニア、およびロータリー式タッチセンサをサポートします。

3ブロック図4

SYNC
パルス発生回路

fHCLK

クロックプリスケーラ
スペクトル拡散I/O 制御ロジック

G1_IO1
G1_IO2
G1_IO3
G1_IO4

グループカウンタ
割込み

TSC_IOG1CR
TSC_IOG2CR

TSC_IOGxCR

Gx_IO1
Gx_IO2
Gx_IO3
Gx_IO4

十分なクロック分解能を提供するために、TSC は AHB クロックを使用して直接クロック供給されます。このクロックはスペクトル拡散ブロックによって使用され、パルス発生回路に供給するクロックはプリスケーラーを使用して分周されます。タッチセンシン
グをサポートする GPIO は、タッチセンシングコントローラに接続できるように、オルタネートモードに設定される必要があります。
静電容量センシング取得と外部刺激を CPU の相互作用を必要とせずに同期するために、SYNC 入力ピンが使用されます。1 つのアナログ I/O グループについて 1 つのカウンタが使用されて、取得結果を保存します。すべての有効なアナログ I/O グループの取得完了時、またはエラーが検出されたときに、割込みを生成できます。この割込みにより、CPU のオーバーヘッドが制限されます。

4

電荷移動取得の概要• 電荷移動には、コンデンサ（電荷 Q）の電気特性を使用

5チャージサイクル• センサコンデンサ（CX）は VDD にチャージされます。完全に充電されると、コンデンサの電荷の一部がサンプリングコンデンサ（CS）に移動されます。
VIH• GPIO に直接内蔵されたアナログスイッチを使用して、電荷が移動されます。
• サンプリングコンデンサの電圧が、接続している GPIO の VIH
閾値に達するまで、電荷移動サイクルは N 回繰り返されます。
• 閾値に達するまでに必要な移動サイクル回数 N は、CX のサイズを表します。
•VDD
電極コンデン
サの充電センサに触れると、移動サイクルの数は減少します。

電荷移動

電荷移動取得技術は、コンデンサの電気特性を使用して機能します。センサコンデンサ（CX）を VDD まで充電します。このコンデンサが完全に充電されると、累積された電荷の一部がサンプリングコンデンサ（CS）に移動されます。サンプリングコンデンサに移動される電荷の数は、係数 CX/CS に依存します。電荷移動サイクルは、サンプリングコンデンサの電圧が閾値（この例では VIH）に達するまで N 回繰り返されます。数 N は、CX のサイズを表します。
接触があると、センサコンデンサが増加するため、センサコンデンサからサンプリングコンデンサに移動される電荷の量が多くなり、電荷移動サイクルの回数が減ります。
電荷移動は、GPIO に内蔵されているアナログスイッチを通じて行われます。

5電荷移動測定回路

6• ESD の安定性を高めるために、RS（一般に 1kΩ）が使用されます。
• CS サンプリングコンデンサ値は、必要なチャネル感度に依存します。
• CS 値が高いほど、感度は高くなりますが、取得時間が長くなります。

STM32 デバイス

G1_IO1

G1_IO2G1_IO3

RSRSRSCX(~20 pF)

G1_IO4CS

測定回路は単純です。4 つの I/O から成る 1 つのアナログ I/Oグループを考えてみましょう。これらの I/O の 1 つは、サンプリングコンデンサ I/O です。これは、一般にサンプリングコンデンサと呼ばれる外部コンデンサ（CS）に接続されています。アナログ I/O
グループごとに 1 つのサンプリングコンデンサがあります。サンプリングコンデンサ値は、チャネル感度に依存します。CS が高いほど、感度は高く、取得時間は長くなります。
他の 3 つの I/O は、チャネル専用です。それぞれ、直列抵抗（RS）を通じてセンサの電極に接続されています。RS はアプリ
ケーションの ESD の安定性を高めるために使用されます。1 つのアナログ I/O グループ内で、一度に 1 つのチャネルだけが取得されます。つまり、3 つのチャネルが実装された場合、3 つのセンサのイメージを取得するには、3 回連続の取得が必要です。
最適なパフォーマンスのためには、センサキャパシタンスはできるだけ低くなければなりません。多くの場合、このコンデンサ値は数十ピコファラドと考えられます。タッチがあると、センサキャパシタンスは数ピコファラド、たとえば 5ピコファラド増加します。

6電荷移動取得シーケンス
S1

S2
S5

S4

7

CX

S4 は取得中は閉
S5＆S6 は取得中は開

S6
S3

CS

IO レジスタ
VCS が論理「1」になるまで繰り返される

ステップ

S1

S2

S3

説明

1

閉

オープン

閉

CS & CX 放電

2

オープン

オープン

オープン

デッドタイム

3

オープン

閉

オープン

充電サイクル（CX 充電）

4

オープン

オープン

オープン

デッドタイム

5

閉

オープン

オープン

移動サイクル（CS に電荷移動）

6

オープン

オープン

オープン

デッドタイム

7

オープン

オープン

オープン

Cs で電圧を読み取る

電荷移動取得シーケンスは、7 つのステップから成ります。
まず、サンプリングコンデンサとセンサコンデンサが放電され、アナログスイッチ S1 を閉じ、S3 を有効化することによって、安定した開始点が得られます。取得アーティファクトを避けるため、各主要ステップの間に中間ステップが挿入されます。このステップはデッドタイムと呼ばれ、アクティブなアナログスイッチをすべて開き、アクティブなトランジスタをすべて無効化することで構成されます。
次に、S2 を閉じることによって、センサコンデンサ（CX）が VDD まで充電されます。
デッドタイム後、アナログスイッチ S1 を閉じることによって、CXに累積された電荷の一部がサンプリングコンデンサ CS に移動されます。
電荷が移動されると、CS の電圧（VCS）が読み取られます。電圧が VIH, より低かった場合は、論理「0」が返されます。電圧が VIH,より高かった場合は、論理「1」が読み取られます。返された論理値が「0」の場合、ステップ 3～7 が繰り返されます。電荷移動
ループごとにカウンタが増加され、センサの静電容量を表します。

7

I/O 設定

8• サンプリングコンデンサ I/O は• オルタネート出力オープンドレインとして設定され、シュミットトリガヒステリシスは無効• チャネル I/O は• オルタネート出力プッシュプルモードとして設定される

タッチセンシング GPIO が TSC によって制御されるためには：• サンプリングコンデンサ I/O はオルタネート出力オープンドレインモードで設定される必要があります。また、アーティファク
トを避けるために、シュミットトリガヒステリシスは無効化されなければなりません。
• チャネルコンデンサ I/O はオルタネート出力プッシュプルモードで設定される必要があります。

8

取得モード9• CPU の負荷を軽減する柔軟な取得モード• 通常取得モード• TSC ペリフェラルが設定されると、TSC_CR レジスタの START ビットをセットすることによって取得が開始されます。

• 同期取得モード• TSC ペリフェラルが設定されると、SYNC 入力ピンの立ち下がりまたは立ち上がりエッジとハイレベルの検出時に取得が開始されます。
• このモードは、一部のアプリケーション（IH 調理器など）でノイズの影響を制限するのに役立ちます。

• どちらのモードでも、取得の終了および／または最大カウントエラーは、ポーリングまたは割込みによって管理できます。

CPU の負荷を軽減するために、2 つの取得モードがサポートされます。
• 通常取得モードでは、TSC_CR レジスタの START ビットをセットすることによって取得が開始されます。
• 同期取得モードでは、SYNC 入力ピンの立ち下がりまたは立ち上がりエッジとハイレベルの検出時にのみ、取得が開始されます。このモードは、IH 調理器など、一部のアプリケーションにおいて、ノイズの影響を制限するのに役立ちます。

どちらのモードでも、取得の終了および／または最大カウントエラーは、ポーリングまたは割込みによって管理できます。

9

GPIO アナログスイッチおよびヒステリシス制御

10

柔軟で多用途な GPIO

• タッチセンシングコントローラは、アナログ I/O グループに属する GPIO の内蔵アナログスイッチとヒステリシスの両方について、手動制御も提供します。
• これは、さまざまな静電容量検知取得原理やその他の目的（アナログマルチプレクサ）の実装に役立ちます。

電荷移動の容量取得原理の管理に加えて、TSC ペリフェラルでは、設計者は、アナログ I/O グループに属する I/O のアナログスイッチとシュミットトリガヒステリシスを個別に制御できます。この機能は、さまざまな静電容量検知取得原理や、アナログマルチプレクサなど、その他の目的の実装に役立ちます。

10

割込み
割込みイベント

説明

取得完了

取得完了時にセットされます。

最大カウントエラー

最大カウントエラーが発生したときにセットされます。
最大カウントエラーの管理は、チャネル異常（CS の短絡など）の発生時に無限取得に陥るのを避けます。

TSC ペリフェラルは、2 つの割込みソースを備えています。
• 取得終了。アクティブチャネルのすべてが取得されると、CPUに通知されます。
• 最大カウントエラー。1 つ以上のチャネルで取得が失敗すると、セットされます。ハードウェア障害の発生時に無限取得の防止に役立ちます。

11

低電力モード
モード

説明

RUN

アクティブ

SLEEP

アクティブ。ペリフェラル割込みによって、デバイスは SLEEP モードを終了します。

低電力 RUN

アクティブ

低電力 SLEEP

アクティブ。ペリフェラル割込みによって、デバイスは低電力 SLEEP モードを終了します。

STOP 0/STOP 1/STOP 2停止。ペリフェラルレジスタの内容は保たれます。

STANDBYSHUTDOWN

パワーダウン状態です。ペリフェラルは、STANBY または SHUTDOWN モード終了後に再初期化する必要があります。

タッチセンシングコントローラは、RUN、SLEEP、低電力 RUN、および低電力 SLEEP モードでアクティブです。これは、電荷移動取得が、これらのモードでのみ実行できることを意味します。
他のすべてのモード（STOP 0、STOP 1、STOP 2、STANDBY、および SHUTDOWN）では、タッチセンシングコントローラは動作しません。 STOP モードでは、ペリフェラルは停止しますが、レジスタの内容は保持されます。STANDBY および SHUTDOWN
モードでは、レジスタの内容は失われ、ペリフェラルを再初期化する必要があります。

12アプリケーション例

注：
1.
2.
3.

13

ESD 直列抵抗とサンプリングコンデンサは、可能な限り MCU の近くに配置する必要があります。
サンプリングコンデンサは COG タイプ以上でなければなりません。
タッチコントローラに電源供給する専用の低ドロップアウト電圧レギュレータが推奨されます。

この例は、6 つのタッチキーと 1 つのリニアタッチセンサを持つソリューションを示しています。専用の電圧レギュレータが使用されていることと、最適な伝導雑音耐性のためにアクティブシールドも使用されていることに注目してください。サンプリングコンデン
サには COG タイプのコンデンサが使用されています。このタイプは、広い温度範囲で良好な安定性を備え、メモリ効果がありません。

13アプリケーションのヒントとコツ

14• 電源電圧の変動によって誘発されるノイズを最小化するために、電圧レギュレータが推奨されます。
• 最適な感度のために、グラウンドへの寄生静電容量を最小化する必要があります。
• センシングトラックは、可能な限り短くしてください。
• 細いセンシングトラックが推奨されます。
• 直列抵抗とサンプリングコンデンサは、可能な限り MCU の近くに配置する必要があります。
• バンク（同時に取得されるチャネル）ごとにセンシングトラックをグループ化します。
• バイパスコンデンサを使用して、低いインピーダンス（LED ドライブ）を確保します。

• 最適な伝導雑音耐性のために、アクティブシールドとスペクトル拡散の使用が推奨されます。
• 誤または偽接触検出を避けるために、導電性の塗料を使用せず、安定した機械組立を確保してください。

タッチコントローラへの電源供給には電圧レギュレータの使用が強く推奨されます。電源変動によって誘発される測定ノイズを最小化します。
最適な感度のために、グラウンドへの寄生静電容量を最小化する必要があります。これは、短く細いセンシングトラックを意味します。直列抵抗（Rs）とサンプリングコンデンサ（Cs）は、可能な限り MCU の近くに配置する必要があります。同時に取得されるセンシングトラック駆動センサをグループ化して（バンク）、他のバンクから分離すべきです。最後に、高インピーダンスドライブ（オープンドレイン回路を通じて駆動される LED）の場合にはバイパスコンデンサを使用して、低インピーダンスパスを確保してください。
最適な伝導ノイズ耐性のために、トラックとセンサパッドの周囲にアクティブシールドを使用し、スペクトル拡散と組み合わせることを推奨します。
最後に、誤または偽接触検出を避けるために、導電性塗料を避け、安定した機械組立が必要です。

14

STM32Cube タッチセンシングライブラリの機能

15• 近接、タッチキー、リニア、およびロータリー式タッチセンサをサポートする完全無料の C ソースコードライブラリ。
• 静電容量検知機能と従来の MCU 機能を組み合わせた多機能性。
• 処理機能の強化により、最適化された感度とイミュニティ。
• 較正、環境制御システム（ECS）、デバウンスフィルタリング、検出除外システム（DxS）など• ステータスレポートとアプリケーション設定のための完全かつシンプルな API• MISRA およびすべての STM32 C コンパイラに対応

前述したように、TSC ペリフェラルはタッチセンシングライブラリで動作するように設計されています。この無料の C ライブラリは、近接、タッチキー、リニア、およびロータリー式タッチセンサをサポートします。静電容量検知機能と、LCD ドライブ、ホストデバイスとの通信など、従来の MCU 機能とを組み合わせることができます。このライブラリは、最適な感度を実現し、安定性のあるアプリケーションを設計するために必要なすべての処理を提供します。
電源投入時較正、環境制御システム（ECS）、でバウンスフィルタリング、検出除外システム（DxS）などの機能があります。
このライブラリは、チャネルとセンサを設定し、センサの状態を取得するためのシンプルな API を備えています。MISRA 準拠であり、すべての STM32 C コンパイラをサポートします。

15

STM32Cube タッチセンシングライブラリの概要

STM32Cube タッチセンシング
ライブラリ

アプリケーションレイヤ

ユーザアプリケーション

16

STM32Cube タッチセンシング
ライブラリ設定ファイル

DTO

DxS

タイミング

ECS

フィルタ

...

タッチキーセンサ

リニアおよびロータリーセンサ

...

取得
MCU 1

取得
MCU 2

...

処理レイヤ

取得レイヤ

STM32Cube タッチセンシングライブラリは、複数のモジュールで構成されています。このライブラリは、対応する STM32 シリー
ズの HAL に依存し、専用の設定ファイルを通じて設定されます。
プロジェクトに取り入れられた STM32Cube タッチセンシングラ
イブラリは、アプリケーション全体の一部となり、各 C 関数を呼び出して、適切な動作を得ることができます。
STM32Cube タッチセンシングライブラリの詳細については、対応するユーザマニュアルを参照してください。

16

関連ペリフェラル

17• このペリフェラルに関する次のトレーニングモジュールを参照：• リセットおよびクロック制御（TSC クロック制御およびリセット）• 割込み（TSC 割込みマッピング）• 汎用 IO（TSC チャネルおよびサンプリングコンデンサ I/O）

これは、STM32 タッチセンシングコントローラに関連するペリフェラルのリストです。必要な場合、詳細については、これらのペリフェラルトレーニングを参照してください。

17

参照

18

• 詳細については、以下のリソースを参照してください。
• AN4299 - Guidelines to improve conducted noise robustness on touch sensingapplications• AN4310 - Sampling capacitor selection guide for MCU based touch sensing applications• AN4312 - Guidelines for designing touch sensing applications with surface sensors• AN4316 - Tuning a STMTouch-based application

詳細については、アプリケーションノート AN4299、AN4310、AN4312、および AN4316 を参照してください。
ありがとうございました。

18