CAPSENSE™でタッチセンサを使ってみよう [CAPSENSE™ Tuner Hands On編]

Infineon Technologies AG(以下、インフィニオン社)のCAPSENSE™を初めて使用する技術者向けに開発環境であるCAPSENSE™ Tuner の基本的な機能の使用方法を説明します。今回は CAPSENSE™ Tuner の起動方法をHands On形式で説明します。

アプリケーション仕様

このHands On では下記の評価ボードを使用します。

  • 評価ボード名称:CY8CKIT-149
  • 搭載デバイス:CY8C4147AZI-S475

このHands Onでは下記機能の実装を行います。
①PSoC™ Creatorを使用し、CY8CKIT-149 上に CSD(自己容量)方式のボタンと、ボタンが検知したことを確認するためのLED点灯機能を実装します。

②CAPSENSE™ Tuner を用いて、タッチボタンのスキャンデータをモニタリングします。

PSoC™ Creatorについて

PSoC™ Creatorの概要やインストール手順等については以下の記事を参照してください。

 ※今回はPSoC™ Creator v4.4 を使⽤しています。

プロジェクトの作成

PSoC™ Creatorを立ち上げプロジェクトを作成します。

①「PSoC™ Creator」を立ち上げます。
②「File>New>Project」を選択します。

③Target Deviceを「PSoC 4>PSoC 4100S Plus」を選択します。
④「Next」を選択します。

⑤ Empty schematic を選択して「Next>」を選択します。

⑥プロジェクトを生成するワークスペース、パスおよびプロジェクト名を指定します。
 Workspace name : workspace
 Location :C:¥PSoC¥Workspace
 Project name : CapSenseTuner01
⑥「Finish」を選択します。

コンポーネントの設定

コンポーネントの挿入

使用するコンポーネントを回路図に挿入していきます。
Component Catalogから下記の各コンポーネントを選択して回路図にドラック&ドロップします。
①CapSense>CapSense
②Communications>I2C>EZI2C Slave
③Ports and Pins>Digital Output Pin

CAPSENSE™の設定

①回路図の「CapSense_1」をダブルクリックします。
②Basic タブで構成したいボタンやウィジェットを追加します。
「+」をクリックし今回は「Button」を1個追加します。
③ 「OK」を選択します。

EZI2Cの設定

①回路図の「EZI2C_1」をダブルクリックします。
②Sub-address size (bits)を「16」に変更します。
③「OK」を選択します。

LEDの設定

①回路図の「Pin_1」をダブルクリックします。
②名称(Name)を「LED」に変更します。
③HW connectionの「✔」を外します。
④LEDを負論理でドライブするため、初期値 (Initial drive state) は「 High (1)」 に設定します。
⑤「OK」を選択します。

ピンの割り当て

設定した各コンポーネントにPinを割り当てていきます。

①「Pins」をダブルクリックします。
②コンポーネントのPorts/Pinsを設定します。
 CapSense_1 Cmod : P4[1] (pin28)
 CapSense_1 Sns : P4[6] (pin33)
 EZI2C : scl P3[0] (pin18)
 EZI2C : sca P3[1] (pin19)  
 LED: P5[2] (pin53)

アプリケーションの生成

ここまでの作業でPSoC™ Creator がアプリケーションのスケルトンコード(空のmain関数、startup、必要なドライバなどのソースコード)を生成するために必要な情報がすべて入力されました。
メニューから
Build > Generate Application
を選択して、アプリケーションを生成します。

【ショートカット】
あるいは、コマンドアイコンからGenerate Application を選択してアプリケーションを生成することも可能です。

ソースコードの記述

①「main.c」をダブルクリックしてファイルを開く。
②ソースコードを作成します。最初記述されていたテキストを全て消去してください。
下記のソースコードをコピーして貼り付けてください。

#include "project.h"

#define LED_ON      (0u)        /* Pin state to turn ON an active-LOW LED */
#define LED_OFF     (1u)        /* Pin state to turn OFF an active-LOW LED */

int main()
{
   __enable_irq(); /* Enable global interrupts. */
   EZI2C_1_Start(); /* Start EZI2C Component */
   /*
   * Set up communication and initialize data buffer to CapSense data structure
   * to use Tuner application
   */
   EZI2C_1_EzI2CSetBuffer1(sizeof(CapSense_1_dsRam),
   sizeof(CapSense_1_dsRam),
   (uint8_t *)&(CapSense_1_dsRam));
   CapSense_1_Start(); /* Initialize Component */
   CapSense_1_ScanAllWidgets(); /* Scan all widgets */
   for(;;)
    {
      /* Do this only when a scan is done */
      if(CapSense_1_NOT_BUSY == CapSense_1_IsBusy())
    {
      CapSense_1_ProcessAllWidgets(); /* Process all widgets */
      CapSense_1_RunTuner(); /* To sync with Tuner application */
      if (CapSense_1_IsAnyWidgetActive()) /* Scan result verification */
           /* add custom tasks to execute when touch detected */
         {
           LED_Write(LED_ON);        /* Turn ON Active-Low LED */
          }
          else
         {
           LED_Write(LED_OFF);     /* Turn OFF Active-Low LED */   
          }
           CapSense_1_ScanAllWidgets(); /* Start next scan */
           }
       }
}
/* [] END OF FILE */ 

プロジェクトの書き込み

①プロジェクトを書き込むため、評価ボードをPCへ接続します。

②「Build」をクリックしプロジェクトをビルドします。
無事ビルドが完了すると、Output領域に「Build Succeeded」がレポートされます。

③「Program」をクリックし、ターゲットボードに書き込みを行います。
Output領域に「Device ‘デバイス名’ was successfully programmed 」がレポートされれば書き込み完了です。

動作確認①

CAPSENSE™ボタンを指で触れると緑色のLEDが点灯することを確認してください。
これで CAPSENSE™ アプリケーションを評価ボード上に実装することができました。
次にPSoC™ Creator から CAPSENSE™ Tuner を立ち上げます。

CAPSENSE™ Tuner の起動

スケマティックのページ(TopDesign.cysch)から CAPSENSE™ コンポーネントを右クリックし、Launch Tunerを選択します。 選択後、CAPSENSE™ Tuner が⽴ち上がります。

ターゲットとの通信設定

ターゲットボードとの接続設定を行います。
① 左上にある「Tuner Communication Setup」ボタンをクリックしてください。
② CAPSENSE™ Tunerでは予めデザインに組み込むコンポーネントによって I2C と UART の2種類の通信方式を選択可能です。今回はEZI2Cコンポーネントを使用していますので、「I2C」方式を選択します。
③ I2C Speedを「100kHz」に変更し「OK」を選択します。
④ 設定完了後、Communication mode に「Synchronized」を選択します。
⑤ Button0_Sns0に「✔」を入れます。
⑥ 「Connect」ボタンで接続、「Start」ボタンで Tuner を開始します。

動作確認②

評価ボードのタッチボタンに触れるとCAPSENSE™ Tunerにボタンのステータスと現在のSignal値(信号値)が表示されます。Graph Viewを選択するとリアルタイムで各信号値がグラフに表示されます。

担当エンジニアからの一言

今回は CAPSENSE™ Tuner の起動方法をHands On形式で説明しました。
PSoC™ CreatorからCAPSENSE™の実装ができ、パラメータ、ボタン配置、ピン設定等も簡単に変更することができます。
次回はCAPSENSE™ Tunerでタッチボタンのチューニング方法を説明します。

 登録商標について
 Infineon®やInfineon®のロゴ、PSoC™、CAPSENSE™は、インフィニオン社の登録商標です。
 その他すべての名称は、それぞれの所有者に帰属します。

おすすめリンク