入力キャプチャ
15
セクション 15. 入力キャプチャ
ハイライト
本セクションには下記の主要項目を記載しています。 15.1 はじめに ... 15-2 15.2 入力キャプチャ レジスタ ... 15-4 15.3 タイマの選択 ... 15-8 15.4 入力キャプチャの有効化 ... 15-8 15.5 入力キャプチャ イベントモード ... 15-9 15.6 キャプチャ バッファ動作 ... 15-14 15.7 入力キャプチャ割り込み ... 15-15 15.8 省電力モード時の動作 ... 15-17 15.9 デバッグモード時の入力キャプチャ動作 ... 15-18 15.10 I/O ピンの制御 ... 15-18 15.11 設計のヒント ... 15-18 15.12 関連アプリケーション ノート ... 15-19 15.13 改訂履歴 ... 15-2015.1
はじめに
本書では入力キャプチャ モジュールとその動作モードについて説明します。入力キャプチャ モ ジュールは入力ピンでイベントが発生した時にタイムベースからタイマ値をキャプチャします。 タイムベースは 2 つあり、いずれか 1 つを選択できます。入力キャプチャ機能は周波数 ( 周期 ) およびパルス計測が必要なアプリケーションに役立ちます。図 15-1に、入力キャプチャ モジュー ルの概略ブロック図を示します。 入力キャプチャ モジュールは下記の動作モードを備え、それらの選択には ICxCON レジスタを 使います。 • ICx ピンの立ち下がりエッジ毎にタイマ値をキャプチャする • ICx ピンの立ち下がりエッジ毎にタイマ値をキャプチャする • ICx ピンの立ち上がりエッジ 4 回毎にタイマ値をキャプチャする • ICx ピンの立ち上がりエッジ 16 回毎にタイマ値をキャプチャする • ICx ピンの立ち上がり / 立ち下がり両方のエッジ毎にタイマ値をキャプチャする • 指定した極性のエッジでタイマ値のキャプチャを開始し、後続の全てのエッジ毎にタイマ値 をキャプチャする 入力キャプチャ モジュールは 4 段の先入れ先出し (FIFO) バッファを備えます。このため、CPU 割り込みを生成するために必要なキャプチャ イベントの回数 (1 ~ 4 回 ) をユーザ アプリケー ションで選択できます。入力キャプチャ モジュールは、デバイスのスリープまたはアイドル モード中にキャプチャ入力の立ち上がりエッジで CPU 割り込みを生成するよう設定する事も できます。 Note: ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの 補足を目的としています。本書の内容は PIC32 ファミリの一部のデバイスには対 応していません。 本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デ バイス データシート内の「入力キャプチャ」の冒頭に記載している注意書きでご 確認ください。 デバイス データシートとファミリ リファレンス マニュアルの各セクションは、マ イクロチップ社のウェブサイト (http://www.microchip.com) からダウンロードでき ます。 Note: PIC32 ファミリの各デバイスは 1 つまたは複数の入力キャプチャ モジュールを備 えます。入力キャプチャ モジュールの実装数については、各デバイスのデータシー トを参照してください。 全ての入力キャプチャ モジュールは機能的に同じです。本書内のピン、制御 / ス テータスビット、レジスタの名前に含まれる添え字「x」はタイマモジュールの番 号を表します。入力キャプチャ
15
図 15-1: 入力キャプチャ モジュールのブロック図 Prescaler 1, 4, 16 Edge Detect FIFO Control Interrupt Event Generation ICxBUF<31:16> Interrupt Timer3 Timer2 ICxCON ICM<2:0> ICM<2:0> FEDGE ICI<1:0> ICBNE ICOV ICx Input 0 1 ICxBUF<15:0>Data Space Interface
Peripheral Data Bus ICTMR
15.2
入力キャプチャ レジスタ
PIC32 が実装する各入力キャプチャ モジュールには下記の特殊機能レジスタ (SFR) が割り当て られています。 • ICXCON: 入力キャプチャX制御レジスタ(1,2,3) • ICXCON2: 入力キャプチャXバッファレジスタ 各入力キャプチャ モジュールには、割り込み制御用に下記のビットも割り当てられます。 • 割り込みイネーブル制御ビット (ICxIE) • 割り込みフラグ ステータスビット (ICxIF) • 割り込み優先度制御ビット (ICxIP) • 割り込み副優先度制御ビット (ICxIS) 表 15-1に、入力キャプチャに関連するレジスタの要約を示します。この表の後に各レジスタの 詳細な説明を記載しています。 表 15-1: 入力キャプチャ SFR の要約 アドレス オフセット レジスタ名 Bit 31/23/15/7 Bit 30/22/14/6 Bit 29/21/13/5 Bit 28/20/12/4 Bit 27/19/11/3 Bit 26/18/10/2 Bit 25/17/9/1 Bit 24/16/8/0 0x00 ICxCON(1,2,3) 31:24 — — — — — — — — 23:16 — — — — — — — — 15:8 ON FRZ SIDL — — — FEDGE C32 7:0 ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0x10 ICxBUF 31:24 ICxBUF<31:24> 23:16 ICxBUF<23:16> 15:8 ICxBUF<15:8> 7:0 ICxBUF<7:0> 凡例 : — = 未実装、「0」として読み出し、アドレス オフセット値は 16 進数で表記 Note 1: このレジスタに対応するクリアレジスタのアドレスは 0x4 バイト オフセットしています。クリアレジスタは、対応す るレジスタの名前の後に「CLR」を追加した名前を持ちます ( 例 : ICxCONCLR)。クリアレジスタの任意のビットに 「1」を書き込むと、対応するレジスタの対応するビットがクリアされます。クリアレジスタからの読み出しは無視され ます。 2: このレジスタに対応するセットレジスタのアドレスは 0x8 バイト オフセットしています。セットレジスタは、対応す るレジスタの名前の後に「SET」を追加した名前を持ちます ( 例 : ICxCONSET)。セットレジスタの任意のビットに「1」 を書き込むと、対応するレジスタの対応するビットがセットされます。セットレジスタからの読み出しは無視されます。 3: このレジスタに対応する反転レジスタのアドレスは 0xC バイト オフセットしています。反転レジスタは、対応するレ ジスタの名前の後に「INV」を追加した名前を持ちます ( 例 : ICxCONINV)。反転レジスタの任意のビットに「1」を書 き込むと、対応するレジスタの対応するビットが反転します。反転レジスタからの読み出しは無視されます。入力キャプチャ
15
レジスタ 15-1: ICXCON: 入力キャプチャX制御レジスタ(1,2,3)
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
bit 31 bit 24
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
bit 23 bit 16
R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0
ON FRZ SIDL — — — FEDGE C32
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
bit 7 bit 0 凡例 : R = 読み出し可能ビット W = 書き込み可能ビット P = 書き込み可能ビット r = 予約済みビット U = 未実装ビット n = POR 時のビット値 (「0」、「1」または x = ビットは未知 ) bit 31-16 未実装 :「0」として読み出し bit 15 ON: 入力キャプチャ モジュール イネーブルビット 1 = モジュールを有効にする 0 = モジュールを無効にしてリセットする ( クロックと割り込み生成は無効になり SFR の変更が可能 ) Note: PBCLK 分周比を 1:1 にしている場合、周辺モジュールの ON ビットをクリアした命令の 直後の SYSCLK サイクルでは、そのモジュールの SFR に対する読み / 書きをユーザ ソ フトウェアで実行しないでください。 bit 14 FRZ: デバッグモード中フリーズ制御ビット 1 = デバッグモード中にモジュールの動作をフリーズする 0 = デバッグモード中にモジュールの動作をフリーズしない Note: FRZ はデバッグ例外モード中にのみ書き込めます。通常モードでは、このビットは「0」 に固定されます。 bit 13 SIDL: アイドル時停止制御ビット 1 = CPU アイドルモード時に停止する 0 = CPU アイドルモード時も動作を続ける bit 12-10 未実装 :「0」として読み出し Note 1: このレジスタに対応するクリアレジスタ (ICxCONCLR) のアドレスは 0x4 バイト オフセットしています。 クリアレジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットがクリアされ ます。クリアレジスタからの読み出しは無視されます。 2: このレジスタに対応するセットレジスタ (ICxCONSET) のアドレスは 0x8 バイト オフセットしています。 セットレジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットがセットされ ます。セットレジスタからの読み出しは無視されます。 3: このレジスタに対応する反転レジスタ (ICxCONINV) のアドレスは 0xC バイト オフセットしています。反 転レジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットが反転します。反 転レジスタからの読み出しは無視されます。
bit 9 FEDGE: キャプチャ開始エッジ選択ビット ( モード 6 (ICM<2:0> = 110) 時にのみ使用) 1 = 最初に立ち上がりエッジをキャプチャする 0 = 最初に立ち下がりエッジをキャプチャする bit 8 C32: 32 ビットキャプチャ選択ビット 1 = 32 ビットタイマ リソースをキャプチャする 0 = 16 ビットタイマ リソースをキャプチャする
bit 7 ICTMR: タイマ選択ビット (C32 (ICxCON<8>) = 1 の場合はタイマの選択に影響しません )
0 = Timer3 をキャプチャのカウンタ源に使う 1 = Timer2 をキャプチャのカウンタ源に使う bit 6-5 ICI<1:0>: 割り込み制御ビット 11 = キャプチャ イベント 4 回毎に割り込む 10 = キャプチャ イベント 3 回毎に割り込み 01 = キャプチャ イベント 2 回毎に割り込む 00 = キャプチャ イベント毎に割り込む bit 4 ICOV: 入力キャプチャ オーバーフロー ステータスフラグ ビット ( 読み出し専用 ) 1 = 入力キャプチャ オーバーフローが発生した 0 = 入力キャプチャ オーバーフローは発生していない bit 3 ICBNE: 入力キャプチャ バッファ非エンプティ ステータスビット ( 読み出し専用 ) 1 = 入力キャプチャ バッファはエンプティではない ( 少なくとも 1 つのキャプチャ値を読み出せる ) 0 = 入力キャプチャ バッファはエンプティである bit 2-0 ICM<2:0>: 入力キャプチャモード選択ビット 111 = 割り込み専用モード ( スリープまたはアイドルモード中にのみサポート ) 110 = 単純キャプチャ イベントモード - 指定極性のエッジを先頭に後続の全てのエッジ毎 101 = プリスケール キャプチャ イベントモード – 立ち上がりエッジ 6 回毎 100 = プリスケール キャプチャ イベントモード – 立ち上がりエッジ 4 回毎 011 = 単純キャプチャ イベントモード – 立ち上がりエッジ毎 010 = 単純キャプチャ イベントモード – 立ち下がりエッジ毎 001 = エッジ検出モード - 全エッジ ( 立ち上がり / 立ち下がり両エッジ ) 毎 000 = キャプチャ無効モード レジスタ 15-1: ICXCON: 入力キャプチャX制御レジスタ(1,2,3) ( 続き ) Note 1: このレジスタに対応するクリアレジスタ (ICxCONCLR) のアドレスは 0x4 バイト オフセットしています。 クリアレジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットがクリアされ ます。クリアレジスタからの読み出しは無視されます。 2: このレジスタに対応するセットレジスタ (ICxCONSET) のアドレスは 0x8 バイト オフセットしています。 セットレジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットがセットされ ます。セットレジスタからの読み出しは無視されます。 3: このレジスタに対応する反転レジスタ (ICxCONINV) のアドレスは 0xC バイト オフセットしています。反 転レジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットが反転します。反 転レジスタからの読み出しは無視されます。
入力キャプチャ
15
レジスタ 15-2: ICXCON2: 入力キャプチャXバッファレジスタ R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 ICxBUF<31:24> bit 31 bit 24 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 ICxBUF<23:16> bit 23 bit 16 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 ICxBUF<15:8> bit 15 bit 8 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 ICxBUF<7:0> bit 7 bit 0 凡例 : R = 読み出し可能ビット W = 書き込み可能ビット P = 書き込み可能ビット r = 予約済みビット U = 未実装ビット n = POR 時のビット値 (「0」、「1」または x = ビットは未知 ) bit 31-0 ICxBUF<31:0>: バッファレジスタ ビット 入力タイマカウントの現在のキャプチャ値15.3
タイマの選択
PIC32 ファミリの各デバイスは 1 つまたは複数の入力キャプチャ モジュールを備えます。各モ ジュールのタイムベースには、2 つある 16 ビットタイマのいずれか 1 つ、または 2 つの 16 ビッ トタイマを組み合わせた 32 ビットタイマを選択できます。選択可能なタイマについては、各 デバイスのデータシートを参照してください。 16 ビ ッ ト キ ャ プ チ ャ モ ー ド の 場 合、キ ャ プ チ ャ 用 に Timer3 を 選 択 す る に は ICTMR (ICxCON<7>) を「0」に設定し、Timer2 を選択するには「1」に設定します。 32 ビット キャプチャをサポートするよう構成されている入力キャプチャ モジュールでは、 キャプチャ用に 32 ビット タイマリソースを使えます。C32 (ICxCON<8>) を「1」に設定する と、32 ビット タイマリソースをキャプチャします。32 ビット タイマリソースは、既存の 16 ビッ トタイマ入力を使ってモジュールに入力されます。図 15-2示すように、Timer2 は下位 16 ビッ トを提供し、Timer3 は上位 16 ビットを提供します。 タイマのクロックは、内部周辺モジュール用クロック源または TxCK ピンに接続した同期外部 クロック源を使って構成できます。 図 15-2: 32 ビットタイマのブロック図15.4
入力キャプチャの有効化
設定を終えた入力キャプチャ モジュールは、ON ビット (ICxCON<15>) をセットする事により 有効にします。このビットをクリアするとモジュールはリセットします。モジュールのリセッ トは下記を行います。 • オーバーフロー フラグをクリアする • FIFO をエンプティ状態にリセットする • 割り込み生成用イベントカウンタをリセットする • プリスケール カウントをリセットする レジスタの読み / 書きは ON ビット (ICxCON<15>) の状態に関係なく可能です。 FIFO Control ICxBUF<31:16> ICxBUF<15:0> ICTMR = Don’t CareC32 = 1
Timer3 Timer2
0 1 Value = 1
入力キャプチャ
15
15.5
入力キャプチャ イベントモード
ICx ピンでイベントが発生すると、入力キャプチャ モジュールは選択されているタイムベース レジスタの値をキャプチャします。入力キャプチャ モジュールは下記のモードに設定できま す。 • 単純キャプチャ イベントモード : - ICx ピンの立ち下がりエッジ毎にタイマ値をキャプチャする - ICx ピンの立ち上がりエッジ毎にタイマ値をキャプチャする - ICx ピンの立ち上がり / 立ち下がり両方のエッジ毎にタイマ値をキャプチャする ( 指定 極性のエッジでキャプチャを開始 ) • プリスケール キャプチャ イベントモード : - ICx ピンの立ち上がりエッジ 4 回毎にタイマ値をキャプチャする - ICx ピンの立ち上がりエッジ 16 回毎にタイマ値をキャプチャする • エッジ検出モード (15.5.3「エッジ検出 ( ホールセンサ ) モード」参照 ) • 割り込み専用モード (15.5.4「割り込み専用モード」参照 ) これらの入力キャプチャモードは、適切な入力キャプチャモード ビットICM<2:0>(ICxCON<2:0>) をセットする事により設定します。 入力キャプチャ モジュールを無効 (ICM<2:0> = 000) にすると、入力キャプチャ ロジックは入 力されるキャプチャエッジを無視し、キャプチャ イベントも割り込みも生成しなくなります。 モジュールを無効にしても FIFO は読み出し可能です。モジュールを他のモードに戻すと動作 が再開します。キャプチャ無効モード中にキャプチャ入力の状態が変化しても、キャプチャ無 効モード終了時にキャプチャ イベントは発生しません。15.5.1
単純キャプチャイベント モード
入力キャプチャ モジュールは、選択したモードで定義されているエッジ ( 立ち上がり、立ち下 がり、両方 ) に基づいてタイマカウント値をキャプチャします。表 15-2に、このモードの設定 を示します。単純キャプチャ イベントモードではプリスケーラを使いません。単純キャプチャ イベント モードの概略タイミング図を図 15-3、図 15-4、図 15-5に示します。 表 15-2: 入力キャプチャ モードの設定 入力キャプチャ ロジックは、キャプチャピン信号の立ち上がりまたは立ち下がりエッジを検出 し、周辺モジュール用クロックに同期してタイマの値をキャプチャします。立ち上がりまたは 立ち下がりエッジが発生すると、入力キャプチャ モジュール ロジックは現在のタイムベース 値をキャプチャ バッファに書き込み、割り込み生成ロジックに信号を送ります。 入力キャプチャ割り込みイベントは、ICI<1:0> ビット (ICxCON<6:5>) の設定に従って、キャ プチャイベント 1 ~ 4 回毎に生成されます。詳細は15.7「入力キャプチャ割り込み」を参照し てください。 キャプチャピンは周辺モジュール用クロックに基づいてサンプリングされるため、キャプチャ パルスには周辺モジュール用クロック周期よりも長い HIGH および LOW 時間が必要です。 Note: キャプチャ無効モード中もプリスケーラ ロジックは動作し続けます。 ICM<2:0> の設定 キャプチャのトリガ条件 001 立ち上がりエッジ 010 立ち下がりエッジ 110 立ち上がり / 立ち下がり両エッジ(1)Note 1: このキャプチャは FEDGE ビット (ICxCON<9>) が指定する極性のエッジで始まり
ます。
Note: キャプチャ入力は周辺モジュール用クロックに同期する必要があるため、モ
ジュールはキャプチャ イベントの 2 ~ 3 TPB ( 周辺モジュール用クロックサイク ル ) 後に有効なタイマカウント値をキャプチャします。
図 15-3 は、 単純キャプチャ モード ( 立ち上がりエッジ毎にキャプチャ : CM<2:0> ビット (ICxCON<2:0>) = 011 、イベント 4 回毎に割り込み生成 : ICI<1:0> ビット (ICxCON<6:5>) = 00) に設定した入力キャプチャ モジュールにおける 2 回のキャプチャ イベントを示しています。 最初のキャプチャ イベントはタイマ値「n」の時に発生していますが、同期遅延により、キャ プチャ バッファにはタイマ値「n + 2」が格納されます。2 回目のキャプチャ イベントはタイ マ値「m」の時に発生しています。この場合、同期遅延に加えて伝播遅延が生じ、キャプチャ バッファには「m + 3」が格納される事に注意してください。割り込みイベントは毎回のキャ プチャ イベントで生成されます。 図 15-3: 単純キャプチャ イベントのタイミング図 ( 立ち上がりエッジ毎にキャプチャ ) 図 15-4 は、 単純キャプチャ モード ( 立ち下がりエッジ毎にキャプチャ : CM<2:0> ビット (ICxCON<2:0>) = 010 、イベント毎に割り込み生成 : ICI<1:0> ビット (ICxCON<6:5>) = 00 ) に 設定した入力キャプチャ モジュールにおける 1 回のキャプチャ イベントを示しています。こ の例では、タイマ周波数を周辺モジュール用クロック周波数よりも低くしています。 タイマ値「n」の時にキャプチャ イベントが発生すると、キャプチャ バッファには値「n」が 格納され、割り込みイベントが生成されます。 図 15-4: 単純キャプチャ イベントのタイミング図 ( 立ち下がりエッジ毎にキャプチャ ) n n + 1 n + 2 m m + 1 m + 2 m + 3 m + 4 m + 5 n + 2 m + 3 Peripheral Clock Timer Count ICx Input Capture Data Capture Interrupt(1) Note 1: このキャプチャ イベントフラグはユーザ ソフトウェアでクリアする必要があります。 n n + 1 n Peripheral Clock Timer Count ICx Input Capture Data Capture Interrupt(1) Note 1: このキャプチャ イベントフラグはユーザ ソフトウェアでクリアする必要があります。
入力キャプチャ
15
図 15-5 は、 単純キャプチャ モード ( 立ち上がりエッジ毎にキャプチャ : ICM<2:0> ビット (ICxCON<2:0>) = 110 、立ち下がりエッジでキャプチャ開始: FEDGEビット(ICxCON<9>) = 0 、 イベント 2 回毎に割り込み生成 : ICI<1:0> ビット (ICxCON<6:5>) = 01 ) に設定した入力キャプ チャ モジュールにおける 2 回のキャプチャ イベントを示しています。 最初の立ち下がりエッジはタイマ値「n」の時に発生し、キャプチャ バッファには値「n + 2」 が格納されます。次の立ち上がりエッジはタイマ値「m」の時に発生し、キャプチャ バッファ には値「m + 2」が格納され、割り込みが生成されます。 図 15-5: 単純キャプチャ イベントのタイミング図 ( 全エッジ毎にキャプチャ、立ち下がりエッジで開始 )15.5.2
プリスケール キャプチャイベント モード
プリスケール キャプチャイベント モードの場合、入力キャプチャ モジュールは立ち上がり エッジ 4 回毎または 16 回毎にキャプチャ イベントをトリガします。表 15-3に、プリスケール キャプチャイベント モードの設定を示します。 表 15-3: プリスケール キャプチャイベント モードの設定 プリスケーラ キャプチャ カウンタは、キャプチャ入力の立ち上がりエッジ毎にインクリメン トします。モードの選択に応じ、プリスケーラ カウンタの値が 4 または 16 に一致すると、カ ウンタは「有効な」キャプチャイベント信号を出力します。有効なキャプチャ イベント信号は 周辺モジュール用クロックに同期され、同期後のキャプチャ イベント信号がタイマカウント キャプチャをトリガします。 入力キャプチャ割り込みは、ICI<1:0> ビット (ICxCON<6:5>) の設定に従って、キャプチャイ ベント 1 ~ 4 回毎に生成されます。詳細は15.7「入力キャプチャ割り込み」を参照してください。 n n + 1 n + 2 m m + 1 m + 2 m + 3 m + 4 n + 2 m + 2 Peripheral Clock Timer Count ICx Input Capture Data Capture Interrupts(1) Note 1: このキャプチャ イベントフラグはユーザ ソフトウェアでクリアする必要があります。 ICM<2:0> の設定 トリガ 1 回あたりの立ち上がりエッジ数 100 4 101 16 Note: キャプチャ入力は周辺モジュール用クロックに同期する必要があるため、モ ジュールはキャプチャ イベントの 2 ~ 3 TPB ( 周辺モジュール用クロックサイク ル ) 後に有効なタイマカウント値をキャプチャします。 Note: プリスケーラ キャプチャイベント モードへ切り換える前に、ユーザ ソフトウェア でキャプチャ モジュールを無効にする (ON ビット ICxCON<15> をクリアする ) 事 を推奨します。他の動作モードから直接プリスケーラ キャプチャイベント モード に切り変えた場合、プリスケーラはリセットされず、不用意なキャプチャ イベン トが発生する可能性があります。プリスケーラ カウンタは下記のイベント発生時にクリアされます。 • 入力キャプチャ モジュールの無効化 (ON = 0 (ICxCON<15>)) • 入力キャプチャ モジュールのリセット キャプチャピンは内部フリップフロップをトリガするため、入力キャプチャパルスの HIGH お よび LOW 時間は周辺モジュール用クロック周期に制限されません。入力キャプチャの電気的 仕様の詳細は、各デバイス データシート内の「電気的特性」を参照してください。 図 15-6に、プリスケーラ キャプチャ イベントモード時の入力キャプチャ モジュールにおける キャプチャ イベントを示します。プリスケーラは、キャプチャ入力の立ち上がりエッジ 4 回毎 にタイマ値をキャプチャし (ICM<2:0> ビット (ICxCON<2:0>) = 100)、キャプチャ イベント毎 に割り込みを生成する (ICI<1:0> ビット (ICxCON<6:5>) = 00 ) よう設定されています。タイマ 値「n」でキャプチャ入力の 4 回目の立ち上がりエッジが発生し、プリスケーラ出力が同期さ れます。同期遅延により、キャプチャ バッファにはタイマ値「n + 2」が格納されます。また、 キャプチャ イベントによる割り込み信号が生成されます。 図 15-6: プリスケーラ キャプチャイベントのタイミング図
15.5.3
エッジ検出 ( ホールセンサ ) モード
エッジ検出モードの場合、入力キャプチャ モジュールはキャプチャ入力の全てのエッジ ( 立ち 上がり / 立ち下がり両エッジ ) 毎にタイマカウント値をキャプチャします。エッジ検出モード を選択するには、ICM<2:0> ビット (ICxCON<2:0>) を「001」に設定します。このモードはキャ プチャ プリスケーラを使わず、入力キャプチャ オーバーフロー ビット ICOV (ICxCON<4>) を 更新しません。また、割り込み制御ビット ICI<1:0> (ICxCON<6:5>) を無視し、タイマカウン トをキャプチャするたびに割り込みイベントを生成します。概略タイミング図を図 15-7に示し ます。 単純キャプチャ イベントモードと同様に、入力キャプチャ ロジックはキャプチャ入力信号の 立ち上がりエッジと立ち下がりエッジを検出し、周辺モジュール用クロックに同期してタイマ 値をキャプチャします。立ち上がりまたは立ち下がりエッジが発生すると、入力キャプチャ モ ジュールはキャプチャ バッファにタイムベース値を書き込みます。 キャプチャピンは周辺モジュール用クロックに基づいてサンプリングされるため、キャプチャ n n + 1 n + 2 n + 3 n + 4 1 2 3 4 n + 2 Tpb Peripheral Clock Timer Count Capture Input Prescaler Count Prescaler Output Capture Data Capture Interrupt(1) Note 1: このキャプチャ イベントフラグはユーザ ソフトウェアでクリアする必要があります。 Note: キャプチャ入力は周辺モジュール用クロックに同期する必要があるため、モ ジュールはキャプチャ イベントの 2 ~ 3 TPB ( 周辺モジュール用クロックサイク ル ) 後に有効なタイマカウント値をキャプチャします。入力キャプチャ
15
図 15-7に、エッジ検出モード (ICM<2:0> = 001 (ICxCON<2:0)) 時の入力キャプチャ モジュー ルにおける 3 回のキャプチャ イベントを示します。キャプチャ入力の状態遷移はタイマ値「n」、 「n + 2」、「n + 4」で発生していますが、同期および伝播遅延により、キャプチャ バッファには タイマ値「n + 2」、「n + 4」、「n + 6」が格納されます。また、データ キャプチャ イベントのた びに割り込み信号が生成されます。 図 15-7: エッジ検出キャプチャ イベントのタイミング図15.5.4
割り込み専用モード
割り込み専用モードはデバイス動作時には機能せず、スリープまたはアイドル中にのみ動作し ます。入力キャプチャ モジュールを割り込み専用モード (ICM<2:0> = 111) に設定すると、入 力キャプチャ モジュールはスリープまたはアイドルモード時に割り込みピンとして機能しま す。入力キャプチャの立ち上がりエッジで割り込みがトリガされ、デバイスは復帰します。タ イマ値はキャプチャされず、FIFO バッファも更新されません。 タイマ値はキャプチャされないため、タイマ選択ビット ICTMR (ICxCON<7>) は無視されます。 従ってタイマ源を設定する必要はありません。復帰割り込みは最初の立ち上がりエッジで生成 されるため、このモードではプリスケーラを使いません。従って ICI<1:0> ビット (ICxCON<6:5>) は無視されます。デバイスがスリープまたはアイドルモードを終了すると、割り込み信号は無 効になります。このモードは、もっぱら外部復帰要因としてのみ使います。 キャプチャピンは内部フリップフロップをトリガするため、入力キャプチャパルスの HIGH お よび LOW 時間は周辺モジュール用クロック周期に制限されません。入力キャプチャの詳細な 電気的仕様については、各デバイス データシート内の「電気的特性」を参照してください。 Note 1: このキャプチャ イベントフラグはユーザ ソフトウェアでクリアする必要があります。 2: PIC32MX3XX と PIC32MX4XX では、割り込み 3 をクリアするだけで割り込み 1 および 2 もクリアされま す。その他の PIC32 デバイスの場合、各割り込みは永続的であるため、ネスティングされている最大深さ の割り込みまで別々にクリアする必要があります。15.6
キャプチャ バッファ動作
各入力キャプチャ モジュールは個別の 4 段 FIFO バッファを備えます。ユーザ アプリケーショ ンはバッファレジスタ (ICxBUF) を介してバッファにアクセスできます。ICxBUF は入力キャプ チャ ロジックにより書き込まれ、ユーザ アプリケーションのみが読み出せます。ICxBUF への 書き込みは無視されます。 FIFO バッファの状態は下記の 2 つのステータスフラグにより示されます。 • ICBNE (ICxCON<3>) – 入力キャプチャ バッファ非エンプティ • ICOV (ICxCON<4>) – 入力キャプチャ オーバーフロー 入力キャプチャ モジュールを無効化 / リセット (ON ビット (ICxCON<15>) = 0) するとステー タスフラグはクリアされ、バッファはエンプティ状態にクリアされます。 ICBNE フラグは最初の入力キャプチャ イベントでセットされ、FIFO から全てのキャプチャ イ ベントが読み出されるまでセットされたままになります。例えばキャプチャ イベントが 3 回発 生した場合、ICBNE フラグをクリアするにはキャプチャ FIFO バッファを 3 回読み出す必要が あります。キャプチャ イベントが 4 回発生した場合は 4 回読み出す必要があります。 FIFO バッファを読み出すたびに読み出しポインタが調整され、残りのエントリは FIFO 内で次 に利用可能な先頭位置に向かって移動します。32 ビット キャプチャモードで 16 ビットずつ読 み出す場合、上位 16 ビットを最後に読み出す必要があります。FIFO 読み出しポインタは最上 位バイト (MSB) の読み出し時に進みます。 4 回のキャプチャ イベントが発生して FIFO バッファがフル状態である場合、FIFO バッファを 読み出す前に 5 回目のキャプチャ イベントが発生するとオーバーフロー条件が発生し、ICOV ビット (ICxCON<4>) が論理「1」にセットされます。5 回目のキャプチャ イベントは書き込ま れず、割り込みキャプチャエラー割り込みが生成されます。後続のキャプチャ イベントが発生 しても、オーバーフロー条件をクリアするまで FIFO の内容は変更されません。 オーバーフロー条件は下記のいずれかの方法によりクリアされます。 • モジュールを無効にする (ON ビット (ICxCON<15>) = 0) • ICBNE ビット (ICxCON<3>) = 0 になるまでキャプチャ バッファを読み出す • デバイスをリセットする 入力キャプチャ モジュールを無効にした後ある時点で再度有効にした場合、FIFO バッファの 内容は不確定であり、読み出し結果は予測できません。 キャプチャ イベントを一度も受け取っていない状態で FIFO を読み出した場合の結果も予測で きません。Note: 一部の PIC32 マイクロコントローラは ICxE 割り込みをサポートしません。詳細
は各デバイスのデータシートを参照してください。
Note: ICI<1:0> = 00 または ICM<2:0> = 001 に設定した場合、バッファ オーバーフロー
入力キャプチャ
15
15.7
入力キャプチャ割り込み
入力キャプチャ モジュールは、キャプチャ イベントが指定回数発生する毎に割り込みイベン ト信号を生成できます。キャプチャ イベントとは「FIFO へのタイマ値の書き込み」として定 義されます。割り込みイベントをトリガするために必要なキャプチャ イベントの回数は、 ICI<1:0> 制御ビット (ICxCON<6:5>) で設定します。ICBNE ビット (ICxCON<3>) が「0」にク リアされると、割り込み用イベントカウントもクリアされます。これにより、割り込み用イベ ントカウントを FIFO 内の実際のエントリ数に一致させる事ができます。 例として ICI<1:0> = 01 ( キャプチャ イベント 2 回毎に割り込む ) の場合、下記のようなシーケ ンスが考えられます。 1. モジュールを有効にする : 割り込み用イベントカウント = 0 2. キャプチャ イベント : FIFO 内に 1 つのエントリ、割り込み用イベントカウント = 1 3. FIFO を読み出す : FIFO はエンプティ、割り込み用イベントカウント = 0 4. キャプチャ イベント : FIFO 内に 1 つのエントリ、割り込み用イベントカウント = 1 5. キャプチャ イベント : FIFO 内に 2 つのエントリ、割り込み用イベントカウント = 2 6. 割り込みを生成 : 割り込み用イベントカント = 0 7. キャプチャ イベント : FIFO 内に 3 つのエントリ、割り込み用イベントカウント = 1 8. FIFO 内の 3 つのエントリを読み出す : FIFO はエンプティ、割り込み用イベントカウント = 0 9. キャプチャ イベント : FIFO 内に 1 つのエントリ、割り込み用イベントカウント = 1 10. FIFO を読み出す :FIFO はエンプティ、割り込み用イベントカウント = 0 「最初のキャプチャ イベント」とは、OFF モードからモード変更した後または ICBNE が「0」 にクリアされた後最初に発生するキャプチャ イベントとして定義します。 ICI<1:0> が「00」以外または ICM<2:0> が「001」以外である場合、オーバーフローが発生す ると入力キャプチャ モジュールは入力キャプチャ イベントの生成を止め、かわりに入力キャ プチャエラー イベントを生成します。この割り込みはオーバーフロー条件がクリアされるまで 持続します ( オーバーフロー条件のクリア方法については15.6「キャプチャ バッファ動作」を 参照してください )。 アプリケーションによっては、デバイスに対して指示を出すために、入力キャプチャピンを補 助的な外部割り込み要因として使う事がしばしばあります。ICI<1:0> = 00またはICM<2:0> = 001 の場合、割り込みイベントは FIFO のオーバーフローに関係なく発生します。オーバーフロー が発生しても後続の割り込みイベントは抑止されないため、キャプチャバッファに対してダ ミー読み出しを実行してイベントをクリアする ( オーバーフローを防ぐ ) 必要はありません。こ の場合も、ICOV フラグ (ICxCON<4>) はオーバーフロー条件が発生するとセットされたままに なります。 図 15-8に、立ち上がりエッジ毎にタイマ値をキャプチャし (ICM<2:0> = 011)、キャプチャ 4 回 毎に割り込み生成する (ICI<1:0> = 11) よう設定した入力キャプチャ モジュールにおける 5 回の キャプチャ イベントを示します。4 回目のキャプチャはタイマ値「n + 8」をキャプチャし、割 り込みイベントをトリガしている事に注意してください。図 15-8: 割り込みイベント (ICXCON.ICM<2:0> = 011、ICXCON.ICI<1:0> = 11)
Note: 一部の PIC32 マイクロコントローラは ICxE 割り込みをサポートしません。詳細
は各デバイスのデータシートを参照してください。 n + 1 n + 2 n + 3 n + 4 n + 5 n + 6 n + 7 n + 8 n + 9 n + 10 n + 11 n + 2 n + 4 n + 6 n + 8 n + 10 Peripheral Clock Timer Count Capture Input Capture Data Capture Interrupt(1)
15.7.1
割り込み制御ビット
各入力キャプチャ モジュールには割り込みステータス フラグビット (ICxIF)、割り込みエラー ステータスビット (ICxE)、割り込みイネーブルビット (ICxIE)、割り込み優先度制御ビット (ICxIP)、割り込み副優先度制御ビット (ICxIS) が割り当てられています。周辺モジュール割り 込みの詳細はセクション 8.「割り込み」(DS61108) 内の 8.2「制御レジスタ」を参照してください。15.7.2
割り込みの永続性
入力キャプチャ割り込みは、割り込みを発生させた条件をクリアしない限り持続します。加え て、その条件をクリアしない限り、割り込みは即座に再発生します。表 15-4に、割り込みの生 成条件と持続条件の一覧を示します。 表 15-4: 割り込みの持続条件Note: 一部の PIC32 マイクロコントローラは ICxE 割り込みまたは永続的割り込みをサ
ポートしません。詳細は各デバイスのデータシートを参照してください。 ICxCON 生成条件 持続条件 ICI<1:0> = 11 キャプチャ イベント 4 回毎に割 り込む FIFO 内のエントリ数が 4 であれ ば割り込みはアクティブ ICI<1:0> = 10 キャプチャ イベント 3 回毎に割 り込む FIFO 内のエントリ数が 3 であれ ば割り込みはアクティブ ICI<1:0> = 01 キャプチャ イベント 2 回毎に割 り込む FIFO 内のエントリ数が 2 であれ ば割り込みはアクティブ ICI<1:0> = 00 または エッジ検出モード (ICxCON レジスタ (レジ スタ 15-1) 内の ICM<2:0> ビット参照 ) キャプチャ イベント毎に割り込 む FIFO 内のエントリ数が 1 であれ ば割り込みはアクティブ ICOV = 1 FIFO がフル状態で次のキャプ チャ イベントが発生すると割り 込む エラー条件フラグ(ICxCON.ICOV) がクリアされるまで割り込みは アクティブ
入力キャプチャ
15
15.8
省電力モード時の動作
15.8.1
スリープモード時の入力キャプチャ動作
デバイスがスリープモードに移行すると周辺モジュール用クロックは停止します。スリープ モードでは、入力キャプチャ モジュールは外部割り込み要因としてのみ機能できます。この モード ( 割り込み専用モード ) は、ICM<2:0> 制御ビット (ICxCON<2:0>) を「111」に設定す ると有効になります。このモードでは、キャプチャピンの立ち上がりエッジでデバイスがスリー プから復帰します。対応するモジュール割り込みイネーブルビットがセットされており、かつ モジュールの優先度が必要な条件を満たしていれば割り込みが生成されます。詳細は 15.5.4 「割り込み専用モード」を参照してください。 入力キャプチャ モジュールを ICM<2:0> = 111 以外のモードに設定した状態でデバイスがス リープモードに移行した場合、外部ピンで立ち上がりまたは立ち下がりエッジが発生しても、 スリープからの復帰は発生しません。15.8.2
アイドルモード時の入力キャプチャ動作
デバイスがアイドルモードに移行しても周辺モジュール用クロック源は動作し続けますが、 CPU はコード実行を停止します。アイドル時停止制御ビット SIDL (ICxCON<13>) により、ア イドルモード時にモジュールが停止するのか動作を継続するのかが決まります。 SIDL = 0 に設定するとモジュールはアイドルモード中も動作し続けます。割り込み専用モード (ICM<2:0> = 111) は、SIDL = 0 であればアイドルモード中に割り込みを生成できます。この モードはプロセッサの動作中に割り込みを生成しません。詳細は15.5.4「割り込み専用モード」 を参照してください。 SIDL = 1 に設定した場合、デバイスがアイドルモードに移行するとモジュールは停止します。 この場合、モジュールはスリープモード時と同様に機能します。詳細は15.5.4「割り込み専用 モード」を参照してください。15.8.3
スリープまたはアイドルモードからのデバイスの復帰
割り込み専用モードを有効にしている場合、スリープまたはアイドルモード中の入力キャプ チャ イベントはデバイス復帰または割り込み ( 有効な場合 ) を生成できます。詳細は15.5.4「割 り込み専用モード」を参照してください。15.9
デバッグモード時の入力キャプチャ動作
FRZ ビット (ICxCON<14>) により、デバッグモードで CPU がデバッグ例外コードを実行して いる時 ( アプリケーションは停止 ) に入力キャプチャ モジュールが動作するかどうかが決まり ます。 FRZ を「0」に設定した場合、デバッグモード時にアプリケーションが停止しても入力キャプ チャ モジュールは動作し続けます。FRZ を「1」に設定した場合、デバッグモード時にアプリ ケーションが停止すると入力キャプチャ モジュールは動作をフリーズします ( モジュールの現 在の状態を一切変更しません )。CPU が実行を再開するとモジュールも動作を再開します。15.9.1
フリーズ時 (FRZ = 1) のキャプチャ動作
フリーズ中のキャプチャ動作はモジュールに対する変更を生じません。エッジ検出ロジックは、 フリーズ中に発生した状態遷移がフリーズ終了後不用意に検出されてしまう事を防ぎます。 フリーズ中にエミュレータは入力キャプチャ FIFO を読み出せますが、ユーザ アプリケーショ ンから見た FIFO ステータスフラグは変わりません。15.10
I/O ピンの制御
入力キャプチャ モジュールを有効にする際、I/O ピンの入出力方向が対応する TRIS ビットで 「入力」に設定されている事をユーザ アプリケーションで確認する必要があります。入力キャ プチャ モジュールを有効にしただけではピンの方向は設定されません。さらに、その入力ピン に多重化されている他の周辺モジュールは全て無効にする必要があります。15.11
設計のヒント
質問 1: 入力キャプチャ モジュールを使ってデバイスをスリープモードから復帰できま すか。 回答 : はい、できます。入力キャプチャ モジュールの ICM<2:0> ビット (ICxCON<2:0>) を「111」に設定し、対応するモジュール割り込みイネーブルビットをセット する (ICIE = 1) と、キャプチャピンの立ち上がりエッジでデバイスをスリープ から復帰させる事ができます。詳細は 15.5.4「割り込み専用モード」を参照し てください。 Note: FRZ ビットは、CPU がデバッグ例外モードで実行中である時にのみ読み書き可能 です。他のモードでは、FRZ は「0」として読み出されます。デバッグモード中に FRZ ビットを変更しても、現在実行中のデバッグ例外モードには影響しません。新 しい設定は、現在のデバッグモードを終了した後に再度デバッグモードに移行す るまで効力を持ちません。デバッグ例外モード中、デバッグモードに移行した時、 FRZ ビットはモジュールの状態を読み出します。 Note: プリスケーラ ロジックはデバッグモード中もフリーズしません。入力キャプチャ
15
15.12
関連アプリケーション ノート
本セクションに関連するアプリケーション ノートの一覧を次に示します。一部のアプリケー ション ノートは PIC32 デバイスファミリ向けではありません。ただし、概念は共通しており、 変更が必要であったり制限事項が存在するものの利用が可能です。入力キャプチャ モジュール に関連する最新のアプリケーション ノートは以下の通りです。 タイトル アプリケーション ノート番号 CCP モジュールの使用 AN594 超音波距離計測の実装 AN597 Note: PIC32 ファミリデバイス関連のアプリケーション ノートとサンプルコードはマイ クロチップ社のウェブサイト (www.microchip.com) でご覧になれます。15.13
改訂履歴
リビジョン A (2007 年 10 月 )
本書の初版リビジョン B (2007 年 10 月 )
機密扱いのステータスを解除して内容を更新リビジョン C (2008 年 4 月 )
ステータスを「Preliminary」に改訂、U-0 を r-x に改訂、ビット名から「x」を削除リビジョン D (2008 年 6 月 )
レジスタ 5-1/15-3/15-4/15-5/15-6/15-7/15-8/15-9 の Note を改訂、予約済みビットを「Maintain as」から「Write」に変更、ON ビット (ICxCON レジスタ ) に Note を追加リビジョン E (2009 年 10 月 )
このリビジョンでの変更内容は以下の通りです。 • 文章および体裁の変更等、本書全体の細部を修正 • 下記の図を更新 : - 単純キャプチャ イベントのタイミング図(立ち上がりエッジ毎にキャプチャ) (図15-3) - 単純キャプチャ イベントのタイミング図(立ち下がりエッジ毎にキャプチャ) (図15-4) - 単純キャプチャ イベントのタイミング図 ( 全エッジ毎にキャプチャ、立ち下がりエッ ジで開始 ) (図 15-5) - プリスケーラ キャプチャイベントのタイミング図 (図 15-6) - エッジ検出キャプチャ イベントのタイミング図 (図 15-7)- 割り込みイベント (ICXCON.ICM<2:0> = 011、ICXCON.ICI<1:0> = 11) (図 15-8) • 15.1「はじめに」の網掛け注釈を更新 • 15.2「入力キャプチャ レジスタ」の網掛け注釈を削除 • 割り込みレジスタの要約 (表 15-1) を下記のように更新 : - クリア、セット、反転レジスタに関する全ての記述を削除 - 「アドレス オフセット」列を追加 - クリア、セット、反転レジスタに関する Note 1、2、3 を追加 • ICxCONレジスタ(レジスタ15-1)に、クリア/セット/反転レジスタに関するNote1、2、3を追加 • IFS0、IEC0、IPC1、IPC2、IPC3、IPC4、IPC5 レジスタを削除 • ICxCON: 入力キャプチャ x 制御レジスタ (レジスタ 15-1) 内の ICM<2:0> = 111 のビット定 義を更新 • 15.3「タイマの選択」の第 1 段落を更新し、タイムベース用に使うタイマの形成方法につい て明確化 • 15.5.1「単純キャプチャイベント モード」の第 1 段落の内容を削除し、表 15-2に記載 • 15.5.2「プリスケール キャプチャイベント モード」の第 1 段落の内容を削除し、表 15-3に記載 • 15.5.4「割り込み専用モード」の 3 つの段落全てを更新 • 15.6「キャプチャ バッファ動作」に網掛け注釈を追加し、第 6 段落を更新 • 15.7「入力キャプチャ割り込み」内のキャプチャ イベント シーケンスを更新 • 15.7.1「割り込み制御ビット」に割り込みエラー ステータスビット(ICxE)に関する記述を追加 • 15.7.2「割り込みの永続性」を追加 • 15.8.2「アイドルモード時の入力キャプチャ動作」の第 2 段落を更新して割り込み専用モー ド時の動作を明確化
入力キャプチャ
15
リビジョン E (2009 年 10 月 ) ( 続き )
• 15.8.3「スリープまたはアイドルモードからのデバイスの復帰」を更新して割り込み専用モー ド時の動作を明確化 • 15.9.1「フリーズ時 (FRZ = 1) のキャプチャ動作」の第 1 段落を更新し、第 2 段落を削除 • 15.9.2「デバッグモード時のキャプチャ バッファの動作」を削除リビジョン F (2010 年 11 月 )
このリビジョンでの変更内容は以下の通りです。 • 表現および体裁の変更等、本書全体の細部を修正 • ビット名「ICFEDGE」を「FEDGE」に変更 • ビット名「ICC32」を「C32」に変更 • 15.6「キャプチャ バッファ動作」の箇条書きの下に割り込みに関する新しい注釈ボックスを 追加本書に記載されているデバイス アプリケーション等に関する 情報は、ユーザの便宜のためにのみ提供されているものであ り、更新によって無効とされる事があります。お客様のアプ リケーションが仕様を満たす事を保証する責任は、お客様に あります。マイクロチップ社は、明示的、暗黙的、書面、口 頭、法定のいずれであるかを問わず、本書に記載されている 情報に関して、状態、品質、性能、商品性、特定目的への適 合性をはじめとする、いかなる類の表明も保証も行いません。 マイクロチップ社は、本書の情報およびその使用に起因する 一切の責任を否認します。マイクロチップ社の明示的な書面 による承認なしに、生命維持装置あるいは生命安全用途にマ イクロチップ社の製品を使用する事は全て購入者のリスクと し、また購入者はこれによって発生したあらゆる損害、クレー ム、訴訟、費用に関して、マイクロチップ社は擁護され、免 責され、損害をうけない事に同意するものとします。暗黙的 あるいは明示的を問わず、マイクロチップ社が知的財産権を 保有しているライセンスは一切譲渡されません。 商標 マイクロチップ社の名称とMicrochipロゴ、dsPIC、FlashFlex、 KEELOQ、KEELOQロゴ、MPLAB、PIC、PICmicro、PICSTART、
PIC32ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、 米国およびその他の国におけるマイクロチップ・テクノロ ジー社の登録商標です。
FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、 MTP、SEEVAL、Embedded Control Solutions Company は、 米国におけるマイクロチップ・テクノロジー社の登録商標で す。
Silicon Storage Technology は、その他の国におけるマイクロ チップ・テクノロジー社の登録商標です。
Analog-for-the-Digital Age、Application Maestro、BodyCom、 chipKIT、chipKIT ロ ゴ、CodeGuard、dsPICDEM、 d s P I C D E M . n e t 、d s P I C w o r k s 、d s S P E A K 、E C A N 、 ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB 認 証ロ ゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、PICDEM.net、PICkit、 PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、WiperLock、 ZENA、Z-Scale は、米国およびその他の国におけるマイクロ チップ・テクノロジー社の登録商標です。
SQTP は、米国におけるマイクロチップ・テクノロジー社の サービスマークです。
GestICとULPPは、その他の国におけるMicrochip Technology Germany II GmbH & Co. & KG ( マイクロチップ・テクノロ ジー社の子会社 ) の登録商標です。
その他、本書に記載されている商標は各社に帰属します。 ©2012, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.
ISBN: 978-1-62076-563-0 • マイクロチップ社では、通常の条件ならびに仕様に従って使用した場合、マイクロチップ社製品のセキュリティ レベルは、現 在市場に流通している同種製品の中でも最も高度であると考えています。 • しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、 マイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります。このような行 為は知的所有権の侵害に該当する可能性が非常に高いと言えます。 • マイクロチップ社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。 • マイクロチップ社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コー ド保護機能とは、マイクロチップ社が製品を「解読不能」として保証するものではありません。 コード保護機能は常に進歩しています。マイクロチップ社では、常に製品のコード保護機能の改善に取り組んでいます。マイクロ チップ社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはそ の他の著作物に不正なアクセスを受けた場合は、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利が マイクロチップ社では、Chandler および Tempe ( アリゾナ州 )、 Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そし て カ リ フ ォ ル ニ ア 州 と イ ン ド の デ ザ イ ン セ ン タ ー が ISO/TS-16949:2009 認証を取得しています。マイクロチップ社の品質システ ム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ®
コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェ ラル、不揮発性メモリ、アナログ製品に採用されています。さらに、
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
北米 本社 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel:480-792-7200 Fax:480-792-7277 技術サポート : http://www.microchip.com/ support URL: www.microchip.com アトランタ Duluth, GA Tel:678-957-9614 Fax:678-957-1455 ボストン Westborough, MA Tel:774-760-0087 Fax:774-760-0088 シカゴ Itasca, IL Tel:630-285-0071 Fax:630-285-0075 クリーブランド Independence, OH Tel:216-447-0464 Fax:216-447-0643 ダラス Addison, TX Tel:972-818-7423 Fax:972-818-2924 デトロイト Farmington Hills, MI Tel:248-538-2250 Fax:248-538-2260 インディアナポリス Noblesville, IN Tel:317-773-8323 Fax:317-773-5453 ロサンゼルス Mission Viejo, CA Tel:949-462-9523 Fax:949-462-9608 サンタクララ Santa Clara, CA Tel:408-961-6444 Fax:408-961-6445 トロント Mississauga, Ontario, Canada アジア / 太平洋 アジア太平洋支社 Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel:852-2401-1200 Fax:852-2401-3431 オーストラリア - シドニー Tel:61-2-9868-6733 Fax:61-2-9868-6755 中国 - 北京 Tel:86-10-8569-7000 Fax:86-10-8528-2104 中国 - 成都 Tel:86-28-8665-5511 Fax:86-28-8665-7889 中国 - 重慶 Tel:86-23-8980-9588 Fax:86-23-8980-9500 中国 - 杭州 Tel:86-571-2819-3187 Fax:86-571-2819-3189 中国 - 香港 SAR Tel:852-2943-5100 Fax:852-2401-3431 中国 - 南京 Tel:86-25-8473-2460 Fax:86-25-8473-2470 中国 - 青島 Tel:86-532-8502-7355 Fax:86-532-8502-7205 中国 - 上海 Tel:86-21-5407-5533 Fax:86-21-5407-5066 中国 - 瀋陽 Tel:86-24-2334-2829 Fax:86-24-2334-2393 中国 - 深圳 Tel:86-755-8864-2200 Fax:86-755-8203-1760 中国 - 武漢 Tel:86-27-5980-5300 Fax:86-27-5980-5118 中国 - 西安 Tel:86-29-8833-7252 Fax:86-29-8833-7256 中国 - 厦門 Tel:86-592-2388138 アジア / 太平洋 インド - バンガロール Tel:91-80-3090-4444 Fax:91-80-3090-4123 インド - ニューデリー Tel:91-11-4160-8631 Fax:91-11-4160-8632 インド - プネ Tel:91-20-2566-1512 Fax:91-20-2566-1513 日本 - 大阪 Tel:81-6-6152-7160 Fax:81-6-6152-9310 日本 - 東京 Tel:81-3-6880- 3770 Fax:81-3-6880-3771 韓国 - 大邱 Tel:82-53-744-4301 Fax:82-53-744-4302 韓国 - ソウル Tel:82-2-554-7200 Fax:82-2-558-5932 または 82-2-558-5934 マレーシア - クアラルンプー ル Tel:60-3-6201-9857 Fax:60-3-6201-9859 マレーシア - ペナン Tel:60-4-227-8870 Fax:60-4-227-4068 フィリピン - マニラ Tel:63-2-634-9065 Fax:63-2-634-9069 シンガポール Tel:65-6334-8870 Fax:65-6334-8850 台湾 - 新竹 Tel:886-3-5778-366 Fax:886-3-5770-955 台湾 - 高雄 Tel:886-7-213-7828 Fax:886-7-330-9305 台湾 - 台北 Tel:886-2-2508-8600 Fax:886-2-2508-0102 タイ - バンコク Tel:66-2-694-1351 Fax:66-2-694-1350 ヨーロッパ オーストリア - ヴェルス Tel:43-7242-2244-39 Fax: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-90 Fax:34-91-708-08-91 イギリス - ウォーキンガム Tel:44-118-921-5869 Fax:44-118-921-5820