静電容量式タッチパッド・センサー・ライブラリ入門

Similar documents
LaunchPadベースのMSP430 UART BSLインターフェイス

eZ430-F2013 開発ツール

インテル(R) Visual Fortran コンパイラ 10.0

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

Stellaris ドライバ・インストール手順

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

オーバーサンプリングによる ADC12 の高分解能

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc

PowerPoint Presentation

PCI-Express ハード IP を使用した DMA の実現 for Cyclone V GT FPGA 開発キット(ソフトウェア編)

Welcome-Kit ~STM32L4-Nucleo~

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

! 2. CCS のインストール CCS をインストールする前に, パソコンのアカウントは, 必ず 管理者 にしてください ログイン中のアカウントの個人用フォルダ (C:\Users\ ログイン名 ) に全角や半角カタカナなどが含まれているとインストールが完了しません 新規で半角英数字名のローカルア

MSP430導入用マニュアル

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

Nios II Flash Programmer ユーザ・ガイド

スライド 1

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

AKI-PIC16F877A開発キット (Ver1

ModelSim-Altera - RTL シミュレーションの方法

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

Microsoft PowerPoint LC_15.ppt

CR-USB 仕様書 株式会社測商技研 JS カード用データ転送用カードリーダー CR-USB 仕様書 取扱説明書 2012 年 07 月 31 日版 株式会社測商技研 1. 概要 本器は当社製自動観測装置で記録した JS カードデータ

Studuino ライブラリ環境設定Windows編

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

NI 6601/6602 キャリブレーション手順 - National Instruments

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し

ここをクリックしてダウンロードする ダウンロードした zip ファイルを解凍する とインストーラが現れます インストーラを 起動してインストールを開始しましょう イ ンストーラの [ Next > ] ボタンを押してい けばインストールできます ライセンスの画面では I accept the ter

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

概要 Windows Embedded Standard 7 は Windows Embedded Standard ポートフォリオにおける次世代プラットフォームで Windows 7 オペレーティングシステムのパワー 使いやすさ 信頼性を備えており カスタマイズ可能なコンポーネント化された形で提供

Quartus II はじめてガイド - プロジェクトの作成方法

RADIUS サーバを使用して NT のパスワード期限切れ機能をサポートするための Cisco VPN 3000 シリーズ コンセントレータの設定

PowerPoint プレゼンテーション

Studuinoライブラリ環境設定Mac編

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Code Composer Studio クイックスタート

統合開発環境 High-performance Embedded Workshop V へのリビジョンアップのお知らせ

Quartus II はじめてガイド - プロジェクトの作成方法

MSP-FET 430 Flash Emulation Tool (FET) (For Use With CCE v2.0) User's Guide (Rev. A)

CrossCore Embedded Studio install and tutorial

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

PGRelief C/C++ 強化ポイント説明書

オンチップ・メモリ クイック・ガイド for Cyclone III

Microsoft Word - CBSNet-It連携ガイドver8.2.doc

Microsoft Word - Mac版 Eclipseの導入と設定.docx

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

AWS DeepRacer 開始方法のガイド 1

エンドポイント濁度測定装置 LT-16 取扱説明書

Microsoft Word - 2stellaris_ccs.doc

Eclipse&gcc install and tutorial

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

9 WEB監視

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

作業環境カスタマイズ 機能ガイド(応用編)

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

プロバイダ ユーザーズガイド

CONTEC DIOプロバイダ ユーザーズガイド

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

Source Insight

Intel MPI Library Linux

新しくシンボルを作成することもできるが ここでは シンボル :opamp2.asy ファイル を回路と同じフォルダにコピーする コピーしたシンボルファイルをダブルクリックで 開く Fig.4 opamp2 のシンボル 変更する前に 内容を確認する メニュー中の Edit の Attributes の

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

適応型セキュリティ アプライ アンスの設定

Visual DSP++ install and tutorial

Notes and Points for TMPR454 Flash memory

Visual DSP++ install and tutorial

Drv Guidebook

TeamViewer マニュアル – Wake-on-LAN

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

CodeRecorderでカバレッジ

Transcription:

参考資料 JAJA453 静電容量式タッチパッド センサー ライブラリ入門 概要 MSP430 このドキュメントは 静電容量式タッチパッド センサー ライブラリ (Capacitive Touch Software Library) を初めて使用する際の手順についてについて説明します MSP430 を使用した静電容量方式タッチ センシングの方法は数種類存在します このドキュメントでは 開発を始めるにあたり利用可能なメソッド と対象プラットフォーム およびプロジェクト例の概要を説明します また MSP430G2452 を搭載したLaunchPad バリュー ライン開発キット (MSP-EXP430G2) 及びMSP430 容量性タッチBoosterPackで使用できるライブラリ構成の段階的な説明が付いたプロジェクト例も紹介します Code Composer Studio 4.2.1 および IAR Embedded Workbench 5.20 用の付随ソフトウェアおよびプロジェクト例のファ イルは TI ホームページよりダウンロードできます 目次 1 静電容量式タッチ センシングのメソッド概要... 2 2 プロジェクト例... 3 3 参考文献... 16 付録 A 電流の計測値... 17 図目次図 1 ライブラリのアーキテクチャ... 2 図 2 容量性タッチ BoosterPack: ポート / ピン ( エレメント ) 割り当て... 4 図 3 ファイルとディレクトリの構造... 9 図 4 Code Composer Studioの New Project ウィザード 対象 MCUデバイス選択のステップ... 10 図 5 Code Composer Studioの Project Properties ウィンドウ 事前定義されたシンボル / プリプロセッサのシンボル... 11 図 6 Code Composer Studioの Project Properties ウィンドウ GCC 拡張機能オプションのイネーブル... 12 図 7 Code Composer Studio のプロジェクトのエクスプローラ表示 (C/C++ タブ )... 12 図 8 Code Composer Studioの Project Properties ウィンドウ Include オプション... 13 図 9 IARのプロジェクトのオプション 対象デバイス... 14 図 10 IAR プロジェクトのオプション プリプロセッサのオプション... 14 図 11 IARのプロジェクトのオプション FET デバッガ... 15 図 12 IAR プロジェクトのエクスプローラ表示... 15 表目次表 1 ( ライブラリでサポートされている ) 静電容量式タッチ計測のメソッドの概要... 3 表 2 プロジェクト例の説明... 10 表 3 プロジェクト例の電流計測値... 17 この資料は Texas Instruments Incorporated(TI) が英文で記述した資料を 皆様のご理解の一助として頂くために日本テキサス インスツルメンツ ( 日本 TI) が英文から和文へ翻訳して作成したものです 資料によっては正規英語版資料の更新に対応していないものがあります 日本 TI による和文資料は あくまでも TI 正規英語版をご理解頂くための補助的参考資料としてご使用下さい 製品のご検討およびご採用にあたりましては必ず正規英語版の最新資料をご確認下さい TI および日本 TI は 正規英語版にて更新の情報を提供しているにもかかわらず 更新以前の情報に基づいて発生した問題や障害等につきましては如何なる責任も負いません SLAA491B 翻訳版 最新の英語版資料 http://w w w.ti.com/lit/slaa491

JAJA453 www.tij.co.jp 1 静電容量式タッチ センシングのメソッド概要 MSP430 ファミリのデバイスを使用して静電容量式タッチ センシングを実行する手法 ( メソッド ) は数種類存在します 各種デ バイス ファミリとペリフェラル セットの組み合わせで センサーからの容量性タッチ応答を計測することができます 図 1に 静電容量式タッチパッド センサー ライブラリのアーキテクチャを示します 最上位レイヤーはユーザ定義のアプリケーション コードを含むアプリケーションレイヤーです その下位レイヤーは 静電容量式タッチパッド センサー ライブラリに属します 最下位レイヤーはペリフェラル用のローレベルな関数を含むハードウェア ペリフェラルレイヤーです ハードウェア抽象化レイヤー (HAL) には 各種ペリフェラルに応じたセンシングを実装するための関数があり 上位の静電容量式タッチレイヤーには ボタン ホイール スライダ等のセンサー構造を実装するためのハイレベルな抽象化関数があります 抽象化のレベルが 左から右へ向かって高くなることに注意してください 例えば Raw ではカウント値そのものを出力するだけですが Wheel ではタッチ位置を出力します 図 1 ライブラリのアーキテクチャ 2 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 表 1 は 利用可能なメソッドです 左側の メソッド名 の列は 静電容量式タッチパッド センサー ライブラリに実装された HAL における記述名を示します 各メソッドの詳細と実装については Capacitive Touch Library Programmer's Guide (SLAA490) [ 参考文献 1] に記載されています 表 1 ( ライブラリでサポートされている ) 静電容量式タッチ計測のメソッドの概要 メソッド名 ( H A L の記述 ) RO_COMPAp_TA0_WDTp RO_PINOSC_TA0_WDTp RO_PINOSC_TA0 RO_COMPB_TA0_WDTA RO_COMPB_TA1_WDTA RC_PAIR_TA0 fro_pinosc_ta0_sw センシング タイプ弛張型オシレータ (RO) 弛張型オシレータ (RO) 弛張型オシレータ (RO) 弛張型オシレータ (RO) 弛張型オシレータ (RO) RC 時定数 (RC) 高速弛張型オシレータ (fro) ペリフェラル 計測タイマ ゲート タイマ 利点 M SP 430 デバイスの例 コンパレータ タイマ A0 ウォッチドッグ 計測中に低消費電力モード MSP430F20x1 COMPA+ タイマ WDT+ をイネーブルにする MSP430F4xx ピン オシレータ タイマ A0 ウォッチドッグ 計測中に低消費電力モード MSP430G2xx2 タイマ WDT+ をイネーブルにする ピン オシレータ タイマ A0 ソフトウェア カ ウォッチドッグ タイマのリ MSP430G2xx2 ウンタ ソースを使用しない コンパレータ COMPB タイマ A0 ウォッチドッグ タイマ WDTA 計測中に低消費電力モードをイネーブルにする CC430Fxx コンパレータ タイマ A1 ウォッチドッグ 計測中に低消費電力モード MSP430F55xx COMPB タイマ WDTA をイネーブルにする デジタル I/O および抵抗 タイマ A0 N/A 実装が簡素化される 全 MSP430 デバイス ピン オシレータ ソフトウェア タイマ A0 スキャン速度が大きくなる MSP430G2xx2 カウンタ RO と RC の原理についての説明は PCB-Based Capacitive Touch Sensing With MSP430 (SLAA363) [ 参考文献 2] に記載され ています また RC ベースの単一のタッチ センサーの詳細な設計ガイドとしては MSP430 Capacitive Single-Touch Sensor Design Guide (SLAA379) [ 参考文献 3] があります 2 プロジェクト例 2.1 プロジェクト例概要プロジェクト例は MSP430G2452 MCUを搭載したLaunchPad バリュー ライン開発キットとその上に接続した容量性タッチBoosterPack を使用します LaunchPadは低価格の開発キットであり 20ピンPDIPソケット オンボードのプログラマとデバッガ PCとのUSB 通信機能等を備えています [ 参考文献 4] MSP430G2452 MCUは 8KBのフラッシュと256BのRAMに加え セクション1で述べたピン オシレータを使用したタッチ センスを行う16 個の入力 / 出力 (I/O) ピンを備えています [ 参考文献 5] 静電容量式タッチパッド センサー ライブラリ入門 3

JAJA453 www.tij.co.jp 2.2 MSP430 容量性タッチ BoosterPack ハードウェア概要 MSP430 容量性タッチBoosterPack はピン オシレータをベースにしており 近接検知 ボタン ホイール ( ボタンの集合体 ) という3 種類のセンサーから成ります 図 2は各センサーのレイアウトと MSP430G2452 MCUに対するポート / ピンの定義です 図 2 容量性タッチ Bo o ste rpac k: ポート / ピン ( エレメント ) 割り当て また タッチ状態を表すための LED エレメントが 9 個 ( 左右 4 個ずつと中央の 1 個 ) あります 回路図と PCB レイアウトの詳細につ いては Capacitive Touch BoosterPack User s Guide (SLAU337) [ 参考文献 6] を参照してください 2.3 ソフトウェア ライブラリを構成静電容量式タッチパッド センサー ライブラリは ポート定義 センシング メソッド エレメント数などの要因を設定 構成する必要があります これらの要因は ソース コード structure.c とヘッダ ファイル structure.h 内で構成します 次に示すステップは RO_PINOSC_TA0_WDTp_One_Button の例を使用しています この場合では センシング メソッドが RO_PINOSC_TA0_WDTp であり センサー構造がボタン1つ ( 中央のエレメント ) です 1. エレメントの定義 : エレメントの構造を宣言し ポート / ピンの定義を割り当てます 例 : 中央エレメントが P2.5 ( ポート 2/ ピン 5) に割り当てられます ソース コードのファイル structure.c 内では 次のような記述になります ヘッダ ファイル structure.h 内では 次のような記述になります 4 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 注 : 変数 thresholdは エレメントのキャラクタライズのステップのためににゼロに設定しておく必要があります 注 : 変数 maxresponse は ホイール / スライダの実装用にのみセットしてください 単体のセンサーセンサーの実装には必要ありません 詳細については Capacitive Touch Library Programmer's Guide (SLAA490) [ 参考文献 1] を参照してください 2. センサー構造の定義 : センサーの構造を宣言し センシング メソッド センサー エレメント数 ゲート タイマー 計測ウィンドウを定義します 例 : センサーの構造 : 1つのエレメント ( 中央エレメント ) から成ります センシング メソッド ( は ピン オシレータを使用した弛張型オシレータです タイマー A0は計測タイマー ウォッチドッグ タイマー (WDT) はゲート タイマーです ソース コード structure.c 内では 次のような記述になります ヘッダ ファイル structure.h 内では 次のような記述になります 3. エレメントの調整 ( キャラクタライズ ) 閾値を初期化する : ステップ1で述べたように 閾値はエレメントのキャラクタライズ用に初期化しゼロにする必要があります ゲート タイマーの設定 : この例ではRO_PINOSC_TA0_WDTp メソッドをウォッチドッグ タイマー (WDT) をゲート タイマーとして用いています ゲート時間は ノイズ耐性 タッチ感度 消費電力など センサー性能全体に直接影響します 低周波数の ACLK と高周波数の SMCLK のどちらかから WDTにクロックを供給するためにゲート タイマー ソース (measgatesource) を調整します 補正して 各種 WDT 時間間隔を選択するために計測ウィンドウ (accumulationcycles) を調整します ソース コード structure.c 内では 次のような記述になります 静電容量式タッチパッド センサー ライブラリ入門 5

JAJA453 www.tij.co.jp 調整 ( キャラクタライズ ) 用関数をセットアップ : ゲート時間が構成されると main() 関数ではベースライン トラッキングの 関数を呼び出し TI_CAPT_Custom() 関数から返されるカウントをモニターする必要があります この動作は main.c 内で次 のようにコンパイラ指示子を非コメント化するか 宣言することで完成します コンパイラ指示子 ELEMENT_CHARACTERIZATION_MODE が定義された場合は 次に示すエレメントのキャラクタライズ用コー ドが main.c 内で実装されます キャラクタライズのデルタ ( 差分 ) カウント値を取得 : エレメントのキャラクタライズ用のデルタ カウント値を取得するには TI_CAPT_Custom() 関数に続く NOP 命令にブレークポイントを設定して 変数 dcnt をウォッチ ウィンドウに追加します プ ログラムを数回実行し 次の 2 通りの状態の値を記録します 6 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 タッチなし状態 : 中央のエレメントは指が接触した状態ではなく センサー近傍に導電性物体は存在しません この場合には バックグラウンド ノイズが効率的に調整されます このシナリオでは dcnt の最大値をnoTouchCnt として記録します タッチ状態 : 中央エレメントに1 本の指が接触した状態になっているか 何らかの導電性物体がセンサー近傍にあります この場合には タッチ応答感度が効率的に調整されます このシナリオでは dcntの最小値をtouchcntとして記録します 4. 閾値を設定する : 閾値は通常範囲の中心に設定します threshold = (TouchCnt - notouchcnt)/2 閾値を高く設定したり低く設定したりすることで ノイズ耐性を大きくしたり 感度を増大させたりすることが可能になります 注 : 閾値を低く設定しすぎると 正しくないトリガが発生する確率が高くなり トリガがノイズの影響を受けやすくなります 閾値を高く 設定しすぎると センサーが導電性物体の存在を認識しなくなります 閾値が計算された後に 新しい値を使用して各エレメントの構造をアップデートする必要があります 例えば キャラクタライ ズにおいて notouchcnt = 100 および TouchCnt = 1000 であるとすると 閾値は 450 にセットする必要があります ソース コード structure.c 内では 次のような記述になります 注 : PCB レイアウト 隣接するエレメントの構造 アプリケーションのノイズ レベル用の適切なゲート時間を決定するには ステップ 3 とステップ 4 を複数回行う必要がある可能性があります これが逐次微調整プロセスです 5. 更にハイレベルの抽象化を実現する API: ライブラリでは ベースライン トラッキング レートの変更等の内部動作全てを抽象化する いくつかの API を提供しています これらの A PI を使用すると アプリケーション レイヤーのコードを簡素化できる利点が得られます 注 : (TI_CAPT_RAW() 関数を除いて ) すべての計測 API 関数はベースライン トラッキングを更新します センサーが長時間計測され ない場合は TI_CAPT_Update_Baseline() 関数および / または TI_CAPT_Init_Baseline() 関数を使用する必要があります ( 計測されない期間中は 時間の経過とともに電源電圧 温度 環境条件にドリフトが発生している可能性があります ) サンプル アプリケーションの動作 : アプリケーションで1つのボタン ( 中央エレメント ) のタッチを検出には TI_CAPT_Button() API 関数を用います 関数は論理 1または論理ゼロを返して 有効なタッチが存在するか否かを通知します この情報を使用してMSP430 容量性タッチ BoosterPack の中央のLEDが点灯されます LEDは中央ボタンのタッチを目に見える形で示すためのインジケータとして機能します 連続したポーリングを行う間は MSP430が低消費電力モードになります (LPM3) タイマー A0を使用して LPM3から起動させてアクティブ モードにするための遅延タイムアウト機能を実装します この遅延はプログラム可能であり main.c ファイル内で調整できます 静電容量式タッチパッド センサー ライブラリ入門 7

JAJA453 www.tij.co.jp サンプル アプリケーションの設定 : main.c ファイル内では コンパイラ指示子 ELEMENT_CHARACTERIZATION_MODE をコ メントアウトして ( キャラクタライズ コードだけではなく ) アプリケーション コードがコンパイルされるようにする必要 があります 2.4 プロジェクト例図 3にこのアプリケーション レポートと共にダウンロード可能なプログラムのディレクトリ構造と関連するファイルを示します CCS: Code Composer Studio IDE 用のプロジェクト フォルダとファイル IAR: IAR Embedded Workbench 用のプロジェクト フォルダとファイル Library: 静電容量式タッチパッド センサー ライブラリのファイル (HALとアプリケーションレイヤー) Examples: 各フォルダに入っているコード例は いろいろな実装がされた それぞれの MSP430ファミリーのアプリケーションを開発するための出発点として利用できるサンプルです ( サンプル アプリケーションと構造定義ファイル ) TI_CAPT_Custom() TI_CAPT_Buttons() 等のハイレベルなAPIは より多くのフラッシュ メモリ空間を消費しますが ベースライン トラッキング アップデート頻度 感度方向等の内部動作を アプリケーションレイヤーから抽象化します その結果アプリケーションレイヤーがコンパクトになり またHALや下位のレイヤーの変更に対しアプリケーション コードが不要になります TI_CAPT_Raw() 等のローレベル API を使用すると フラッシュ メモリの占有量を小さくすることができますが ベースライン トラッキング等の機能は別途でアプリケーション コードに実装する必要があります このシナリオは 非常にメモリ容量の小さいデバイスの場合に有効であり なおかつ消費電力を非常に低いレベルに抑えることができます 8 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 図 3 ファイルとディレクトリの構造 静電容量式タッチパッド センサー ライブラリ入門 9

JAJA453 www.tij.co.jp 表 2 プロジェクト例の説明 例の名前 API レベルセンサー構造説明フラッシュ RO_PINOSC_TA0_WDT p_ One_Button_Compact RO_PINOSC_TA0_WDT p_ One_Button RO_PINOSC_TA0_WDT p_ Proximity _Sensor RO_PINOSC_TA0_WDT 低ボタン ( 中央エレメント ) 中央エレメントのタッチに従い 中央の LED を 点灯させる ( 消す ) 高ボタン ( 中央エレメント ) 中央エレメントのタッチに従い 中央の LED を 点灯させる ( 消す ) 高近接検知センサー近接検知センサーの検知結果に従い 中央の 高 ホイール (5 つのボタンの LED を点灯させる ( 消す ) 5 つのホイール ボタンに従い 中央の LED を p_ Wheel_Buttons 集合体 ) 点灯させる ( 消す ) (1) Code Composer Studio 4.2.1 IDEを使用して フラッシュ メモリとRAMメモリの割り当ての結果を生成しています (2) デフォルトのブート /rts スタック サイズ (0x50 ~ 80 バイト ) は RAM 容量には含まれません ( バイト ) (1) RAM( バイ ト ) 596 18 1900 14 1908 14 2254 32 (1) (2) 2.5 Code Composer Studio IDEでのプロジェクトのセットアップ Code Composer Studio (CCS) 統合開発環境 (IDE) を使用して プロジェクトのビルド ダウンロード デバッグを行うことができます 注 : プロジェクト例の作成には MSP430 Code Generation Tools v3.3.3を搭載したcode Composer Studio v4.2.1を使用しました 1. Code Composer Studio を起動し File New CCS Project ( 新規 CCSプロジェクト ) と選択し New Project Wizard のステップに従ってプロジェクトを作成します 新規プロジェクトのセットアップの詳細については Code Composer Studio v4.2 User's Guide for MSP430 User's Guide (SLAU157) [ 参考文献 7] を参照してください 2. 適切な対象 MCUデバイスを選択します MSP430 容量性タッチ BoosterPack を使用する場合は MSP430G2452 MCUを選択します ( 図 4) 図 4 Code Composer Studio の New Project ウィザード 対象 MCU デバイス選択のステップ 10 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 3. プロジェクトのビルドのオプションにあるプリプロセッサのシンボル / 定義されたシンボルが 対象 MCU デバイスと一致していることを確 認します ( 図 5) 図 5 Code Composer Studio の Project Properties ウィンドウ 事前定義されたシンボル / プリプロセッサのシンボル 静電容量式タッチパッド センサー ライブラリ入門 11

JAJA453 www.tij.co.jp 4. プロジェクトのビルドに対し GCC Extensions (GCC 拡張機能 ) をイネーブルにします ( 図 6) Project Propertiesと選択して プロジェクトのプロパティ ダイアログを表示させます 左側で C/C++ Buildを選択します 右側のConfiguration Settings の下で 次のようにタブ選択していきます Tool Settings MSP430 Compiler Language Options Enable Support for GCC extensions (--gcc) 図 6 Code Composer Studio の Project Properties ウィンドウ GCC 拡張機能オプションのイネーブル 5. 静電容量式タッチパッド センサー ライブラリ (HAL とレイヤー ) およびプロジェクト例のファイル (Main と Structure) を プロジェクトに リンクさせます (Project Link Files to Active Project) ディレクトリの構造とファイルのパスについては セクション 2.3 を参照してく ださい プロジェクトの構成は 図 7 のように見えるはずです 図 7 Code Composer Studio のプロジェクトのエクスプローラ表示 (C/C++ タブ ) 6. Include Path オプションに ディレクトリのパスを追加します ( 図 8). 12 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 図 8 Code Composer Studio の Project Properties ウィンドウ Include オプション 7. プロジェクト例のダウンロードとデバッグを行います (Target Debug Active Project) 静電容量式タッチパッド センサー ライブラリ入門 13

JAJA453 www.tij.co.jp 2.6 IAR Embedded Workbench IDEでのプロジェクトのセットアップ IAR Embedded Workbench (IAR) 統合開発環境 (IDE) を使用して プロジェクトのビルド ダウンロード デバッグを行うことができます 注 : プロジェクト例の作成には MSP430 v5.20を搭載した IAR Embedded Workbench 6.0を使用しました 1. IA Rを起動し Project Create New Project と選択し MSP430 という語を使用した名前を付けて新規プロジェクトを生成するための一連のステップを実行します 新規プロジェクトのセットアップの詳細については IA R Embedded Workbench Version 3+ for MSP430 User's Guide (SLAU138) [ 参考文献 8] を参照してください 2. 適切な対象 MCUデバイスを選択し Project Options General Options Target タブと選択していきます MSP430 容量性タッチ BoosterPack を選択したい場合は MSP430G2452 MCU を選択します ( 図 9). 図 9 IAR のプロジェクトのオプション 対象デバイス 3. Project Options C/C++ Compiler と選択して表示される プリプロセッサのシンボル / 定義されたシンボルが 対象 MCU デバイスと 一致していることを確認します ( 図 10) 追加のインクルード ディレクトリ 入力ボックスに ディレクトリのパスを追加します 図 10 IAR プロジェクトのオプション プリプロセッサのオプション 4. プロジェクト例をダウンロードしてデバッグするためのデバッガとして FET デバッガを選択します ( 図 11). 14 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 図 11 IAR のプロジェクトのオプション FET デバッガ 5. 静電容量式タッチパッド センサー ライブラリ (HAL とレイヤー ) およびプロジェクトのファイル (Main と Structure) を プロジェクトに追 加します (Project Add Files) プロジェクトの構成は 図 12 のように見えるはずです 図 12 IAR プロジェクトのエクスプローラ表示 6. プロジェクト例のダウンロードとデバッグを行います (Project Dow nload and Debug) 静電容量式タッチパッド センサー ライブラリ入門 15

JAJA453 www.tij.co.jp 3 参考文献 1. Capacitive Touch Library Programmer's Guide (SLAA490) 2. PCB-Based Capacitive Touch Sensing With MSP430 (SLAA363) 3. MSP430 Capacitive Single-Touch Sensor Design Guide (SLAA379) 4. MSP-EXP430G2 LaunchPad Experimenter Board User s Guide (SLAU318) 5. MSP430G2x52, MSP430Gx12 Mixed Signal Microcontroller Data Sheet (SLAS722) 6. Capacitive Touch BoosterPack User s Guide (SLAU337) 7. Code Composer Studio v4.2 User's Guide for MSP430 User's Guide (SLAU157) 8. IAR Embedded Workbench Version 3+ for MSP430 User's Guide (SLAU138) 16 静電容量式タッチパッド センサー ライブラリ入門

www.tij.co.jp JAJA453 付録 A 電流の計測値 プロジェクト例用の電流計測値を表 3 に示します これらの計測値は 標準的な値 ( 平均化された値 ) のみを表していることに注 意してください 表 3 プロジェクト例の電流計測値 例の名前構成電圧電流範囲 RO_PINOSC_TA0_WDTp_ One_Button_Compact 1 つの中央エレメント ボタン スキャン時間 = 500 msec WDT ソース = ACLK/64 ACLK = VLO (~12 khz) ゲート時間 ~5.3 msec/ エレメント 3.3 V 3.0 V 2.5 V 1.8 V 2.4μA 2.0 μa 1.4 μa 0.9 μa タッチ RO_PINOSC_TA0_WDTp_ One_Button RO_PINOSC_TA0_WDTp_ Proximity_Sensor RO_PINOSC_TA0_WDTp_ Proximity_Sensor RO_PINOSC_TA0_WDTp_ Proximity_Sensor RO_PINOSC_TA0_WDTp_ Wheel_Buttons 1 つの中央エレメント ボタンスキャン時間 = 500 msec WDT ソース = ACLK/64 ACLK = VLO (~12 khz) ゲート時間 ~ 5.3 msec/ エレメント STRUCTURE_CONFIG_0 (1) スキャン時間 = 500 msec WDT ソース = ACLK/64 ACLK = VLO (~12 khz) ゲート時間 ~5.3 msec/ エレメント STRUCTURE_CONFIG_1(1) スキャン時間 = 500 msec WDT ソース = ACLK/512 ACLK = VLO (~12 khz) ゲート時間 ~42.6 msec/ エレメント STRUCTURE_CONFIG_2(1) スキャン時間 = 500 msec WDT ソース = SMCLK/8192 SMCLK = DCO (~1 MHz) ゲート時間 ~65.5 msec/ エレメント 4 つのホイールボタン + 1 つの中央エレメント ボタンスキャン時間 = 500 msec WDT ソース = ACLK/64 ACLK = VLO (~12 khz) ゲート時間 ~5.3 msec/ エレメント 3.3 V 3.0 V 2.5 V 1.8 V 3.3 V 3.0 V 2.5 V 1.8 V 3.3 V 3.0 V 2.5 V 1.8 V 3.3 V 3.0 V 2.5 V 1.8 V 3.3 V 3.0 V 2.5 V 1.8 V 2.6 μa 2.1 μa 1.7 μa 1 μa 2.5 μa 2 μa 1.5 μa 1.1 μa 9.5 μa 8 μa 6 μa 3 μa 20 μa 17.5 μa 14 μa 9 μa 8.5 μa 7 μa 4.8 μa 2.6 μa (1) 構造の構成用のコンパイラ指示子は structure.c ソース ファイルの最上部で定義する必要があります タッチ 1.5 cm 1 cm 0.5 cm タッチ 2.5 cm 2 cm 1.8 cm 1.5 cm 3.5 cm 3 cm 2.8 cm 2.5 cm タッチ 電流計測のセットアップ : LaunchPad 上の J3 のジャンパすべて (VCC TXD RXD RST TEST) を除去します LaunchPad 上の抵抗 R34 P1.3 のプルアップ抵抗 プッシュボタン スイッチ S2 を除去します 注 : 小電流を計測するには R34 の除去が必要となります プルアップ抵抗が必要な場合は P1.3 のポート レジスタに 内蔵オンチップ プルアップ抵抗を使用できるように設定す る必要があります 静電容量式タッチパッド センサー ライブラリ入門 17

IMPORTANT NOTICE