PSoC™ Creator [Hands On CAPSENSE™編]
PSoC™を初めて使用する組込ソフトウェア技術者向けにPSoC™ Creatorの基本的な機能の使用方法を説明します。
今回は「CY8CKIT-149」に搭載された静電容量式センサパッドを用いて、簡単なCAPSENSE™アプリケーションを構築する手順についてHands-On形式で説明します。
アプリケーション仕様
Hands On で使用する評価ボードは、
・評価ボード名称:CY8CKIT-149
・搭載デバイス:CY8C4147AZI-S475
になります。
PSoC™ Creatorを使用し、CY8CKIT-149 上に CSD(自己容量)方式のボタンと、検知したことを確認するためのLED点灯機能を実装します。静電容量式センサパッドに指で触れると、指の接触を検出してLEDが点灯します。
PSoC™ Creatorワークフロー
プロジェクトの作成
PSoC™ Creatorを立ち上げプロジェクトを作成します。
プロジェクト作成の詳細はプロジェクト作成編を参照してください。
①PSoC™ Creatorを起動します。
②File>New>Projectを選択します。
③Target DeviceをPSoC 4>PSoC 4100S Plusを選択します。
④Nextを選択します。
⑤プロジェクトを生成するワークスペース、パスおよびプロジェクト名を指定します。
Workspace name : workspace
Location : C:¥PSoC
Project name : Design05
⑥ Finish を選択します。
コンポーネントの設定
コンポーネントの挿入
使用するコンポーネントを回路図に挿入していきます。
Component Catalogから下記の各コンポーネントを選択して回路図にドラッグ&ドロップします。
①CapSense>CapSense
②Ports and Pins>Digital Output Pin
CAPSENSE™の設定
①回路図のCAPSENSE™ Componentをダブルクリックします。
②Basic タブで構成したいボタンやウィジェット※を追加します。
「+」をクリックし今回は「Button」を1個追加します。
③ CSD tuning mode はデフォルトの SmartSense (Full Auto-Tune)のままにしてOKをクリックします。
※スライダーのような複数のボタンの集合体をウィジェットと呼びます
LEDの設定
①回路図の「Pin_1」をダブルクリックします。
②名称(Name)を「LED」に変更します。
③HW connectionの「✔」を外します。
④LEDを負論理でドライブするため、
初期値(Initial drive state)は「High(1)」に
設定します。
⑤「OK」を選択します。
ピンの割り当て
設定した各コンポーネントにPinを割り当てていきます。
各Pin配置は「PSoC™評価ボード説明」の「ピン配置」の項をご参照ください。
①「Pins」をダブルクリックします。
②コンポーネントのPorts/Pinsを設定します。
CapSense_1 Cmod : P4[1](pin28)
CapSense_1 Sns : P4[6](pin33)
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. */
CapSense_1_Start(); /* Initialize Component */
CapSense_1_ScanAllWidgets(); /* Scan all widgets */
for(;;)
{
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 */
}
}
}
プロジェクトの書き込み
①プロジェクトを書き込むため、評価ボードをPCへ接続します。
②「Build」をクリックしプロジェクトをビルドします。
無事ビルドが完了すると、Output領域に「Build Succeeded」がレポートされます。
③「Program」をクリックし、ターゲットボードに書き込みを行います。
Output領域に「Device ‘デバイス名’ was successfully programmed 」がレポートされれば書き込み完了です。
動作確認
評価ボードによる確認
CAPSENSE™ボタンを指で触れると緑色のLEDが点灯することを確認してください。
これでCAPSENSE™アプリケーションを評価ボード上に実装することができました。
現在このデザインは Tuning Mode として、「Smart Sense (Full Auto-Tune)」が適用されており、CAPSENSE™に関連する各種パラメータは自動調整されています。
担当エンジニアからの一言
今回は、CAPSENSE™を使用したアプリケーションの作成を説明しました。
マン・マシン・インターフェイスを構成する機能を簡単に実現することができるため、とても便利です。
次回は、DMAを使用したアプリケーションを説明します。
PSoC™ Creatorはこちらから