56
© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の上、最新情報に つきましては、必ず英語版オリジナルをご参照いただきますようお願い します。

ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

© 2008 Microchip Technology Inc. DS41328A_JP

mTouch™

ユーザーズガイド

ご注意:この日本語版ドキュメントは、参考資料としてご使用の上、最新情報につきましては、必ず英語版オリジナルをご参照いただきますようお願いします。

Page 2: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

マイクロチップ テクノロジー社 ( 以下、マイクロチップ社 ) デバイスのコード保護機能に関する以下の点にご留意ください。

• マイクロチップ社製品は、その該当するマイクロチップ社データシートに記載の仕様を満たしています。

• マイクロチップ社では、通常の条件ならびに仕様どおりの方法で使用した場合、マイクロチップ社製品は現在市場に流通している同種製品としては もセキュリティの高い部類に入る製品であると考えております。

• コード保護機能を解除するための不正かつ違法な方法が存在します。マイクロチップ社の確認している範囲では、このような方法のいずれにおいても、マイクロチップ社製品をマイクロチップ社データシートの動作仕様外の方法で使用する必要があります。このような行為は、知的所有権の侵害に該当する可能性が非常に高いと言えます。

• マイクロチップ社は、コードの保全について懸念を抱いているお客様と連携し、対応策に取り組んでいきます。

• マイクロチップ社を含むすべての半導体メーカーの中で、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護機能とは、マイクロチップ社が製品を「解読不能」として保証しているものではありません。

コード保護機能は常に進歩しています。マイクロチップ社では、製品のコード保護機能の改善に継続的に取り組んでいます。マイクロチップ社のコード保護機能を解除しようとする行為は、デジタルミレニアム著作権法に抵触する可能性があります。そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合は、デジタルミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。

本書に記載されているデバイスアプリケーションなどに関する情報は、ユーザーの便宜のためにのみ提供されているものであり、更新によって無効とされることがあります。アプリケーションと仕様の整合性を保証することは、お客様の責任において行ってください。マイクロチップ社は、明示的、暗黙的、書面、口頭、法定のいずれであるかを問わず、本書に記載されている情報に関して、状態、品質、性能、商品性、特定目的への適合性をはじめとする、いかなる類の表明も保証も行いません。マイクロチップ社は、本書の情報およびその使用に起因する一切の責任を否認します。マイクロチップ社デバイスを生命維持および / または保安のアプリケーションに使用することはデバイス購入者の全責任において行うものとし、デバイス購入者は、デバイスの使用に起因するすべての損害、請求、訴訟、および出費に関してマイクロチップ社を弁護、免責し、同社に不利益が及ばないようにすることに同意するものとします。暗黙的あるいは明示的を問わず、マイクロチップ社が知的財産権を保有しているライセンスは一切譲渡されません。

DS41328A_JP - ページ ii

商標

Microchip の名前付きロゴ、Microchip ロゴ、Accuron、dsPIC、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、rfPIC、SmartShunt は、米国およびその他の国における Microchip Technology Incorporatedの登録商標です。

FilterLab、Linear Active Thermistor、MXDEV、MXLAB、SEEVAL、SmartSensor、The Embedded Control Solutions Company は、米国における Microchip Technology Incorporated の登録商標です。

Analog-for-the-Digital Age、Application Maestro、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、In-Circuit Serial Programming、ICSP、ICEPIC、Mindi、MiWi、MPASM、MPLAB Certified ロゴ、MPLIB、MPLINK、mTouch、PICkit、PICDEM、PICDEM.net、PICtail、PIC32 logo、PowerCal、PowerInfo、PowerMate、PowerTool、Real ICE、rfLAB、Select Mode、Total Endurance、UNI/O、WiperLock、ZENA、は米国およびその他の国における Microchip Technology Incorporated の商標です。

SQTP は米国における Microchip Technology Incorporatedのサービスマークです。

その他、本書に記載されている商標は、各社に帰属します。

© 2008, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.

再生紙を使用しています。

© 2008 Microchip Technology Inc.

マイクロチップ社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウエハ製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2002認証を取得しています。マイクロチップ社の品質システムプロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コードホッピングデバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。また、マイクロチップ社の開発システムの設計および製造に関する品質システムは、ISO 9001:2000 の認証を受けています。

Page 3: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

TM

mTouch ユーザーズガイド

目次

序章 ................................................................................................................................. 1はじめに ............................................................................................................................ 1本書の構成 ........................................................................................................................ 1本書で使用される表記 .................................................................................................... 2推奨参考資料 .................................................................................................................... 3マイクロチップ社ウェブ サイト ................................................................................... 3顧客サービス .................................................................................................................... 4改版履歴 ............................................................................................................................ 4

第 1 章 はじめに .................................................................................................... 5mTouch™ とは何か .......................................................................................................... 5ユーザーズガイドについて ............................................................................................ 6

第 2 章 mTouch™ はどのように動作するのか ..................................................... 7基本動作 ............................................................................................................................ 7

第 3 章 mTouch™ システムの構築 ....................................................................... 9開発ツールに必要なもの ................................................................................................ 9入門 .................................................................................................................................... 9既存のソフトウェアテンプレート ................................................................................ 9デバイス選択 .................................................................................................................... 9簡単に生成できるソフトウェア .................................................................................. 10ソフトウェア動作 .......................................................................................................... 13ハードウェア開発 .......................................................................................................... 14

第 4 章 ソフトウェアの詳細と選択肢 .................................................................. 15概要 .................................................................................................................................. 15初期化 .............................................................................................................................. 15割り込みサービスルーチン (ISR) ................................................................................ 15読み出し値の取得 .......................................................................................................... 15しきい値の定義 .............................................................................................................. 16デコード .......................................................................................................................... 16平均化 .............................................................................................................................. 16迅速な離し ...................................................................................................................... 16ウォームアップ .............................................................................................................. 17テストのための次のセンサーの設定 .......................................................................... 17

© 2008 Microchip Technology Inc. DS41328A_JP - ページ iii

Page 4: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

第 5 章 リファレンスデザイン .............................................................................19単一ボタンのリファレンスデザイン ..........................................................................194 ボタンのリファレンスデザイン ...............................................................................19複数ボタンのリファレンスデザイン ..........................................................................19

付録 A コードモジュール ライブラリ .................................................................21コードモジュール ライブラリとは何か ? ..................................................................21コードモジュール ライブラリはどのように動作するのか ? ..................................21コードモジュール ライブラリの紹介 .........................................................................22コードモジュール ライブラリのアイテム .................................................................23抜粋コードの生成 ..........................................................................................................24抜粋コードのコピー ......................................................................................................27抜粋コードの編集 ..........................................................................................................28使用する抜粋コードファイルの選択 ..........................................................................29ヒントとコツ ..................................................................................................................31トラブルシューティング ..............................................................................................32

付録 B コードモジュール ....................................................................................33コードモジュールリスト ..............................................................................................33Average – Always % ........................................................................................................34Average – Always 16 ........................................................................................................34Average – Gated % ...........................................................................................................35Average – Gated 16 ..........................................................................................................35CAPINIT 61x ....................................................................................................................36CAPINIT 690 Family .......................................................................................................36CAPINIT 88X Family ......................................................................................................37Convert VAL to % ............................................................................................................38Convert VAL to 16 ...........................................................................................................38Decode – Paired Press ......................................................................................................39Decode – Press, Diff Thresh. ............................................................................................39Decode – % Voting ...........................................................................................................40Decode – Press % .............................................................................................................40Decode – Press 16 .............................................................................................................41Decode – Press and Release .............................................................................................41ISR Basic ..........................................................................................................................42ISR with I2C™ Calls ........................................................................................................42Quick Release % ...............................................................................................................43Quick Release 16 ..............................................................................................................43Reading – Get TMR1 Value .............................................................................................44Restart Timers ...................................................................................................................44SetNextChannel 4-Button Example ..................................................................................45

DS41328A_JP - ページ iv © 2008 Microchip Technology Inc.

Page 5: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

SetNextChannel 25-Button Example ............................................................................... 45Threshold – Absolute Counts ........................................................................................... 46Threshold – Percentage .................................................................................................... 46Warm-up % ...................................................................................................................... 47Warm-up 16 ..................................................................................................................... 47

世界各国での販売およびサービス ................................................................................ 50

© 2008 Microchip Technology Inc. DS41328A_JP - ページ v

Page 6: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

DS41328A_JP - ページ vi © 2008 Microchip Technology Inc.

ノート :

Page 7: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

序章

はじめに

この章には、mTouch™ ソフトウェア開発キット (SDK) の使用前に知っておくと役立つ一般的な情報が記載されています。この章に記載されている項目は以下のとおりです。

• 本書の構成

• 本書で使用される表記

• 推奨参考資料

• マイクロチップ社ウェブ サイト

• 顧客サービス

• 改版履歴

本書の構成

本書では、ターゲットボード上において、mTouch™ ソフトウェア開発キットをファームウエアのエミュレーションやデバッグ用開発ツールとして使用する方法を説明しています。このドキュメントの内容は次のとおりです。

• 第 1 章 はじめに

• 第 2 章 mTouch™ はどのように動作するのか

• 第 3 章 mTouch™ システムの構築

• 第 4 章 ソフトウェアの詳細と選択肢

• 第 5 章 リファレンスデザイン

• 付録 A コードモジュール ライブラリ

• 付録 B コードモジュール

顧客の皆様への注意

ドキュメントはすべて古くなります。本書も例外ではありません。マイクロチップ社のツールおよびマニュアルはユーザーのニーズを満たすために改良を重ねており、実際のダイアログやツールの内容が本書に記載されているものと異なる場合があります。 新のドキュメントを入手するには、弊社のウェブ サイト (www.microchip.com) をご覧ください。

ドキュメントは「DS」番号で識別されています。この識別番号は、各ページのフッタ部分、ページ番号の前に記載されています。DS 番号の表記規則は「DSXXXXXA」で、「XXXXX」が文書番号、

「A」が文書のリビジョン レベルを表しています。

開発ツールについての 新情報は、MPLAB® IDE のオンライン ヘルプをご覧ください。[ ヘルプ ]メニューを選択して、次に [ トピック ] を選択すると、利用できるオンライン ヘルプ ファイルのリストが表示されます。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 1

Page 8: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

本書で使用される表記

本書では以下の表記上の規則を使用しています。

表記上の規則

説明 意味 例

明朝フォント :

斜体文字 参考資料 MPLAB® IDE User’s Guide

強調文字 ... は唯一のコンパイラです ...

角括弧 : [ ] ウィンドウ [Output] ウィンドウ

ダイアログ [Settings] ダイアログ

メニューの選択肢 [Enable Programmer] を選択

かぎ括弧 :「」 ウィンドウまたはダイアログのフィールド名

「Save project before build」

右山括弧 (>) を使用し、角括弧で囲まれた下線付きイタリック テキスト

メニュー パス [File] > [Save]

太字で角括弧に囲まれたテキスト

ダイアログのボタン [OK] をクリックします。

タブ [Power] タブを選択します。

N‘Rnnnn Verilog 形式の数です。N が合計桁数、R が基数、n が桁を表します。

4‘b0010, 2‘hF1

山括弧で囲まれたテキスト : <>

キーボードのキー <Enter>、<F1> を押します。

クーリエ フォント :

通常のクーリエ サンプル ソース コード #define START

ファイル名 autoexec.bat

ファイル パス c:\mcc18\h

キーワード _asm, _endasm, static

コマンド行オプション -Opa+, -Opa-

ビット値 0, 1

定数 0xFF, ‘A’

イタリック クーリエ 変数の引数 file.o: fileは任意の有効なファイル名

角括弧 : [ ] 任意の引数 mcc18 [オプション] file [オプション ]

中括弧とパイプ文字 : { | } いずれかの引数を選択する場合 (OR 選択 )

errorlevel {0|1}

省略記号 : ... 繰り返されるテキスト var_name [, var_name...]

ユーザーが定義するコード void main (void){ ...}

DS41328A_JP - ページ 2 © 2008 Microchip Technology Inc.

Page 9: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

序章

推奨参考資料

本ユーザーズガイドでは、mTouch™ ソフトウェア開発キット (SDK) の使用方法を記載しています。ほかにも役に立つ文書がありますので、以下に一覧でご紹介します。マイクロチップ社作成の以下のような文書がありますので、参考資料としておすすめします。

README ファイル

他のツールについての 新情報は、MPLAB IDE のインストール ディレクトリのReadmes サブ ディレクトリにある該当ツールの README ファイルをお読みください。README ファイルには、本ユーザーズガイドには記載されていない 新情報および既知の問題が記載されている可能性があります。

デザインセンター

マイクロチップでは、(www.microchip.com/mtouch) において静電容量性タッチデザインセンターを提供しております。

次のマイクロチップのアプリケーションノートが参考資料として推奨されています。

AN1101『Introduction to Capacitive Sensing』(DS01101)AN1102『Layout and Physical Design Guidelines for Capacitive Sensing』(DS01102)AN1103『Software Handling for Capacitive Sensing』(DS01103)AN1104『Capacitive Multibutton Configurations』(DS01104)

マイクロチップ社ウェブ サイト

マイクロチップ社は同社のウェブ サイト (www.microchip.com) でオンライン サポートを行っています。本ウェブ サイトはファイルや情報をいち早く顧客に提供する手段として用いられています。ウェブ サイトにはご使用のブラウザでアクセスでき、下記の情報が含まれます。

• 製品サポート - データシートと正誤表、アプリケーションノートとサンプル プログラム、設計リソース、ユーザーズガイド、ハードウェア サポート文書、新リリース ソフトウェア、ソフトウェア アーカイブ

• 一般的なテクニカル サポート - よく寄せられる質問 (FAQ)、テクニカル サポートの依頼、オンライン ディスカッション グループ、マイクロチップ社コンサルタント プログラム メンバーのリスト

• マイクロチップのビジネス - 製品選択と注文ガイド、マイクロチップ社の 新プレスリリース、セミナとイベントのリスト、マイクロチップの営業オフィス、代理店、工場代理人のリスト

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 3

Page 10: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

顧客サービス

マイクロチップ製品のユーザーは、いくつかのチャネルを介してサポートを受けられます。

• 販売代理店または販売担当者

• 地域の営業所

• フィールド アプリケーション エンジニア (FAE)• 技術サポート

技術サポートを得るには、販売代理店か販売担当者、フィールド アプリケーション エンジニア (FAE) に連絡してください。地域の営業所でもお客様の手助けをします。営業所と所在地のリストが本文書の 後に記載されています。

技術サポートは弊社ウェブ サイト (http://support.microchip.com) を通して受けることができます。

改版履歴

リビジョン A (2007 年 9 月 )• 本文書の初版リリース

DS41328A_JP - ページ 4 © 2008 Microchip Technology Inc.

Page 11: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

第 1 章 はじめに

mTOUCH™ とは何か

マイクロチップの mTouch™ Sensing Solution は、静電容量の変化を原理とする接触感知ソリューションです。昨今の静電容量性感知を実装した多くのアプリケーションでは、美観に優れたプロフェッショナルな外装が実現されています。

次の図 1-1 では、静電容量性感知の基礎を説明します。ユーザーが指を感知パッドに近づけると、システムには静電容量が新たに導かれます。この静電容量が PIC® マイクロコントローラによって検出され、追加回路とソフトウェアによって、ボタンが押されたことを知らせます。

図 1-1: 静電容量性感知の基本的な説明図

コンパレータと SR ラッチは PIC® マイクロコントローラ内部の部品で、接触感知を容易に実装できます。この実装はオープンソースで、マイクロチップの mTouch™ Sensing Solution のご使用には著作権使用料は発生しません。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 5

Page 12: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

ユーザーズガイドについて

このユーザーズガイドは、mTouch™ Sensing Solution を使用して開発を行うユーザーをサポートするドキュメントです。本書は、mTouch™ ソフトウェア開発キット(SDK) の一部として配布されます。この中に同梱内容の説明が含まれており、内容に関しては、(www.microchip.com/mtouch) から、mTouch™ Design Center にて入手可能です。

ステップバイステップ形式のガイドですので、特に様々な設計やアプリケーションに対して、ユーザーが、部品選定やその利点、プロジェクト固有のタスクに必要な制限事項や変更に関連した選択をサポートしています。

開発キットに含まれる内容 :• mTouch™ ユーザーズガイド

• ソフトウェア開発キット (SDK)• テンプレートファイル

• プロジェクト例

• ソフトウエアアプリケーション :- Code Module Library v0.5 (SDK と一緒に使用 )- mTouch™ Diagnostic Tool

• 4 つのアプリケーションノート

新のソフトウエアアプリケーションとアプリケーションノートはマイクロチップのウェブサイトに掲載され、 新版を本リリースに含めております。

後に、このユーザーズガイドと SDK は、mTouch™ Sensing Solution アプリケーションの開発のサポートとして設計されており、接触感知システムの 終版を意味するものではありません。設計の際には、意図したアプリケーションに要求される仕様を満たすための SDK のルーチン変更を実施していただくことをします。

DS41328A_JP - ページ 6 © 2008 Microchip Technology Inc.

Page 13: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

第 2 章 mTouch™ はどのように動作するのか

基本動作

mTouch™ システムは、プリント基板とグランド間に寄生静電容量を形成することで動作しています。ユーザーの指がセンサーパッド付近に近づいたとき、ユーザーの血液内の鉄分によって静電容量が増加します。これによりユーザーの手足を通じてグランドとの間に一対の追加のセンサーパッドを形成します。

静電容量性接触システムを実装するには、センサー、静電容量‐デジタルコンバータ、デコーディングの 3 つのハイレベルなシステムが必要です ( 図 2-1 を参照 )。センサー ( 青で表示 ) はセンサーパッドから構成されており、マルチプレクスしてマイクロコントローラに入力されています。静電容量‐デジタルコンバータ ( 緑で表示 )はマイクロコントローラの変数に保存した値の読み出しを使用するハードウェア技術です。これは、緩和発振器を生成するために内部および外部回路を使用し、その周波数を測定します。デコーディングシステム ( 赤で表示 ) は、値を読み、それによって何をするかを決定します。

図 2-1: 静電容量性接触システム

これらのプロセスに関しての詳細は、本書の「推奨参考資料」の章をお読みください。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 7

Page 14: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

センサーと静電容量-デジタルコンバータ

物理的な感知システムのプロセスの根幹は、緩和発振器を形成することです。図 1-1の回路は、ハードウェアの基礎を表しています。抵抗、センサーパッド、1/3VDD を除くすべての部分はマイクロコントローラの内部です。

センサーパッドは伝導性パッドで、しばしば、絶縁性材料によってユーザーが直接触れることから分離されます。センサーの設計はシンプルで、単純な四角や丸の形の 1 枚の触れるための指のサイズで提供されます。

マイクロチップの mTouch™ Sensing Solution は、この緩和発振器を基本とし、抵抗とコンデンサを組み合わせ、数百 kHz の発振周波数を作ります。正確な周波数はさほど重要ではありません。周波数は、タイマー 0 とタイマー 1 を使用して測定されます。

発振器の周波数が決定されると、図 2-1 のプロセスにおけるセンサーと静電容量-デジタルコンバータの部分に移行し、そのあとの感知プロセスは、ソフトウエアによるデコーディングシステムに入ります。

デコーディング

周波数の読み出しは、タイマー 0 でセットされた固定の周期での発振器の周波数を表すことになります。タイマー 1 は、読み出しのキャプチャに使用されます。静電容量は分かりませんので、標準の静電容量からの変化を見るための基準レベルをセットする必要があります。これは、読み出した値を平均化することで実行します。2 つの平均化の方法がありますので、後ほどご説明します。ユーザーがボタンを押すと静電容量が増加し、周波数が低下し、読み出し値も低下します。

したがって、ボタンが押されたことを検出するには、任意の量分読み出し値の低下を監視する必要があります。低下を読み出すために必要な量は、多くの要素を制御する必要がありますが、センサーがどれだけ敏感であるかで要約できます。強力なセンサーは大きく低下する場合があります。例えば、ユーザーがむき出しの金属パッドに触れるような場合です。弱いセンサーは、小さな低下が読み出せます。例えば、センサーが非常に厚いプラステックでカバーされているような場合です。強力なセンサーはすべての点において優れています。

スキャン中のボタンのデコーディング完了後、読み出しで N-point 平均化が使われます。標準的には、16 ポイント平均が適用されます。平均化には、2 つの提供される方法、「ゲート平均」と「低速平均」のうちの 1 つが使用できます。周波数の増加は、この平均値を参照して検出します。

ゲート平均は遅い環境の変化を探知できるように平均化を停止し、ゲートの外側の急激な変化は探知せず、ボタンが押されたことを検知できます。低速平均は、常に平均化を行います。しかし、これは平均化の周期の値をセンサーのサンプリングよりもさらに遅らせて、毎回の読み出しで実行します。

これ以外のソフトウェアでは、テストする適切なセンサーの選択やハードウェア資産のコンフィギュレーションと残りのマイクロコントローラの仕事との橋渡しをします。

実装の概要

mTouch™ Sensing Solution の主な利点は、すべてがカスタマイズ可能であるという点です。実装は完全にオープンで、書き直しも可能です。

提供される SDK は、Hi-TechPICC™ C Compiler で生成されたものです。SDK の一部は、事前の予想される使われ方と特定のタスクのためにあらかじめ書かれたサンプルコードです。例えば、SDK 内のゲート平均と低速平均のためのオプションと、さらにその他のあらかじめ書かれたルーチンも含まれています。

DS41328A_JP - ページ 8 © 2008 Microchip Technology Inc.

Page 15: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

第 3 章 mTouch™ システムの構築

開発ツールに必要なもの

マイクロチップの静電容量性 mTouch™ Sensing Solution は、Hi-Tech 社の PICC™ C compiler を使用した C 言語で実装されています。ライセンス付きコピーやデモ版は、Hi-Tech Software 社から入手が可能で、MPLAB® IDE に PICC™ C compiler を言語ツールスーツとして組み込んで使用できます。SDK を提供通りに使用するには、Hi-Tech PICC™ C を使用する必要があります。これは、PICC™ C compiler で独自の機能が使用されているためです。

入門

本章では、mTouch™ SDK の使い方を説明し、感知リュ-ションの実装のためのテンプレートを提供いたします。これは、完成したもの、また全体のプロセスの理解を提供するものでもなく、ステップバイステップのアプローチを指向しています。感知プロセス全体の詳細を理解するには、「推奨参考資料」の章に記載のすべてのアプリケーションノートを参照ください。

既存のソフトウェアテンプレート

プロジェクトを開始するのに簡単な方法は、テンプレートファイルから手をつけることです。SDK には、感知のみを目的としたテンプレートと PICkit™ Serial Analyzerを通じて mTouch™ Diagnostic Tool と通信する、I2C™ コミュニケーションを含むテンプレートが提供されています。簡単に始めるには、感知のみを動作させるファイルの方から着手することを推奨します。

これらのテンプレートファイルはソリューション例が書き込まれています。多くの部分は、SDK からご自身の選択で置き換えができます。SDK を使用するには、コードモジュールライブラリをインストールします。その場合には、コードモジュールライブラリプログラム内で、抜粋コードファイル mtouch_sdk.snpをアクティブな抜粋コードリストに追加する必要があります。コードモジュールライブラリ内では、これは [Settings>Preferences...] において [Add File] をクリックします。その後、ブラウズし、ファイルを選択します。すると、選択したファイルパスがリストボックスに表示されます。[Preferences] ダイアログウィンドウ を閉じるとプログラムの左側のツリーに「mTouch」とラベルの付いたフォルダができます。その中に SDK のすべての内容が含まれます。これらの内容はコピーされ、テンプレートファイルの適切な場所に貼り付けられます。プログラム自身に完全なヘルプファイルが配置され、また、それらは本ユーザーズガイドの「付録 A」にハードコピーとして含まれています。

デバイス選択

本 SDK は、現在静電容量性感知の機能を備えた量産中の 3 つの PIC マイクロコントローラファミリ用に設計されたものです。このファミリは次のとおりです。

• PIC16F610/616, PIC16HV610/616 マイクロコントローラファミリ

• PIC16F631/677/685/687/690 マイクロコントローラファミリ

• PIC16F882/883/884/886/887 マイクロコントローラファミリ

SDK は、新しいデバイスにシステムを実装するための新しいルーチンをインクルードすることを目的としてアップデートされます。開発者の際は、デバイスや SDK のアップデートについてのマイクロチップのウェブページをご確認ください。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 9

Page 16: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

それぞれのデバイスファミリの初期化方法は多少異なりますが、同様のセットアップで実施できます。SDK では、それぞれのデバイスに対する初期化ルーチンが提供されています。コンパレータ、SR ラッチと関連する周辺モジュールは、デバイスにまたがって同様にコンフィギュレーションされています。しかし、異なるデバイスにおいては、ピン配置やレジスタが変更されているので、レジスタ値のいくつかは変更されている可能性があります。

リスト中のデバイスを上下へ移動していくにつれて変化します。大きなデバイスの主なメリットは、より多くの I/O ピンが使用できることと、メモリ容量が大きくなることです。それぞれのデバイスの保存コンフィギュレーションにおいて、容量性ボタンの数は 4 つに制限していますが、ソフトウェアにおいては、小規模デバイスでは拡張されたコンフィギュレーションにおける感知のためのメモリは、ユーザー自身のアプリケーションと同様に少容量です。感知チャンネル自身は、それぞれのデバイスにおいて同じです。そのため、周辺モジュール、メモリ、I/O に対してどのような要求があるかによってデバイスを選択します。

簡単に生成できるソフトウェア

SDK では、時には数行の、またときには関数全体であるコードの抜粋とともにテンプレートが提供されます。抜粋されたコードは mtouch_sdk.snpファイルの中に含まれ、「既存のソフトウェアテンプレート」の章で述べましたように、コードモジュールライブラリのアプリケーションと共に起動します。この内容は、ソフトウェアをより迅速に生成するため、提供されるテンプレート中で統合されます。

ルーチンは、さまざまなアプリケーション用に記述されています。また、読み出しの単純な負シフトを「ボタン押し」を表すために使用したり、それをパーセントベースで作成したり、あるいは押し、放しの動作にしたりします。動作は常にアプリケーションに依存します。また、抜粋コードは、動作の決まったタイプをどのように実装するかを表します。

図 3-1 のソフトウェアフローチャートは、mTouch™ Sensing Solution の実装の基本的なソフトウェアの流れを表しています。このフローチャートでは、ユーザーが実装する必要のある主要な機能を説明します。 初の「T0IF == 1?」 判定ブロックに続くそれぞれのブロックが、SDK 中の主要なブロックで抜粋コードとして提供されています。同ブロック内では、ほとんどすべてに追加のバリエーションがあります。表 3-1 では、ブロックとその関連する抜粋コードを表しています。

表 3-1: SDK の抜粋コードに関連するフローチャート

フローチャートのブロック 関連抜粋コード

TMR1 値読み出し Reading – Get TMR1 ValueConvert – VAL to %Convert – VAL to 16

ボタン押し判定 Decode – Press %Decode – Press 16Decode – Press and ReleaseDecode – Percent VotingDecode – Paired PressDecode – Paired, Diff Thresh.

新値の平均化 Average – Always %Average – Always 16Average – Gated %Average – Gated 16

次のセンサーセット SetNextChannel 25-Button ExampleSetNextChannel 4-Button Example

DS41328A_JP - ページ 10 © 2008 Microchip Technology Inc.

Page 17: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouch™ システムの構築

図 3-1: ソフトウェアフローチャート

Main Loop

割り込み

T0IF == 1?いいえ

はい。静電容量の感知を実行

いいえ

サービス

周辺モジュール

ISR

CAP ISR( 割り込みサービスルーチン )

T0IF == 1?はい

静電容量の

割り込みをイネーブル

GIE = 1

メインループ

TMR1 値読み出し

ボタン押し判定

新値の平均化

次のセンサーセット

タイマーを再スタート

T0IF をクリア

読み出しをやめ

タイマーを再スタート

初期化

コード

終了コール

の割り込み

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 11

Page 18: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

右の欄 ( 表 3-1) に示した抜粋コードは、SDK にすべてインクルーシブとなるわけではありません。SDK では、ソフトウェアフローチャートのすべてのブロックの近くに追加のソフトウェアを提供しています。ユーザーのソフトウェアは、メインループにはめ込む、あるいは必要に応じて割り込みサービスルーチン (ISR) で使用することもできます。全抜粋コードのリストとコードモジュールは、付録 B「コードモジュール」に掲載されています。

アプリケーションに応じてテンプレートをカスタマイズする際の基本手順は次のとおりです。

静電容量の初期化

1. 選択したデバイスファミリ用の CapInitを使用します。

ISR 関数

2. タイマー 0 のオーバーフローにより、容量割り込みが発生した場合、容量サービスルーチンをコールするには interrupt isr を選択します。ここでは、2つの ISR ルーチンが用意されています。 初のルーチンは、静電容量感知のみを実行します。2 つ目は、I2C を使用してアプリケーションの割り込みをハンドリングします。

CapISR関数の内部

3. TMR1 の値を取得するため、Reading – Get TMR1 抜粋コードを使用します。

4. Convert ルーチンを使用します。生のカウント値を使うか、パーセンテージ認識を使うかの 2 つの選択肢があります。これらは、Convert – VAL to 16、あるいは Convert – VAL to % と表示されています。16 は生のカウント値であることおよびその平均化方法を示しています。

5. Warm-up ルーチンを配置します。ここでも前に選択した 16 か % のいずれかが継続します。

6. アプリケーションにデコーディングを実装します。このステップでは、それぞれのアプリケーションに対して多くのカスタマイズを必要とします。16 あるいは % ベース認識を選択した場合、適切なデコーディングの方法を選択し、さらに抜粋コード、あるいはそれを変更したものを使用してアプリケーションに合わせます。

7. 新しい値の平均化を実行します。デコーディング方法と併せて動作する平均化方法を選択します。

8. 次にスキャンするセンサーを設定します。この設定では、コンパレータの入力チャンネルを設定し、必要な場合には、外部マルチプレクサを制御するための外部 I/O も設定します。ここでは、アプリケーションのボタンの数とハードウエアに合わせる必要があります。SDK には、簡単な例と複雑な例が提供されています。

9. タイマー 0、タイマ 1 を再スタートし、RestartTimers()関数を CapISR関数の 後でコールします。この関数は、一切変更する必要はありません。

変数

10. すべての変数の初期値を宣言します。これには、しきい値を TRIP 配列で個別に、あるいはグローバルに #define文などで宣言するかのいずれかが含まれます。

11. INDEX 変数はボタンがどのように定義されたかと関連して適切にシーケンスされる必要があります。INDEX 変数は、SetNextChannel ブロックが、コンパレータ入力と外部 I/O をどのようにコンフィギュレーションしたかに関連します。

簡易な保存システムでは、( 上記 ) 0 から 3 項までを循環し、それを繰り返します。それぞれのインデックス番号は、特定のセンサーのスキャンに対するハードウェアとレジスタの設定を代表しています。メインファイルの中の H ファイルの中の#define文で結びつけれられた単語にインデックス番号を関連付けると便利です。

DS41328A_JP - ページ 12 © 2008 Microchip Technology Inc.

Page 19: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouch™ システムの構築

使用されている表記法は、iBTN0 for i = index で、BTN0はボタンの名称です。これをボタンに関連する名前にカスタマイズすると開発が容易になり、コードの可読性が改善されます。

ソフトウェアを生成するには、取り掛かりは多少複雑ですが、システマティックなアプローチを取ればそれほど難しくありません。同様の主要コンセプトは、それぞれの mTouch™ アプリケーションで発生しますので、特定のルーチンが使用されている間、ある部分は変更しながら原理を繰り返し利用することになります。

ソフトウェア動作

mTouch™ Diagnostic Tool は、開発者キットと共に提供されるソフトウェアアプリケーションです。コンピュータと PICkit シリアルアナライザを使用して、マイクロコントローラと開発者の間で GUI を使用して、静電容量性センサーの動きを観察し、通信します。周波数の読み出しはカウント値で表示されます。また、ユーザーの指の押しや環境要素などを含む異なる要素の変化量を、数字あるいは画像で可視化して表示します。

このツールを使用するには、まず I2C を使用するテンプレートからスタートします。PIC マイクロコントローラは、I2C を使用して PICkit シリアルアナライザと通信し、PICkit シリアルアナライザは、USB を使用してコンピュータと通信します。動作中のツールのスクリーンショットを図 3-2 に示します。

図 3-2: mTouch™ DIAGNOSTIC TOOL

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 13

Page 20: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

ハードウェア開発

ハードウェア開発は、mTouch™ システムを生成に重要です。設計の大部分はレイアウトの作業です。適したアプリケーションノートは AN1102「Layout and Physical Design Guidelines for Capacitive Sensing」(DS01102) および AN1104「Capacitive Multibutton Configurations」(DS01104) です。センサーパッドは、シンプルな銅製のパッドで、理論上の 1 枚の容量を形成し、指や伝導体が近づいたときに別のプレートを形成します。

センサーパッドが存在する回路はプリント基板、フレキ回路、その他の伝導性材料上であったりします。敏感な領域を保護するには、軽くメッシュの掛かったグランド面を敏感な領域の上部や周辺に使用します。図 3-3 にプリント基板を簡単に示します。

図 3-3: 簡単な PCB 図

プリント基板や感知回路を付けるには様々な方法が可能です。ボルトやナット、接着剤を使用した方法もありますし、PCB そのものを付着可能表面として使用する場合もあります。光学的にクリアな接着剤を使用するのは、デザイン性の高い場合に

適です。表面が隠されている場合には、単純に接着テープも機能しますし、ボンドが接着剤である必要はありません。ユーザーが触れる部分との間のセンサー上部の表面は、より薄い方がセンサーの敏感性に適しています。

センサーパッド

グランドメッシュで覆われた敏感なエリア

DS41328A_JP - ページ 14 © 2008 Microchip Technology Inc.

Page 21: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

第 4 章 ソフトウェアの詳細と選択肢

概要

本章では、多くの中から使用する SDK の要素をどのように選択するかを説明します。モジュール全体に渡って「Snippet %」や「Snippet 16」という名称を目にすることと思いますが、これらの名前は、2 つの異なる検知の方法を表しています。16 と記されているものは、周波数読み出しの生のカウント値の差をベースにした検知を扱います。それには、プロセスにおいて x16 の計算を含むために 16 というラベルが付けられています。このラベルは、% というラベルのあるパーセントベースのルーチンと区別するために付けられています。これらは混在することなく、生のカウントとパーセントベースの方法とが交差します。If 文や変数を使用する編集では、必要性や要求に応じて、抜粋コードを一方から他方へ変換することが可能です。

初期化

初期化に関しては簡単に選択が可能で、どのデバイスを使用するかに依存します。これには、3 つの PIC マイクロコントローラファミリ用に 3 種の CapInit関数があります。選択するには、どのマイクロコントローラを選択したかが基準となります。

割り込みサービスルーチン (ISR)ISR関数に対しての作業は、全く不要か、あっても非常にわずかです。種類は 2 つで、感知に関してのみの完全な機能を可能にするものと、同時に I2C 割り込みを使用できるものです。これは、mTouch™ Diagnostic Tool を使用するための I2C テンプレートを使用した感知で使います。静電容量感知の読み出しに影響を与えずに他のアプリケーションの割り込みを実装する方法を示した例もあります。

読み出し値の取得

読み出し値取得の 初のステップは常に同じで、TMR1 の値を取得することです。この値は、生のカウント値の検知かパーセントベースの検知のいずれかを使用することに続くよう変換され、それぞれ 16 あるいは % とラベル付けされます。両者に利点と欠点があります。

生のカウント検知は高速です。コード量が少なく、パーセンテージベースの検知に比べて、すべてのボタンのスキャンを完了がより早くなります。また、周波数の読み出しにおいて、わずか 1 カウントの変化に対しても非常に敏感です。しかし、この設定には注意を要し、トリップしきい値の確定が同時に要求されることになります。mTouch™ Diagnostic Tool がこれをサポートします。

より簡単な方法は、パーセントベースの検知で、迅速なソリューションが得られます。また同様の条件下で異なるボタンのパーセンテージの変化は通常非常に似ているため、トリップしきい値の定義が簡単です。パーセントボーティングシステムを使用することも可能です。ただし、パーセントベースの検知では、コード量が大きくなるため、より大量のメモリが必要になります。区分も必要になるため、すべてのボタンのスキャンが完了するまでスキャン時間に遅延も生じます。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 15

Page 22: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

しきい値の定義

しきい値は、生のカウントあるいはパーセンテージ手法のいずれかの選択方法を使用して定義する必要があります。しきい値に関して 2 つの抜粋コードが用意されています。

Threshold – Absolute: TRIP アレイの中のトリップ値配列を使用します。

Threshold – Percentage: #define文での固定値を単独しきい値としてすべてのボタンに対して使用します。

パーセンテージトリップしきい値は、すべてに対して同じである必要はありません。それらはトリップ配列の中に置かれ、同じ回路が適用されている TRIP 配列と共に使用されます。そして、しきい値に同じ値が与えられるか、個別かに関わらず、それらは容量性サービスルーチンの外側に置かれます。これには、CapInit関数の使用が 適です。

デコード

デコーディングのアルゴリズムは、ユーザーの押しに対して、ボタンがどのように反応するかを決定します。種類は多様ですが、すべてが可能であるという意味ではありません。これには、次の内容を実行するルーチンがあります。

Press: ユーザーがキーを押し下げたときにデコード

Press and Release: ユーザーがキーを押し下げ、離したときにデコード

Paired Press: 2 つの個別のボタンを ( 同時に ) 押したことを 3 番目の別ボタンとして扱いデコード

Paired Press, Diff Thresh: 別々のしきい値 (「全」と「半」) を使ったボタンのペア押しでデコード

Percent Voting: パーセンテージ法を使用してデコードし、一番押されたボタンを決定して、それを押されたボタンとして選択する。

平均化

平均化は、CapISR のデコーディング部のあとに実行される必要があります。生のカウントとパーセンテージベースの検知の両方に対して 2 つの方法が可能で、それぞれ、ゲート平均化と常時平均化といいます。

ゲート平均化は、通常の機械ボタンのように機能します。押し下げられたとき、平均化は探知をやめ、デコーダは、常時ボタン押しの信号を出力します。

常時平均化は、ボタンが絶対にスタックしない完全な確実性にとって有効です。それは、平均化をゆっくりと実行し、低速な環境の変化を平均化へ順応させます。ユーザーが早く押している場合は、デコーディング部でトリガが掛かります。指押しが継続された場合には、結果的に新しい読み出し値の平均がそのレベルまで低下し、ボタンそのものが消えた状態になります。

迅速な離し

ボタンの押し下げを活発に実行し、繰り返し押しにも反応させるために、迅速なボタン離しを実装するためのコードが提供されています。読み出した値は平均より上であれば、ボタンが離されたと単純に検出します。その場合、平均値は読み出された値にリセットされます。これは、生のカウントとパーセンテージベースのバージョンのいずれにも可能です。

DS41328A_JP - ページ 16 © 2008 Microchip Technology Inc.

Page 23: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

ソフトウェアの詳細と選択肢

ウォームアップ

ウォームアップ期間は、マイクロコントローラが 初に立ち上がったときに平均値を初期化します。デバイスが立ち上がるとき、発振器は初めは動作していないため、初期のリファレンス値を確立する必要があります。

これには、生のカウントとパーセンテージベースの検知用との 2 つのバージョンがあります。

テストのための次のセンサーの設定

後の区間は、SetNextChannel関数で、アプリケーションごとにボタン数に合致させてカスタマイズをする必要があります。これは、コンパレータのハードウェアコンフィギュレーションに関連する INDEX変数も使用し、外部回路がある場合には、それもコンフィギュレーションします。2 つの抜粋コードの例が提供され、1 つは簡素な 4 つのボタンのストックシステムを表し、もう 1 つは複雑な 25 のボタンのシステムで、外部の 2 つのマルチプレクサとコンパレータに直接つながるボタンを使用しています。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 17

Page 24: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

ノート :

DS41328A_JP - ページ 18 © 2008 Microchip Technology Inc.

Page 25: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

第 5 章 リファレンスデザイン

単一ボタンのリファレンスデザイン

単一ボタンのリファレンスデザインは、PIC16F616 QFN を使用した非常に省スペースな例で、直径 0.8 インチの円に収まるように設計されました。一方はセンサーパッドが存在する側で、他方はすべての制御回路が存在している側です。これには、プログラミングのためのヘッダ ( コネクタ ) の半田付けポイントと電源、グランドそして信号ラインが含まれます。

ソフトウェアは非常に簡素なデコードアルゴリズムを使用し、high を出力するかLow を出力するかはセンサーが押された状態か押されていない状態かに依存します。ボタンがスタックする可能性を無くすために、常に低速平均化法が使用されます。

4 ボタンのリファレンスデザイン

4 ボタンのリファレンスデザインは、小さな 1 インチ× 3 インチのボードで、QFN パッケージの PIC16F677 の実例を説明しています。mTouch™ Diagnostic Tool との通信のための I2C も含む簡素で実用的な基本例です。デコーディングは、簡単なパーセンテージベースのデコーディングです。

静電容量性感知のための回路規模は、パッドそのものやパッドへのリード配線を除くと非常に小さくなります。センサーパッドへのトレースが 1 つから 4 つになることを除けば、単一ボタンリファレンスデザインの場合とほぼサイズは同じです。

複数ボタンのリファレンスデザイン

複数ボタンのリファレンスデザインは、初期のデモボードプロトタイプで、mTouch™ Sensing Solution のマーケティング活動を支援するために使用されたもので、同じ電源ラインを 2 つの回路が共有し、その回路は PIC16F616 と PIC16F887 の2 つのデバイスに特化されています。

PIC16F887 の回路は、10 ボタンのキーパッドを含み、携帯電話として配列されています。そして、さらに 7 ボタンのリニアスライダも含まれています。これらの独立したすべてのセンサーを実装するために、いくつかの外部マルチプレクサが使用されています。ソフトウェアでは、ボタンのスタックが発生する危険性を取り除くため、マイクロコントローラが常に低速平均化法を使用します。簡単なデコードでありながら、外部のマルチプレクサやすべてのボタンに渡ってより複雑なシーケンスが要求される大規模プロジェクトの基本として 適です。マイクロコントローラの内部変数の確認には、mTouch™ Diagnostic Tool ( コンピュータの GUI) との通信も可能です。

PIC16F616 の回路には 4 ボタンが含まれます。3 つのボタンは円形に配置され、1 つは真ん中に配置されています。この回路は、低価格マイクロコントローラの簡単な 4ボタンプロジェクトを実演します。また、信頼性の高い動作を保証するためにパーセントベースの検知とボーティングシステムを使用しています。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 19

Page 26: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

ノート :

DS41328A_JP - ページ 20 © 2008 Microchip Technology Inc.

Page 27: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

付録 A コードモジュール ライブラリ

コードモジュール ライブラリとは何か ?コードモジュール ライブラリは、ソフトウェア生成ツールです。初心者でも経験のあるソフトウェア開発者でも、作り直しに時間のかかるコードの内容を迅速に見つけることができます。

マイクロコントローラのアプリケーションが、共通のビルドブロックに簡単にアクセスできるようにすることで、開発者がソフトウェアの開発を早めることができます。ソフトウェア部分を動作させる新しいルーチンを作成する代わりに、プラグアンドプレイのような方式ですでに存在するものを使用する、あるいは特定の必要性のためにコードを微調整します。

コードモジュール ライブラリは、32 キロバイトまでのどのようなテキストでも保持ができ、マイクロチップの MPLAB IDE、あるいはその他のソフトウェアエディタと一緒に使用することを意図しています。

コードモジュール ライブラリはどのように動作するのか ?コードモジュールライブラリは、コードの保存にも 適です。コードはウィンドウズのクリップボードにコピーされて、アプリケーションの必要なところへ貼り付けられます。

アプリケーションに何を書くかに依存して、変数のいくつか、あるいはコピーしたコードを変更する必要があります。ソースコードの中にコピーした抜粋コードで使われている変数を、インクルードファイルや、また先頭で cblockを使用した絶対コードや、resを使用したリンクコードで宣言する必要があります。詳細は「トラブルシューティング」の章を参照してください。

抜粋コードは、拡張子「.snp」の付けられた抜粋コードファイルの中にあります。コードモジュールライブラリは、ファイルの書式を適切化し、ファイルの中の抜粋コードを生成やソートに関連するすべてのタスクをハンドリングします。抜粋ファイルのデフォルトの保存場所は、プログラムがインストールされたのと同じディレクトリにある Snippets フォルダです。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 21

Page 28: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

コードモジュール ライブラリの紹介

本章では、コードモジュール ライブラリの主要なコンポーネントは何であるかとその使用について基本的なところを解説します。

右側の枠は、抜粋コードテキストといくつかのボタンがあります ( 図 A-1)。これは抜粋コードをコピーした際にクリップボードにコピーされたテキストです。この全体の枠は隠されていますが、ツリーと抜粋コードの記述のみを残すことも可能です。( 抜粋コードのテキストはまだコピーされています。) この方法で、PC 画面においてコードモジュールライブラリのサイズは 小化され、画面上の煩雑さも軽減されます。2 つの枠の間のボタンは、隠れるかあるいは右側の枠に現れます。

図 A-1: コードモジュール ライブラリのアプリケーションウィンドウ

抜粋コードツリー

抜粋コードの配置とアクセスに使用

変数置き換えリスト

抜粋コードの中で名前のついているすべての変数を迅速に変更するためのもの「Replace With」欄にタイプすることにより、その左側の欄にある名前のついたすべてのインスタンスに対してワーキングコピーとして置き換え

抜粋コードテキスト

「コピー」をクリックしたときにコピーされたテキスト

タイムスタンプ

最後に編集した日付

DescriptionInformative Description

DS41328A_JP - ページ 22 © 2008 Microchip Technology Inc.

Page 29: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール ライブラリ

コードモジュール ライブラリのアイテム

抜粋コードツリー

抜粋コードツリーは抜粋コードを保管する場所です。

抜粋コードのリストは、ファイルの選択と Settings>Preferences... の下のディレクトリから生成されます。さらに詳細な情報につきましては、「使用する抜粋コードファイルの選択」をご覧ください。ツリーをブラウズすると、右側のパネルの情報が更新されます。

ディスクリプション

このテキストは抜粋コードをコピーしたときにコピーされるものではなく、抜粋コードをどのように使用するかなどについての注記を提供するために使われる情報提供を目的としたものです。ディスクリプションの上で右クリックし、「Copy Selected Text」をクリックするとこのテキストがコピーされます。

変数置き換えリスト

一部の抜粋コードは、Microchip MPASM™ アセンブラを使う場合には、ラベルや変数を再度使用しないよう要求する必要があり、ラベルは 2 つの異なるアドレスで定義することはできません。迅速に変数名を変更するには、[Replace With] の下の中央の欄にタイプすると左の欄にあるテキストの実体がタイプしたものに置き換えられます。この変更は、抜粋コードのワーキングコピーで画面に反映されます。コピーされると、抜粋コードは変更後の変数名でコピーされます。

[Replace With] の下で変更した変数名は、データベースの中の抜粋コードを変更するものではありません。もし別の抜粋コードに移動して戻った場合には、初期の状態に戻っています。これらの変数を変更するには、 [Edit Snippet] ウィンドウの中で編集してください。

抜粋コードテキスト

これは、< Ctrl+C> キーを押したり、[Copy] をクリックしたり、抜粋コードツリーの抜粋コードをダブルクリックしたり、あるいは抜粋コードツリーで <Enter> キーを 2回押したときにコピーされるテキストです。

タイムスタンプ

前回 後に抜粋コードが編集された日時を示しています。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 23

Page 30: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

抜粋コードの生成

抜粋コードを生成するには、メニューバーの [File>New Snippet...] に移動します。[New] をクリックすると、図 A-2 に示したウィンドウが開かれます。

図 A-2: [CREATE NEW SNIPPET] ウインドウ

抜粋コードの生成をするときには、注意する必要のある 3 つのキーになるフィールドがあります。ツリーが配置されている階層フィールドと、その名前 ( そのフィールド ) と下部のある抜粋コードのテキスト ( そのフィールド ) です。すべてのフィールドに関する詳細は次のとおりです。

いずれのファイルに抜粋コードを配置するかが決まれば、ツリーのその場所に抜粋コード情報そのものが配置され、[OK] をクリックすると [Create New Snippet] ウィンドウが閉じて抜粋コードが生成され、メインウィンドウに表示されます。

DS41328A_JP - ページ 24 © 2008 Microchip Technology Inc.

Page 31: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール ライブラリ

ファイル名フィールド

上部の 初のグレーのボックスがファイル名のテキストボックスで、これが抜粋コードが保存されるファイルになります。[Create New Snippet] ウィンドウを開いたときにメインウィンドウの抜粋コードツリーで、抜粋コードやディレクトリが選択されていると、[Create New Snippet] ウィンドウは、選択したアイテムに関連するファイルを自動的にロードします。これは、類似した抜粋コードをファイル中で同時に保管するのに便利です。ただし、ファイルを変更する場合には [Browse] か [New] のいずれかのボタンを選択します。

もしファイル名を変更した場合に、図 A-2 のようなウィンドウが表示されたとすると、ファイルのリストと抜粋コードツリーに表示されるフォルダに含まれていないファイルに抜粋コードを書こうとします。すべてが成功したら [OK] をクリックします。クリックしない場合、この抜粋コードで抜粋コードツリーが高原された場合更新したときに、表示されません。さらに詳細につきましては、「使用する抜粋コードファイルの選択」のトピックをご覧ください。

図 A-3: リストにないファイル

階層フィールド

このフィールドは、あなたの抜粋コードが抜粋コードツリーのどの場所に配置されたかを特定するものです。コードモジュール ライブラリは、メインウィンドウの選択を基準に新しい抜粋コードを生成した際にどこに配置するか、関連付けます。これを変更する場合、またはユーザーフレンドリにする場合は、[Change] ボタンを選択します。この動作によって、次のウィンドウが表示されます。

図 A-4: 階層ブラウザ

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 25

Page 32: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

上記の図 A-4 にありますように、 [OK] ボタンをクリックすると、新しい抜粋コードが ASM の下の If Statements フォルダの下のルートレベルに配置されます。テキストは、階層フィールドで「ASM;If Statements」として表示されます。

名前

抜粋コードには名前が必要です。このテキスト入力ボックスでは、抜粋コードの名前を規定します。同じフォルダにある抜粋コードには、同じ名前を使用できません。

ディスクリプション

ディスクリプションボックスは、メインウィンドウに見えるように、抜粋コードに付随しています。その抜粋コードが何か、あるいはどのように使用するかの迅速な要約を提供します。

変数

メインのアプリケーションウィンドウ上で使用するときには、変数は [Replace With]の下でユーザーがタイプしたもので置き換えられて宣言されます。変更する必要のあるラベルとのその他の変数をタイプします。変数の名前を変更する必要がなくても、それらをここでリストアップすることは、ユーザーアプリケーションにおいて、どの変数を宣言する必要があるかを特定する手助けとなります。

テキスト

抜粋コードのテキストをここでタイプする必要があります。このテキストはあなたの抜粋コードかあるいはその他のテキストの一部です。

DS41328A_JP - ページ 26 © 2008 Microchip Technology Inc.

Page 33: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール ライブラリ

抜粋コードのコピー

抜粋コードをクリップボードにコピーする

まずは抜粋コードのアイテムを抜粋コードツリーの中で選択する必要があります。抜粋コードのアイテムはノートパッドのイメージで左側に表示されます。選択されると、メインウィンドウのそれぞれのディスプレイにディスクリプションとテキストが表示されます。

マイクロチップが発行した未編集の抜粋コードは、ノートパッドアイコンの左下ところにマイクロチップのロゴが表示されます。ユーザーの抜粋コードでは、ノートパッドのアイコンのみです。

ホットキーのコピー

抜粋コードの選択後は、多くのユーザーに対する利便性から、抜粋コードのコピー方法を複数提供しています。 も一般的な方法は 3 つあり、メニューバーから[Edit>Copy] にアクセスすること、< Ctrl+C> キーを使用すること、右枠から [Copy] ボタンをクリックすることです。

この方法のほかには、コピーする抜粋コードをダブルクリックしたり、あるいはツリー内で選択し <Enter> キーを 2 度押すことでも可能です。

変数の置き換え ( オプションの手順 )アプリケーションのウィンドウで、図 A-5 に示したパネルが、抜粋コードテキストの上部に配置されます。抜粋コードはいかなる単語も置き換えることなく使用されますが、 [Variable] の下欄のテキストを実際に迅速に変更するには、[Replace With] の下欄で変数の横に入力します。ここに示すように、mulcndと mulplrは、ユーザーのアプリケーションの変数 Sensor1Valueと ScaleValueで置き換えられ、Prod_Hは変更されません。

図 A-5: 変数置き換えリスト

抜粋コードをアプリケーションの中に入れる

抜粋コードをクリップボードにコピーすると、アプリケーションに貼り付けできます。

MPLAB IDE または、その他のエディタを起動して、エディタを使用して抜粋コードを希望する場所へ貼り付けます。

変数の宣言

抜粋コードをアプリケーションに貼り付けた後は、変数を使用している場合にはそれらを必ず宣言してください。宣言を忘れると、エラーが発生します。MPLAB IDEと PIC マイクロコントローラのアセンブラを使用している場合には、変数の宣言が行われていないと、エラー 113 が発生します。

「Error[113] Symbol not previously defined (VariableName)」

このエラーを修正するには、それが変数か定数かによって、cblockまたは、resを変数を使用し、#defineまたは equを定数に使用します。(MPASM アセンブラ言語の詳細は、MPLAB IDE Help にあります。)

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 27

Page 34: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

抜粋コードの編集

抜粋コードの編集方法は、抜粋コードを新しく生成する手順に似ています。

まず初めに、ツリーの中で抜粋コードを選択する必要があります。次に [Edit>Edit Snippet...] をクリックするか、あるいは [Edit Snippet] ウィンドウを起動します。

次の図 A-6 は [Edit Snippet] ウィンドウを示しています。[Create New Snippet] ウィンドウと同じスタイルで、同じフィールドがあります。ここで、抜粋コードを新規に生成する代わりに、編集する抜粋コードに置き換えします。

図 A-6: [EDIT SNIPPET] ウィンドウ

DS41328A_JP - ページ 28 © 2008 Microchip Technology Inc.

Page 35: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール ライブラリ

使用する抜粋コードファイルの選択

コードモジュールライブラリは、ファイルのセットから抜粋コードツリーを生成します。これらのファイルの Snippets フォルダのデフォルトの位置と設定は、プログラムがインストールされた場所です。

特定のプロジェクトの抜粋コードのみのプロジェクト設定を、抜粋コードツリーに関連付けることが可能です。実現するには、コードモジュール ライブラリで、抜粋コードファイルの検索先ディレクトリを選択するか、もしくはインクルードする特定の抜粋コードファイルを指定します。

まず、 [Settings>Preferences...] を選択すると、 [Snippet Files] のタブを示すウィンドウが表示されます。( 図 A-7 参照 ) このタブを選択し、コンボボックスの中から、デフォルトの設定を表示します。その下には、デフォルトのファイルやフォルダが含まれています。もしこれが一度も変更されていない場合、プログラムは、プログラムがインストールされているディレクトリの中に Snippets フォルダのみを表示します。

図 A-7: [USER PREFERENCES] ウィンドウ

設定を新規に生成するには、 コンボボックスの右側の [New] ボタンをクリックします。ファイル名を入力するための小さなウィンドウが表示されます ( 図 A-8 参照 )。新しい設定に名前をつけ [OK] をクリックします。これで新しい設定が選択され、空欄のリストが次のように表示されます ( 図 A-9 参照 )。

図 A-8: [NEW] 設定名プロンプト

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 29

Page 36: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

図 A-9: 新しい設定の追加

ファイルを追加するには、 [Add File] をクリックし、インクルードしたいファイルをブラウズします。選択するとファイルがリストに表示されます。

ディレクトリを追加するには、[Include Folder] ボタンをクリックし、図 A-10 のウィンドウが表示されたら、抜粋コードファイル (.snp) のあるフォルダを選択し、[OK] をクリックします。このディレクトリがノンリカーシブ ( 非再帰 ) リストに追加されます。それで、C: に追加すると ( 図 A-10 のように )、(.snp) ファイルのみが直接 Cドライブに追加されます。

図 A-10: フォルダブラウザ ウィンドウ

プリファレンスウィンドウの [OK] ボタンをクリックすると、変更を保存して、その変更した内容を現在の設定としてロードします。抜粋コードツリーは、ディレクトリ内に見つかったすべての抜粋コードファイルおよび選択ファイルを表示し、更新されます。

DS41328A_JP - ページ 30 © 2008 Microchip Technology Inc.

Page 37: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール ライブラリ

ヒントとコツ

コードモジュールライブラリの中には、利便性を向上する機能があります。

ステイオントップ

コードモジュール ライブラリは、ライブラリとその他のプログラムの間を簡単に行き来できるように、ステイオントップがあります。

抜粋コードのテキストを隠す

抜粋コードのテキストを隠すことで、PC の画面上におけるコードモジュール ライブラリの表示領域を縮小し、煩雑さが軽減できます。この方法は、抜粋コードのテキストを見る必要がない場合に 適です。抜粋コードは、抜粋コードツリーで確認ができ、テキストを見なくてもコピーができます。これは、またコードモジュール ライブラリが作業環境に影響を与えないようにするため、ステイオントップ機能と同時に使用することを推奨しますが、抜粋コードが何かを確認したりその変数を変更したりする場合には、すぐにウィンドウが起動します。

ディレクトリとファイルの選択

[Settings] の下の [User Preferences] から、抜粋コードを関連づけてディレクトリやファイルを変更できます。この方法では、ある日はプロジェクト A の作業をしていて、関連する抜粋コードが沢山ある場合に、プロジェクト A 特定の抜粋コードだけをロードできます。また、特定のプロジェクトのために抜粋コードファイルをカスタマイズしたり、編集したりすることが簡単になります。別の日には、 [Preferences] の下に戻ってプロジェクト B の特定の抜粋コードを選択したり、デフォルトのファイルが使用できます。

デフォルトでは、使用フォルダは、プログラムがインストールされた場所の Snippetsフォルダになります。新しい抜粋コードは、デフォルトで user.snpファイルとなりますが、これは [Create New Snippet] あるいは [Edit Snippet] ウィンドウの中にあるファイルの横の [Change] をクリックして変更できます。

迅速なコピー

キーボードとマウスでブラウズするには、コピーする抜粋コードの名前をダブルクリックすると便利です。コピー方法については、「抜粋コードのコピー」の章を参照してください。

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 31

Page 38: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

トラブルシューティング

Error[113] シンボルは予め定義されていない ( 変数名 )抜粋コードの貼り付けに加え、抜粋コード中の変数や定数は、アセンブリコード内で宣言する必要があります。これは即値の定数に関しては適用されません ( 例 0x42)。このエラーを修正するには、変数の場合には絶対コードやリンクコード用にcblockまたは、resを使用したレジスタを宣言します。定数であれば ( 例えば、MAX_SIZE)、#defineまたは equを使用し、その後に適切な数字を続けます。

MPASM アセンブラ言語の詳細は、MPLAB IDE Help にあります。

さらに抜粋ファイルを調べるには

ユーザーがアプリケーションに関連する問題を議論したり、沢山の抜粋コードを共有したりできるよう、マイクロチップはウェブフォーラムを開催しています。

マイクロチップフォーラムは、http://forum.microchip.com/ からアクセスできます。

バグレポート

マイクロチップのソフトウェアのバグを発見した場合には、「Bug Reports」というラベルのアプリケーション用フォーラムにログオンしてお知らせください。

すべてのマイクロチップフォーラムは、http://forum.microchip.com/ からアクセスできます。

DS41328A_JP - ページ 32 © 2008 Microchip Technology Inc.

Page 39: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM

ユーザーズガイド

付録 B コードモジュール

コードモジュールリスト

Average – Always %Average – Always 16Average – Gated %Average – Gated 16CapInit – 61xCapInit – 690 FamilyCapInit – 88xConvert – VAL to %Convert – VAL to 16Decode – Paired PressDecode – Paired, Diff Thresh.Decode – % VotingDecode – Press %Decode – Press 16Decode – Press & ReleaseISR – BasicISR – With I2C CallsQuick-release %Quick-release 16Reading – Get TMR1 ValueRestartTimersSetNextChannel 4-Button ExampleSetNextChannel 25-Button ExampleThreshold – Absolute CountsThreshold – PercentageWarm-up %Warm-up 16

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 33

Page 40: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

AVERAGE – ALWAYS %

機能 : ランニング平均の任意の間隔内での平均化を実行、範囲外では平均化が停止

ハードウェア依存 : なし

入力 : 変数 : AVERAGE, VALUE

出力 : 結果が AVERAGEに保存される

場所 : CapISRの中のデコーディング後のチャンネル変更前

オプション : なし

AVERAGE – ALWAYS 16

機能 : センサーデータの平均化を常に実行、しかし、実行速度は非常に低速。遅い変化は無視し、早い変化はボタンの押し下げとしてカウントする

ハードウェア依存 : なし

入力 : 変数 : AVERAGE, BIGVAL, SMALLAVG

出力 : 結果を AVERAGEに保存

場所 : 生の値を取得し、それを適切な検知方法で変換した後

オプション : なし

DS41328A_JP - ページ 34 © 2008 Microchip Technology Inc.

Page 41: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

AVERAGE – GATED %

機能 : ランニング平均の任意の間隔内での平均化を実行、範囲外では平均化が停止

ハードウェア依存 : なし

入力 : 変数 : AVERAGE, VALUE

出力 : ハードウェアを構成

場所 : CapISRの中のデコーディング後のチャンネル変更前

オプション : なし

AVERAGE – GATED 16

機能 : ランニング平均の任意の間隔内での平均化を実行、範囲外では平均化が停止

ハードウェア依存 : なし

入力 : 変数 : AVERAGE, BIGVAL, SMALLAVG

出力 : 結果が AVERAGEに保存される

場所 : CapISRの中のデコーディング後のチャンネル変更前

オプション : なし

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 35

Page 42: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

CAPINIT 61X

機能 : PIC16F61X ファミリでコンパレータレジスタの静電容量感知の設定を初期化。4 つの C12INx- ピンを使用(x = 0-3)、C2OUT、T1CKI、その他のすべてをデジタルに構成

ハードウェア依存 : PIC16F610/616/PIC16FHV610/616 デバイス

入力 : 変数 : RAW[], AVERAGE[], INDEX, FIRST 定数 : COMP1[], COMP2[], NUM_BTTNS 関数 : RestartTimers()

出力 : ハードウェアを構成

場所 : CapInit()関数、Init()からコール

オプション : アプリケーションにより、アナログ / デジタル I/O を変更

CAPINIT 690 FAMILY

機能 : IC16F690 ファミリでコンパレータレジスタの静電容量感知の設定を初期化。4 つの C12INx- ピンを使用(x = 0-3)、C2OUT、T1CKI、その他のすべてをデジタルに構成

ハードウェア依存 : PIC16F631/677/685/687/689/690 ファミリデバイス

入力 : 変数 : RAW[], AVERAGE[], INDEX, FIRST 定数 : COMP1[], COMP2[], NUM_BTTNS 関数 : RestartTimers()

出力 : ハードウェアを構成

場所 : CapInit()関数、Init()からコール

オプション : アプリケーションにより、アナログ / デジタル I/O を変更

DS41328A_JP - ページ 36 © 2008 Microchip Technology Inc.

Page 43: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

CAPINIT 88X FAMILY

機能 : PIC16F88X ファミリでコンパレータレジスタの静電容量感知の設定を初期化。4 つの C12INx- ピンを使用(X = 0-3)、C2OUT、T1CKI、その他のすべてをデジタルに構成

ハードウェア依存 : PIC16F882/883/884/886/887 ファミリデバイス

入力 : 変数 : RAW[], AVERAGE[], INDEX, FIRST 定数 : COMP1[], COMP2[], NUM_BTTNS 関数 : RestartTimers()

出力 : ハードウェアを構成

場所 : CapInit()関数、Init()からコール

オプション : アプリケーションにより、アナログ / デジタル I/O を変更

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 37

Page 44: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

CONVERT VAL TO %

機能 : 現在の読み出し値をランニング平均から負のパーセンテージシフトに変換。負のシフトは正のパーセンテージに作り変えられ、正のシフトは「0」にセットされる

ハードウェア依存 : PIC16F616, PIC16F690 ファミリ、PIC16F88X ファミリ(PIC16F610 ではない )

入力 : 変数 : VALUE, AVERAGE[]

出力 : 変数 : percent

場所 : CapISRのウォームアップの後。CapISRの中で、値の取得とウォームアップに続く 3 番目のアイテムである必要がある

オプション : ルーチンの中で、パーセント変数の計算に 1000 倍して 24.3% を 243 として使うか、もしくは 100 倍して24.3% を 24 として使うか。機能のロスをせず、解像度を保つために 1000 倍を推奨

CONVERT VAL TO 16

機能 : ドロップインカウントを使った検知のために VALUEを BIGVAL と SMALLAVG に変換

ハードウェア依存 : なし

入力 : 変数 : VALUE

出力 : 変数 : BIGVAL, SMALLAVG

場所 : CapISRルーチンの 1 番目。x16 あるいはパーセンテージベース検知の VALUEフォーマットの後

オプション : なし

DS41328A_JP - ページ 38 © 2008 Microchip Technology Inc.

Page 45: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

DECODE – PAIRED PRESS

機能 : ペアと単一プロセスのデコード

ハードウェア依存 : なし

入力 : フラグ付きボタン構造

出力 : ボタン検知を合図するボタンフラグ

場所 : 生の値を取得し、それを適切な検知方法用に変換した後

オプション : なし

DECODE – PRESS, DIFF THRESH.

機能 : 半分押し、全押しボタンの異なるしきい値を持つペア押しを使用

ハードウェア依存 : ぺア押しシステムが必要

入力 : 変数 : TRIP[], HALFTRIP[], percent

出力 : ボタン検知を合図するボタンフラグ

場所 : 生の値を取得し、それを適切な検知方法用に変換した後

オプション : なし

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 39

Page 46: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

DECODE – % VOTING

機能 : どのボタンかを決定するのにパーセントベースの検知を使い、一つだけの場合は、それを も押されたボタンとする。複数のボタンが押された場合は、 も変化の大きいものが も押されたボタンとなる。単一ボタン押しの機能は、標準

ハードウェア依存 : なし

入力 : フラグ付きボタン構造、そして IndexArray[]とPctArray[]配列変数を高から低押し値のソートに使用

出力 : ボタン検知を合図するボタンフラグ

場所 : 生の値を取得し、それを適切な検知方法用に変換した後

オプション : なし

DECODE – PRESS %

機能 : 押し動作のデコード

ハードウェア依存 : なし

入力 : フラグ付きボタン構造

出力 : ボタン検知を合図するボタンフラグ

場所 : 生の値を取得し、それを適切な検知方法用に変換した後

オプション : なし

DS41328A_JP - ページ 40 © 2008 Microchip Technology Inc.

Page 47: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

DECODE – PRESS 16

機能 : 押し動作のデコード

ハードウェア依存 : なし

入力 : フラグ付きボタン構造

出力 : ボタン検知を合図するボタンフラグ

場所 : 生の値を取得し、それを適切な検知方法用に変換した後

オプション : なし

DECODE – PRESS AND RELEASE

機能 : 押しと離し動作のデコード

ハードウェア依存 : なし

入力 : フラグ付きボタン構造

出力 : ボタン検知を合図するボタンフラグ

場所 : 生の値を取得し、それを適切な検知方法用に変換した後

オプション : なし

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 41

Page 48: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

ISR BASIC

機能 : すべての割り込みに応答し、容量性サービスルーチンを開始する

ハードウェア依存 : 可能性 – コードの中のコメントとして他の割り込みへの注意を使用

入力 : なし

出力 : なし

場所 : interrupt isr()関数

オプション : 他の割り込みと一緒に動作するにはまず T0IF サービスを置き、他の割り込みはその後。 後に、他の割り込み中に T0IF が発生したかどうかをチェックしてクリア

ISR WITH I2C™ CALLS

機能 : すべての割り込みに応答し、容量性サービスルーチンを開始する。そして追加のアプリケーション割り込みのサービスも行う

ハードウェア依存 : 可能性 – コードの中のコメントとして他の割り込みへの注意を使用

入力 : なし

出力 : なし

場所 : interrupt isr()関数

オプション : 他の割り込みと一緒に動作するにはまず T0IF サービスを置き、他の割り込みはその後。 後に、他の割り込み中に T0IF が発生したかどうかをチェックしてクリア

DS41328A_JP - ページ 42 © 2008 Microchip Technology Inc.

Page 49: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

QUICK RELEASE %

機能 : もし生の値が平均より上に上がってきたときには、押し下げの開放が発生。そして新しい生の値にリセットされる。このバージョンは、パーセントベース検知用コード

ハードウェア依存 : なし

入力 : 変数 : AVERAGE[], VALUE

出力 : 結果を AVERAGEに保存

場所 : CapISRの平均化ブロックの後

オプション : もし低速の平均化をしている場合、急上昇の代わりに、それぞれの上昇変化が平均化される。これは、偶発的な高い値のエラーの傾向を少なくする

QUICK RELEASE 16

機能 : もし生の値が平均より上に上がってきたときには、押し下げの開放が発生。そして新しい生の値にリセットされる。このバージョンは、絶対カウント増加検知用コード

ハードウェア依存 : なし

入力 : 変数 : AVERAGE[], BIGVAL

出力 : 結果を AVERAGEに保存

場所 : CapISRの平均化ブロックの後

オプション : もし低速の平均化をしている場合、急上昇の代わりに、それぞれの上昇変化が平均化される。これは、偶発的な高い値のエラーの傾向を少なくする

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 43

Page 50: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

READING – GET TMR1 VALUE

機能 : TMR1 の読み出し値を取得

ハードウェア依存 : なし

入力 : レジスタ : TMR1H, TMR1L

出力 : 変数 : VALUE

場所 : CapISRルーチンの 1 番目。x16 あるいはパーセントベース検知の VALUE フォーマットの後

オプション : なし

RESTART TIMERS

機能 : TMR0 と TMR1 のリセットとリスタート。T0IF をクリア

ハードウェア依存 : なし

入力 : なし

出力 : なし

場所 : 単独機能

オプション : なし。PIC16F88X ファミリ、PIC16F690 ファミリ、PIC16F61X ファミリデバイスの PIC マイクロコントローラが必要な SR ラッチを利用。他のデバイスの正確性を確認

DS41328A_JP - ページ 44 © 2008 Microchip Technology Inc.

Page 51: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

SETNEXTCHANNEL 4-BUTTON EXAMPLE

機能 : 例 –自然の4コンパレータ入力のチャンネルを切り替え

ハードウェア依存 : 4 つすべてのコンパレータ入力を使用しているボード C12INx- (x = 0-3)

入力 : 変数 : INDEX定数 : COMP1[], COMP2[]

出力 : なし

場所 : 個別の関数として、CapISRでタイマのリスタートの前でコール

オプション : CapISR内のタイマーのリスタートの前で、末尾に近いところに配置

SETNEXTCHANNEL 25-BUTTON EXAMPLE

機能 : 例 – 外部マルチプレクサとコンパレータ入力のチャンネルを切り替え

ハードウェア依存 : 特定のデモボードの構成

入力 : 変数 : INDEX定数 : COMP1[], COMP2[]

出力 : マルチプレクサのチャンネル選択 I/O とコンパレータ設定

場所 : 個別の関数として、CapISR でタイマのリスタートの前でコール

オプション : なし。マルチプレクサをとおしてどのように切り替えるかを表す

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 45

Page 52: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

THRESHOLD – ABSOLUTE COUNTS

機能 : ドロップインカウントの検知に使うしきい値の定義

ハードウェア依存 : なし

入力 : なし

出力 : なし

場所 : 初期化ルーチンの中で、 トリップ値 CapInitをセットしている場所が 適。しかし、そこに配置することは必須ではない。唯一の必須事項は、感知ルーチンが始まる前にセットすること

オプション : プロジェクトごとにしきい値を調整

THRESHOLD – PERCENTAGE

機能 : パーセントベース検知に使うしきい値の定義

ハードウェア依存 : なし

入力 : なし

出力 : なし

場所 : 定数

オプション : それぞれのプロジェクトに合うように必要に応じて値を変更

DS41328A_JP - ページ 46 © 2008 Microchip Technology Inc.

Page 53: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

コードモジュール

WARM-UP %

機能 : 短いウォームアップ期間の間に平均値を設定

ハードウェア依存 : なし

入力 : 変数 : FIRST, VALUE

出力 : 変数 : なし

場所 : x16 法用には、BIGVAL に変換したあと ; % 法用には、VALUE をパーセンテージ変化に変換する前

オプション : なし

WARM-UP 16

機能 : 短いウォームアップ期間の間に平均値を設定

ハードウェア依存 : なし

入力 : 変数 : FIRST, BIGVAL

出力 : 変数 : なし

場所 : x16 法用には、BIGVAL に変換したあと ; % 法用には、VALUE をパーセンテージ変化に変換する前

オプション : なし

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 47

Page 54: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

mTouchTM ユーザーズガイド

ノート :

DS41328A_JP - ページ 48 © 2008 Microchip Technology Inc.

Page 55: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

© 2008 Microchip Technology Inc. DS41328A_JP - ページ 49

mTouch™ User’s Guide

ノート :

Page 56: ユーザーズガイドww1.microchip.com/downloads/en/DeviceDoc/DS41328A_JP_m...© 2008 Microchip Technology Inc. DS41328A_JP mTouch ユーザーズガイド ご注意:この日本語版ドキュメントは、参考資料としてご使用の

DS41328A_JP - ページ 50 © 2008 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277テクニカルサポート : http://support.microchip.comウェブアドレス : www.microchip.comアトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455ボストンWestborough, MATel: 774-760-0087 Fax: 774-760-0088シカゴItasca, ILTel: 630-285-0071 Fax: 630-285-0075ダラスAddison, TXTel: 972-818-7423 Fax: 972-818-2924デトロイトFarmington Hills, MITel: 248-538-2250Fax: 248-538-2260ココモKokomo, INTel: 765-864-8360Fax: 765-864-8387ロサンゼルスMission Viejo, CATel: 949-462-9523 Fax: 949-462-9608サンタクララSanta Clara, CATel: 408-961-6444Fax: 408-961-6445トロントMississauga, Ontario,CanadaTel: 905-673-0699 Fax: 905-673-6509

アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2401-1200Fax: 852-2401-3431オーストラリア - シドニー

Tel: 61-2-9868-6733Fax: 61-2-9868-6755中国 - 北京

Tel: 86-10-8528-2100 Fax: 86-10-8528-2104中国 - 成都

Tel: 86-28-8665-5511Fax: 86-28-8665-7889中国 - 香港 SARTel: 852-2401-1200 Fax: 852-2401-3431中国 - 南京

Tel: 86-25-8473-2460Fax: 86-25-8473-2470中国 - 青島

Tel: 86-532-8502-7355Fax: 86-532-8502-7205中国 - 上海

Tel: 86-21-5407-5533 Fax: 86-21-5407-5066中国 - 瀋陽

Tel: 86-24-2334-2829Fax: 86-24-2334-2393中国 - 深川

Tel: 86-755-8203-2660 Fax: 86-755-8203-1760中国 - 武漢

Tel: 86-27-5980-5300Fax: 86-27-5980-5118中国 - 厦門

Tel: 86-592-2388138 Fax: 86-592-2388130中国 - 西安

Tel: 86-29-8833-7252Fax: 86-29-8833-7256中国 - 珠海

Tel: 86-756-3210040 Fax: 86-756-3210049

アジア / 太平洋インド - バンガロール

Tel: 91-80-4182-8400 Fax: 91-80-4182-8422インド - ニューデリー

Tel: 91-11-4160-8631Fax: 91-11-4160-8632インド - プネ

Tel: 91-20-2566-1512Fax: 91-20-2566-1513日本 - 横浜

Tel: 81-45-471- 6166 Fax: 81-45-471-6122韓国 - 大邱

Tel: 82-53-744-4301Fax: 82-53-744-4302韓国 - ソウル

Tel: 82-2-554-7200Fax: 82-2-558-5932 または82-2-558-5934マレーシア - クアラルンプール

Tel: 60-3-6201-9857Fax: 60-3-6201-9859マレーシア - ペナン

Tel: 60-4-227-8870Fax: 60-4-227-4068フィリピン - マニラ

Tel: 63-2-634-9065Fax: 63-2-634-9069シンガポールTel: 65-6334-8870Fax: 65-6334-8850台湾 - 新竹

Tel: 886-3-572-9526Fax: 886-3-572-6459台湾 - 高雄

Tel: 886-7-536-4818Fax: 886-7-536-4803台湾 - 台北

Tel: 886-2-2500-6610 Fax: 886-2-2508-0102タイ - バンコク

Tel: 66-2-694-1351Fax: 66-2-694-1350

ヨーロッパオーストリア - ヴェルス

Tel: 43-7242-2244-39Fax: 43-7242-2244-393デンマーク - コペンハーゲン

Tel: 45-4450-2828 Fax: 45-4485-2829フランス - パリ

Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79ドイツ - ミュンヘン

Tel: 49-89-627-144-0 Fax: 49-89-627-144-44イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781オランダ - ドリューネン

Tel: 31-416-690399 Fax: 31-416-690340スペイン - マドリッド

Tel: 34-91-708-08-90Fax: 34-91-708-08-91英国 - ウォーキンガム

Tel: 44-118-921-5869Fax: 44-118-921-5820

世界各国での販売およびサービス

01/02/08