® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 2.0 特徴 調整可能なカウンタ サイズ: 8、16、32 ビット 絶対的な位置を決定するための、オプションのインデックス入力 A および B 入力での 1x、2x、または 4x 周波数のカウンタ分解能による、より正 確な位置または速度の決定 入力においてシステムから発生するノイズの影響を軽減する、オプションのグリッチ フ ィルタリング 一般的な説明 直交デコーダ (QuadDec) コンポーネントは、デジタル信号のペアで、遷移をカウントする機能を提供します。典 型的に、信号は、モーターやトラックボールにマウントされた速度/位置のフィードバック システムによって提供されま す。 通常 A および B と呼ばれる信号は、グレイコード出力をもたらす、位相から 90 度外れた位置にあります。グレ イ コードは、各カウントで 1 ビットだけ変わるシーケンスです。これは、グリッチを避けるために必須です。また、方 向と相対位置の検出を可能にします。3 つ目のオプション信号、名前付きインデックスは、回転ごとに一度、絶 対位置を確立するための基準として使用されます。 直交デコーダを使用する場合 直交デコーダは、直交エンコーダの出力をデコードするために使用されます。直交エンコーダは、物体 (例えば、マ ウス、トラックボール、ロボットのアクセルなど) の現在の位置、速度、方向を感知します。 直交デコーダは、モータのロータの速度、加速度、位置を正確に計測し、回転式ノブを使って、ユーザ入力を決 定するためにも使用できます。 Cypress Semiconductor Corporation • 198 Champion Court • San Jose, CA 95134-1709 • 408-943-2600 Document Number: 001-79429 Rev** Revised November 1, 2011 直交デコーダ (QuadDec) ® PSoC Creator™ コンポーネント データシート 入出力接続 ここでは、直交デコーダ コンポーネントのさまざまな入出力接続について説明します。I/O リストのアスタリスク (*) は、I/O が、その I/O の説明でリストされている条件において、シンボルに隠れている可能性があることを示します。 quad_A – 入力 直交デコーダの「A」入力。 quad_B – 入力 直交デコーダの「B」入力。 index – 入力 * この入力は、直交デコードの基準位置を検出します。インデックス入力を使用する場合、入力 A、B、インデック スがすべてゼロである場合は、カウンタもゼロにリセットされます。通常、インデックス パルスをゲートするために、そ の他のロジックが追加されます。インデックス ゲーティングにより、多くの可能性のある回転のうち、1 回転だけでカ ウンタがリセットされるようになります。1 つの例として、移動の距離制限に達した場合に、カウンタをリセットするだ けのリニア アクチュエータがあります。この制限は、出力がインデックス パルスに接続されている、機械的な制限ス イッチによって信号が送信されます。 この出力はデフォルトで表示されますが、Use index input (インデックス入力の使用) パラメータの選択を解除 することで、隠すこともできます。 clock – 入力 サンプリングおよび入力のグリッチ フィルタリング用のクロック信号。グリッチ フィルタリングを使用する場合、フィルタ された出力は、続く 3 つの入力サンプルが同じ値になるまで変更されません。効果的なグリッチ フィルタリングを実 行するため、サンプル クロック期間は、グリッチが予測される期間の最大時間を超えないようにします。カウンタは、 A および B 入力の 1x、2x、4x 周波数の分解能で増分または減分できます。 クロック入力周波数は、A または B の最大入力周波数の 10 倍以上にします。 interrupt – 出力 以下のいずれかのイベントでの割り込み: カウンタのオーバーフローおよびアンダーフロー インデックス入力によるカウンタ リセット (インデックスが使用されている場合) A および B 入力での無効な状態遷移 コンポーネント パラメータ デザイン上に直交デコーダ コンポーネントをドラッグし、ダブルクリックして [Configure (設定)] ダイアログを開きま す。ダイアログには、カテゴリ別のパラメータを持つ、複数のタブが含まれています。 Page 2 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) [Counter Size (カウンタ サイズ)] タブ このタブは、カウンタ サイズをビットで定義するために使用されます。カウンタは、直交エンコーダによってエンコード された現在の位置を維持します。 正と負の方向で最大位置をエンコードするのに十分なカウンタ サイズを選択してください。設定の選択肢: 8 ビッ ト、16 ビット、または 32 ビット。 32 ビット カウンタは、ハードウェア カウンタの下位 16 ビット、ソフトウェア カウンタの上位 16 ビットを実装し、ハー ドウェアのリソース利用を軽減します。このターゲットでは、追加の ISR が使用されます。32 ビットのカウンタを正 しく動作するよう、割り込みを有効にする必要があります。必要に応じて、ISR コードをソース ファイルに追加でき ます。詳しくは、割り込みコンポーネント・データシートを参照してください。 Document Number: 001-79429 Rev** Page 3 of 32 直交デコーダ (QuadDec) ® PSoC Creator™ コンポーネント データシート [Counter Resolution (カウンタの分解能)] タブ このタブには、A および B 入力の 1 周期で記録されたカウント数が含まれます。カウンタの更新に使用される入 力信号の遷移を示します。コストの範囲内でのより大きなカウンタの使用では、分解能が高いほど、より結果の 位置が正確になります。設定は、1x、2x、4x になります。 [Use Index Input (インデックス入力の使用)] タブ Page 4 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) このタブには、インデックス入力を有効/無効にするフィールドが含まれます。インデックス入力は、基準位置に達し たことを示すために使用できます。インデックス入力が使用される場合、A、B、インデックス入力がすべてゼロにな ると、カウントがリセットされ、割り込みを生成できます。デフォルトでは、インデックス入力が有効になります。 [Enable Glitch Filtering (グリッチ フィルタリングの使用)] タブ このタブには、デジタル グリッチ フィルタリングを有効または無効にするフィールドが含まれます。フィルタリングは、入 力のグリッチによってのカウントミスを防ぐために適用することができます。GPIO でのヒステリシスを使用したフィルタ リングがすでに適用されていますが、追加のフィルタリングが必要となる場合があります。 有効にすると、フィルタリングがすべての入力に適用されます。フィルタされた出力は、続く 3 つの入力サンプルが 同じ値になるまで変更されません。効果的なフィルタリングを実施するため、サンプル クロック期間は、グリッチの発 生が予測される期間の最大時間を超えないようにします。デフォルトでは、グリッチ フィルタリングが有効になります。 Clock Select (クロック選択) 直交デコーダ コンポーネントのクロッキングをするためのクロック源を接続する必要があります。ステータス レジスタ の時間を記録し、割り込みを生成します。 配置 直交デコーダは、UDB アレイに配置され、すべての配置情報は、cyfitter.h ファイルを通して API に提供されま す。 Document Number: 001-79429 Rev** Page 5 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) リソース グリッチ フィルタリングを使わない 1x 分解能 リソースのタイプ API メモリ(バイト) リソース データパス セル PLD ステータス セル Control/ Count7 セル 割り込み フラッシュ RAM ピン(外部入出 力当たり) 8 ビット 1 6 2 1 0 566 7 2 8 ビット * 1 6 2 1 0 566 7 3 16 ビット 2 6 2 1 0 652 9 2 16 ビット * 2 6 2 1 0 652 9 3 32 ビット 2 6 2 1 1 906 14 2 32 ビット * 2 9 2 1 1 906 14 3 * インデックス入力を使用 グリッチ フィルタリングを使う 1x 分解能 リソースのタイプ API メモリ(バイト) リソース データパス セル PLD ステータス セル Control/ Count7 セル 割り込み フラッシュ RAM ピン(外部入出 力当たり) 8 ビット 1 7 2 1 0 566 7 2 8 ビット * 1 9 2 1 0 566 7 3 16 ビット 2 7 2 1 0 652 9 2 16 ビット * 2 9 2 1 0 652 9 3 32 ビット 2 7 2 1 1 906 14 2 32 ビット * 2 9 2 1 1 906 14 3 * インデックス入力を使用 Page 6 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) グリッチ フィルタリングを使わない 2x 分解能 リソースのタイプ リソース データパス セル 8 ビット API メモリ(バイト) PLD ステータ ス セル Control/ Count7 セル 割り込み フラッシュ RAM ピン(外部入出力 当たり) 1 6 2 1 0 566 7 2 8 ビット * 1 7 2 1 0 566 7 3 16 ビット 2 6 2 1 0 652 9 2 16 ビット * 2 7 2 1 0 652 9 3 32 ビット 2 6 2 1 1 906 14 2 32 ビット * 2 7 2 1 1 906 14 3 * インデックス入力を使用 グリッチ フィルタリングを使う 2x 分解能 リソースのタイプ リソース データパス セル 8 ビット API メモリ(バイト) PLD ステータ ス セル Control/ Count7 セル 割り込み フラッシュ RAM ピン(外部入出力 当たり) 1 8 2 1 0 566 7 2 8 ビット * 1 9 2 1 0 566 7 3 16 ビット 2 8 2 1 0 652 9 2 16 ビット * 2 9 2 1 0 652 9 3 32 ビット 2 8 2 1 1 906 14 2 32 ビット * 2 9 2 1 1 906 14 3 * インデックス入力を使用 Document Number: 001-79429 Rev** Page 7 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) グリッチ フィルタリングを使わない 4x 分解能 リソースのタイプ リソース データパス セル 8 ビット API メモリ(バイト) PLD ステータ ス セル Control/ Count7 セル 割り込み フラッシュ RAM ピン(外部入出力 当たり) 1 7 2 1 0 566 7 2 8 ビット * 1 7 2 1 0 566 7 3 16 ビット 2 7 2 1 0 652 9 2 16 ビット * 2 7 2 1 0 652 9 3 32 ビット 2 7 2 1 1 906 14 2 32 ビット * 2 7 2 1 1 906 14 3 * インデックス入力を使用 グリッチ フィルタリングを使う 4x 分解能 リソースのタイプ リソース データパス セル 8 ビット API メモリ(バイト) PLD ステータ ス セル Control/ Count7 セル 割り込み フラッシュ RAM ピン(外部入出力 当たり) 1 8 2 1 0 566 7 2 8 ビット * 1 9 2 1 0 566 7 3 16 ビット 2 8 2 1 0 652 9 2 16 ビット * 2 9 2 1 0 652 9 3 32 ビット 2 8 2 1 1 906 14 2 32 ビット * 2 9 2 1 1 906 14 3 * インデックス入力を使用 Page 8 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) アプリケーション プログラミング インタフェース アプリケーション プログラミング インターフェース (API) ルーチンにより、ソフトウェアを使用してコンポーネントを設定 できます。次の表は、各関数へのインターフェースとその説明を示しています。続くセクションでは、各関数について 詳しく説明します。 デフォルトで、PSoC Creator は、インスタンス名「QuadDec_1」を、特定のデザインにおける最初のコンポーネ ント インスタンスに割り当てます。コンポーネントのインスタンス名称は、識別子の文法ルールに従って固有の名 前に変更できます。インスタンス名は、すべてのグローバル関数名、変数名、定数名のプリフィックスになります。 便宜上、以下の表では「QuadDec」というインスタンス名を使用します。 関数 説明 QuadDec_Start() UDB とその他の関連ハードウェアを初期化します。 QuadDec_Stop() UDB とその他の関連ハードウェアをオフにします。 QuadDec_GetCounter() カウンタの現在値をレポートします。 QuadDec_SetCounter() カウンタの現在値を設定します。 QuadDec_GetEvents() イベントの現在の状態をレポートします。 QuadDec_SetInterruptMask() イベントによる割り込みを有効または無効にします。 QuadDec_GetInterruptMask() 現在の割り込みマスク設定をレポートします。 QuadDec_Sleep() スリープになるコンポーネントを準備します。 QuadDec_Wakeup() ウェイクアップになるコンポーネントを準備します。 QuadDec_Init() カスタマイザで提供されるデフォルト設定を初期化または復元します。 QuadDec_Enable() 直交デコーダをイネーブルにします。 QuadDec_SaveConfig() 現在のユーザー設定を保存します。 QuadDec_RestoreConfig() ユーザー設定を復元します。 グローバル変数 関数 QuadDec_initVar 説明 QuadDec_initVar は直行デコーダが初期化されたかどうかを示します。変数は、0 に初期化さ れ、最初にQuadDec _Start() が呼び出されると 1 に設定されます。これは、QuadDec_Start() ルーチンの最初の呼び出し後に再初期化しないでコンポーネントを起動します。 コンポーネントの再初期化が必要な場合は、QuadDec_Init() 関数を QuadDec_Start() また は QuadDec_Enable() 関数の前に呼び出します。 QuadDec_count32SoftPart 32ビット カウンタ値の上位16 ビットは、この変数に保存されます。 QuadDec_swStatus ステータス レジスタの値は、この変数に保存されます。 Document Number: 001-79429 Rev** Page 9 of 32 直交デコーダ (QuadDec) ® PSoC Creator™ コンポーネント データシート void QuadDec_Start(void) 説明: UDB とその他の関連ハードウェアを初期化します。カウンタを 0 にリセットし、すべての関連割り込みをイネ ーブルまたはディスエーブルにします。入力とカウントの監視を開始します。 パラメータ: なし 戻り値: なし 副作用: なし void QuadDec_Stop(void) 説明: UDB とその他の関連ハードウェアをオフにします。 パラメータ: なし 戻り値: なし 副作用: なし int8/16/32 QuadDec_GetCounter(void) 説明: カウンタの現在値をレポートします。 パラメータ: なし 戻り値: int8/16/32: カウンタ値。戻り値のタイプは、カウンタ サイズの設定によって割り当てられます。正の値は、反 時計回りの動き (A の前に B) を示します。 副作用: なし void QuadDec_SetCounter(int8/16/32 値) 説明: カウンタの現在値を設定します。 パラメータ: int8/16/32 value: 新しい値。パラメータのタイプは、カウンタ サイズの設定によって割り当てられます。 戻り値: なし 副作用: なし Page 10 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) uint8 QuadDec_GetEvents(void) 説明: イベントの現在の状態を報告します。 パラメータ: なし 戻り値: 符号なしの 8 ビット値におけるビットとしてのイベント。 ビット 副作用: 説明 QuadDec_COUNTER_OVERFLOW カウンタのオーバーフロー。 QuadDec_COUNTER_UNDERFLOW カウンタのアンダーフロー。 QuadDec_COUNTER_RESET インデックスが使用されている場合、インデックスによって よるカウンタがリセットされます。 QuadDec_INVALID_IN 無効な A 、B 入力状態遷移。 なし void QuadDec_SetInterruptMask(uint8 mask) 説明: イベントによる割り込みをイネーブルまたはディスエーブルにします。32 ビット カウンタでは、オーバーフロー、ア ンダーフロー、リセットの割り込みは、ディスエーブルにできません。これらのビットは無視されます。 パラメータ: uint8 mask: 8 ビット値のビットをイネーブルまたはディスエーブルにします。1 は割り込みを有効にします。 ビット 説明 QuadDec_COUNTER_OVERFLOW カウンタのオーバーフローによる割り込みをイネーブルにし ます。 QuadDec_COUNTER_UNDERFLOW カウンタのアンダーフローによる割り込みをイネーブルにし ます。 QuadDec_COUNTER_RESET カウンタのリセットによる割り込みをイネーブルにします。 QuadDec_INVALID_IN 無効な入力状態遷移による割り込みをイネーブルにし ます。 戻り値: なし 副作用: なし Document Number: 001-79429 Rev** Page 11 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) uint8 QuadDec_GetInterruptMask(void) 説明: 現在の割り込みマスク設定をレポートします。 パラメータ: なし 戻り値: 8 ビット値のビットをイネーブルまたはディスエーブルにします。1 は割り込みをイネーブルにします。 32 ビット カウンタでは、常に、オーバーフローとアンダーフローのイネーブル ビットが設定されます。 ビット QuadDec_COUNTER_OVERFLOW 説明 カウンタのオーバーフローによる割り込み。 QuadDec_COUNTER_UNDERFLOW カウンタのアンダーフローによる割り込み。 副作用: QuadDec_COUNTER_RESET カウンタのリセットによる割り込み。 QuadDec_INVALID_IN 無効な A、B 入力状態遷移による割り込み。 なし void QuadDec_Sleep(void) 説明: これは、コンポーネントのスリープを準備するのに推奨されるルーチンです。QuadDec_Sleep() ルーチンは、 現在のコンポーネントの状態を保存します。次に、QuadDec_Stop() 関数を呼び出し、 QuadDec_SaveConfig() を呼び出してハードウェア設定を保存します。 CyPmSleep() または CyPmHibernate() 関数を呼び出す前に、QuadDec_Sleep() 関数を呼び出し ます。パワーマネジメント関数については、PSoC Creator System Reference Guide (システム リファレン ス ガイド) を参照してください。 パラメータ: なし 戻り値: なし 副作用: なし void QuadDec_Wakeup(void) 説明: これは、QuadDec_Sleep() が呼び出された際に、コンポーネントをその状態に復元するのに適したルーチ ンです。QuadDec_Wakeup() 関数は QuadDec_RestoreConfig() 関数を呼び出して設定を復元しま す。QuadDec_Sleep() 関数が呼び出される前にコンポーネントがイネーブルになっている場合は、 QuadDec_Wakeup() 関数でも、コンポーネントを再度イネーブルにします。 パラメータ: なし 戻り値: なし 副作用: 最初に QuadDec_Sleep() または QuadDec_SaveConfig() 関数を呼び出さずに QuadDec_Wakeup() 関数を呼び出すと、予期せぬ動作を引き起こす場合があります。 Page 12 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) void QuadDec_Init(void) 説明: カスタマイザの [Configure (設定)] ダイアログの設定に従って、コンポーネントを初期化または復元します。 QuadDec_Start() ルーチンがこの関数を呼び出し、これがコンポーネントの動作を開始する好ましい方法 であるため、QuadDec_Init() を呼び出す必要はありません。 パラメータ: なし 戻り値: なし 副作用: 全レジスタは、カスタマイザの [Configure (設定)] ダイアログの設定に従って、値が設定されます。 void QuadDec_Enable(void) 説明: ハードウェアの使用を開始し、コンポーネントの動作を開始します。QuadDec_Start() ルーチンが この関数 を呼び出し、これがコンポーネントの動作を開始する好ましい方法であるため、QuadDec_Enable() を呼 び出す必要はありません。 パラメータ: なし 戻り値: なし 副作用: なし void QuadDec_SaveConfig(void) 説明: この関数は、コンポーネントの設定と保持されないレジスタを保存します。この関数は、[Configure] (設定) ダイアログで定義されている、または該当する API で変更される、現在のコンポーネント パラメータ値も保存 します。この関数は、QuadDec_Sleep() 関数によって呼び出されます。 パラメータ: なし 戻り値: なし 副作用: なし void QuadDec_RestoreConfig(void) 説明: この関数は、コンポーネントの設定とノンリテンション レジスタを復元します。また、この関数はコンポーネント のパラメータ値を QuadDec_Sleep() 関数を呼び出す前の状態に復元します。 パラメータ: なし 戻り値: なし 副作用: 最初に QuadDec_Sleep() または QuadDec_SaveConfig() 関数を呼び出さずにこの関数を呼び出す と、予期せぬ動作を引き起こす場合があります。 Document Number: 001-79429 Rev** Page 13 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) ファームウェア ソースコードのサンプル PSoC Creator は、[Find Example Project] ダイアログに数多くのサンプル プロジェクトを提供しており、そこに は回路図およびコード例が含まれています。コンポーネント固有の例を見るには、[Component Catalog ] また は回路図に置いたコンポーネント インスタンスからダイアログを開きます。一般例については、[Start Page] また は [File (ファイル)] メニューからダイアログを開きます。必要に応じてダイアログにある Filter Options を使用し、 選択できるプロジェクトのリストを絞り込みます。 詳しくは、PSoC Creator ヘルプの「Find Example Project (サンプルプロジェクトを検索)」を参照してください。 機能の説明 デフォルト設定 直交デコーダのデフォルト設定は、1x 分解能を持つ 8 ビットのアップおよびダウン カウンタで、インデックスが有効 で、グリッチ フィルタリングが有効になっています。 状態の遷移 通常、直交位相信号は、ステートマシンとアップ/ダウン カウンタでデコードされます。従来のデコーダは、A および B 入力のすべての値に該当する、4 つの状態を持ちます。状態の遷移図を以下に示します (同じ状態の遷移 は表示されていません)。「+」および「-」のついた状態の遷移は、直交位相カウンタでの増分および減分動作を 示しています。 AB 00 + + - - AB 10 AB 01 - - + + AB 11 直交位相信号の各フルサイクルでは、直交位相カウンタが、4 つのカウントによって変更されます。より低い分解 能カウンタは、状態遷移のサブセットのみでアップ/ダウン動作を実装することで使用可能です。4 分の 1 の分解 能デコーダを以下に示します。 Page 14 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) すべての入力は、装置で内部的に派生されるクロック信号を使ってサンプリングされます。 ブロックダイアグラムと設定 直交デコーダは、ブロックの UDB 構成としてのみ利用可能です。API はこのマニュアルの前で説明されています。 レジスタについては、次のセクションのコンポーネントの総合的実装の定義の中で説明されています。 Document Number: 001-79429 Rev** Page 15 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) レジスタ ステータス ビット 7 6 値 5 4 予約済み 3 2 1 無効 リセット 0 アンダーフロー オーバーフロー 状態レジスタは読み取り専用です。直交デコーダで定義されるさまざまなステータス ビットを含みます。このレジス タの値は、QuadDec_GetEvents() 関数で取得できます。割り込み出力信号は、状態レジスタ内でマスクされ たビット フィールドの論理和 から生成されます。 QuadDec_SetInterruptMask() 関数を使って、マスクを設定できます。割り込みを受け取ると、 QuadDec_GetEvents() 関数を使用して状態レジスタを読み取って、割り込みソースを取得できます。状態レ ジスタは透過的であるため、QuadDec_GetEvents() 関数は、状態レジスタのビットをクリアしません。状態レジ スタでのすべての動作は、ビルド時に状態レジスタ内でビット フィールドが移動することがあるため、ビットフィールド の次の定義を使用する必要があります。 状態レジスタで定義されているビット フィールド マスクは複数あります。どのビット フィールドでも、割り込みソースと して含めることができます。すべてのビット フィールドは、状態レジスタのスティッキー ビットとして構成されます。定 義は、以下のように生成されたヘッダー (.h) ファイルで利用できます。 QuadDec_COUNTER_OVERFLOW – 状態レジスタ ビット「カウンタ オーバーフロー」のビットマスクとし て定義されます。 QuadDec_COUNTER_UNDERFLOW – 状態レジスタ ビット「カウンタ アンダーフロー」のビットマスクとし て定義されます。 QuadDec_RESET – 状態レジスタ ビット「インデックスによるリセット 」のビットマスクとして定義されます。 QuadDec_INVALID_IN – 状態レジスタ ビット「A および B 入力での無効な状態遷移」のビットマスクとし て定義されます。 DC 電気的特性と AC 電気的特性 以下の値は、期待される性能を示しており、初期特性データを基にしています。 「公称配線での最大」タイミング特性 パラメータ fCLOCK 1 説明 コンポーネント クロック周波数 設定 1 のオプション: CounterResolution: Page 16 of 32 設定 構成1 1 Min Typ Max 単位 34 MHz 1 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート パラメータ 直交デコーダ (QuadDec) 説明 tCLOCKH 入力クロック HIGH 時間 tCLOCKL 入力クロックLOW時 設定 4 Error! Bookmark not Min Typ Max 単位 構成2 2 29 MHz 構成3 3 16 MHz 該当なし 0.5 1/fCLOCK 該当なし 0.5 1/fCLOCK defined. Inputs (入力) 6 tPD_ps 入力パス遅延、同期ピン 5 1 STA tPD_ps 入力パス遅延、同期ピン 7 2 8.5 ns tPD_IE コンポーネントクロックへの入力パス遅延(エ ッジセンシティブ入力) 1,2 tPD_ps + tSYNC + tPD_si + tI_clk ns tPD_si 入力パス遅延への同期出力 (ルート) 1,2,3,4 tPD_ps + tSYNC + tPD_si STA ns Error! Bookmark not ns defined. 2 3 4 tI_clk clockXとクロックのアライメント 1,2,3,4 tIH 入力 HIGH 時間 1,2 tCY_clock ns tIL 入力 LOW 時間 1,2 tCY_clock ns tPD_IE コンポーネントクロックへの入力パス遅延(エ ッジセンシティブ入力) 3,4 tSYNC + tPD_si CounterSize: UsingGlitchFiltering: UsingIndexInput: 8 false true 設定 2 のオプション: CounterResolution: CounterSize: UsingGlitchFiltering: UsingIndexInput : 1 8 false true 設定 3 のオプション: CounterResolution: CounterSize: UsingGlitchFiltering: UsingIndexInput: 2 16 true true 0 1 tCY_clock tSYNC + tPD_si + tI_clk ns tCY_clock = 1/fclock - 1 クロック周期の周期時間 5 tPD_ps は、静的タイミング解析 (STA) 結果内にあります (後述)。ここに記載されている数字は、多くの入力における STA 分析を基にした公称値 です。 6 tPD_ps および tPD_si はルート パスの遅延です。ルーティングは動的なためこれらの値は変化することがあり、最大コンポーネントクロックと同期クロック 周波数に直接の影響を及ぼします。静的タイミング分析結果に値がある必要があります。 7 tPD_ps 構成 2 で、デバイスのピン毎に定義された固定値。ここに記載されている数字は、デバイス上で使用できるすべてのピンの公称値です。 Document Number: 001-79429 Rev** Page 17 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) パラメータ 説明 設定 Min Typ Max 単位 tIH 入力 HIGH 時間 1,2,3,4 tCY_clock ns tIL 入力 LOW 時間 1,2,3,4 tCY_clock ns fAB コンポーネント A および B 周波数 該当なし tIND インデックス信号幅 グリッチ フィル タリングなし 2 × tCY_clock + 5 ns グリッチ フィル タリングあり 3 × tCY_clock + 5 ns tRD 時間をリセットするインデックス入力 LOW fCLOCK/10 MHz グリッチ フィル タリングなし 2 tCY_clock グリッチ フィル タリングあり 5 tCY_clock TGL グリッチの発生が予測される時間 tCD 遅延時間、クロックの立ち上がりエッジからカ 該当なし ウントの有効まで tE エンコーダ パルス幅 (LOW または HIGH) 該当なし 4 tCY_clock tE エンコーダ状態期間 該当なし 2 tCY_clock tE エンコーダ期間の幅 該当なし 10 tCY_clock Page 18 of 32 グリッチ フィル タリングあり 3 2 tCY_clock tCY_clock Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) 「すべての配線での最大」タイミング特性 パラメータ fCLOCK 説明 設定 コンポーネント クロック周波数 tCLOCKH 入力クロック HIGH 時間 tCLOCKL 入力クロックLOW時 5 Error! Bookmark not defined. Min Typ Max 1 単位 構成1 2 17 MHz 構成2 3 14 MHz 構成3 4 8 MHz 該当なし 0.5 1/fCLOCK 該当なし 0.5 1/fCLOCK Inputs (入力) 7 tPD_ps 入力パス遅延、同期ピン 6 1 STA tPD_ps 入力パス遅延、同期ピン 8 2 8.5 ns tPD_IE コンポーネント クロックへの入力パス遅延(エッジ センシティブ入力) 1,2 tPD_ps + tSYNC + tPD_si + tI_clk ns tPD_si 入力パス遅延への同期出力 (ルート) 1,2,3,4 tPD_ps + tSYNC + tPD_si STA Error! Bookmark ns ns not defined. 1 「すべてのルーティング」の最大値は、<公称値>/2 で最近似の整数に切り上げ/切り下げられます。この値により、このコンポーネント周波数、またはそ れ以下で実行される場合に、ユーザがタイミングを合わせる必要がなくなります。 2 3 4 設定 1 のオプション: CounterResolution: CounterSize: UsingGlitchFiltering: UsingIndexInput: 1 8 false true 設定 2 のオプション: CounterResolution: CounterSize: UsingGlitchFiltering: UsingIndexInput : 1 8 false true 設定 3 のオプション: CounterResolution: CounterSize: UsingGlitchFiltering: UsingIndexInput: 2 16 true true 5 tCY_clock = 1/fclock - 1 クロック周期の周期時間 6 tPD_ps は、後述する静的タイミングの結果にあります。ここに記載されている数字は、多くの入力における STA 分析を基にした公称値です。 7 tPD_ps および tPD_si はルート パスの遅延です。ルーティングは動的なためこれらの値は変化することがあり、最大コンポーネントクロックと同期クロック 周波数に直接の影響を及ぼします。静的タイミング分析結果に値がある必要があります。 8 tPD_ps 構成 2 で、デバイスのピン毎に定義された固定値。ここに記載されている数字は、デバイス上で使用できるすべてのピンの公称値です。 Document Number: 001-79429 Rev** Page 19 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) パラメータ 説明 設定 Min Typ 0 Max 1 1 単位 tI_clk clockXとクロックのアライメント 1,2,3,4 tIH 入力 HIGH 時間 1,2 tCY_clock ns tIL 入力 LOW 時間 1,2 tCY_clock ns tPD_IE コンポーネントクロックへの入力パス遅延(エッジセ ンシティブ入力) 3,4 tSYNC + tPD_si tIH 入力 HIGH 時間 1,2,3,4 tCY_clock ns tIL 入力 LOW 時間 1,2,3,4 tCY_clock ns fAB コンポーネント A および B 周波数 該当なし tIND インデックス信号幅 グリッチ フィ ルタリング tSYNC + tPD_si + tI_clk fCLOCK/10 tCY_clock ns MHz 2 × tCY_clock +5 ns 3 × tCY_clock グリッチ フィ +5 ルタリングあり ns なし tRD 時間をリセットするインデックス入力 LOW グリッチ フィ ルタリング 2 tCY_clock 5 tCY_clock なし グリッチ フィ ルタリングあり TGL グリッチの発生が予測される時間 tCD 遅延時間、クロックの立ち上がりエッジからカウント 該当なし の有効まで tE エンコーダ パルス幅 (LOW または HIGH) 該当なし 4 tCY_clock tE エンコーダ状態期間 該当なし 2 tCY_clock tE エンコーダ期間の幅 該当なし 10 tCY_clock Page 20 of 32 グリッチ フィ ルタリングあり 3 2 tCY_clock tCY_clock Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント・データシート 直交デコーダ (QuadDec) 図 1. グリッチ フィルタリングを使わないタイミング図 tCY_clock tELP clock tE tE Input @ quad_B tES tES Input @ quad_A tIND Input @ index Internal signal @ quad_B_filtered Internal signal @ quad_A_filtered Internal signal @ Index_filtered tRD Internal signal @ reset Internal signal @ count 1x count tCD N Document Number: 001-79429 Rev** N+1 00 01 Page 21 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 図 2. グリッチ フィルタリングを使ったタイミング図 tCY_clock tELP clock tE tE Input @ quad_B tGL Input @ quad_A tES Noise Spike tES tIND Input @ index Internal signal @ quad_B_filtered Internal signal @ quad_A_filtered Internal signal @ Index_filtered tRD Internal signal @ reset Internal signal @ count 1x count Page 22 of 32 tCD N N+1 00 01 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 特性データ用の STA 結果の使用方法 公称ルーティング最大値は、静的タイミング分析 (STA) を使って、複数のテスト パスから収集されます。STA 結果を用いた場合、次の手法でデザインの最大値を計算できます。 fCLOCK Maximum Component Clock Frequency(最大コンポーネントクロック周波数)が、外付けクロックと いう名前のクロックサマリにタイミング結果として表示されます。下図は、_timing.html ファイルによるクロッ ク制限の例を示しています。 入力パス遅延とパルス幅 入力の機能を特性化する場合は、どのように構成しても、すべての入力は、図 3 に示されるように、4 つの可能 な設定のいずれかになります。 すべての入力は同期されていなければなりません。同期のメカニズムは、コンポーネントへの入力ソースによって異 なります。システムの動作を完全に解釈するには、各入力でどの入力設定を設定したか、またシステムのクロック 構成を理解する必要があります。このセクションでは、Static Timing Analysis (静的タイミング分析、STA) の 結果を使用して、システムの特性分析を行う方法について説明します。 Document Number: 001-79429 Rev** Page 23 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 図 3. コンポーネントタイミング仕様のための入力設定 構成 1 コンポーネント クロック シンクロナイザ クロック(周波数) 図 1 master_clock master_clock 図8 1 クロック master_clock 図6 1 クロック clockX = clock 1 クロック clockX > clock 図5 1 クロック clockX < clock 図7 2 master_clock master_clock 図8 2 クロック master_clock 図6 3 master_clock master_clock 図13 1 図4 クロック周波数は同等ですが、立ち上がりエッジのアライメントは保証されていません。 Page 24 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント データシート 構成 コンポーネント クロック 直交デコーダ (QuadDec) シンクロナイザ クロック(周波数) 図 3 クロック master_clock 図11 3 クロック clockX = clock 3 クロック clockX > clock 図10 3 クロック clockX < clock 図12 4 master_clock master_clock 図13 4 クロック クロック 図9 1 図9 1. 入力は、デバイスピンによって駆動され、内部で「sync」コンポーネントと同期します。このコンポーネントは、コ ンポーネントが使用するクロックとは異なる内部クロックを使用します (すべての内部クロックは master_clock から派生します)。 このような方法で構成された入力の特性を分析する際は、clockX はコンポーネントのクロックより速い、同じ、 遅い場合があります。また、図 4、図 5、図 7、図 8 に示されているように、特性化パラメータを生成する、 master_clock にも等しくなる場合があります。 2. この入力は、デバイスピンによって駆動され、master_clock を使用してそのピンと同期化されます。 このような方法で構成された入力の特性を分析する際は、master_clock はコンポーネントのクロックより速 いか同じになります(遅いことはありません)。これは、図 5 と 図 8 に示されているように、特性化パラメータを生成 します。 図 4. 入力設定 1 および 2。同期クロック周波数 = コンポーネントクロック周波数 (clock と clockX のエッジ アライメントは保証されません) master_clock clockX tsync clock tPD_ps Input @ pin tPD_si Input @ sync output Input @ component tPD_IE Document Number: 001-79429 Rev** tIH tI_clk tIL Page 25 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 図 5. 入力設定 1 と 2。 Sync。クロック周波数。> コンポーネント クロック周波数 master_clock clockX tsync clock tPD_ps Input @ pin tPD_si Input @ sync output Input @ component tPD_IE tIH tIL tI_clk 図 6. 入力設定 1 と 2。[Sync. クロック周波数。== master_clock] > コンポーネント クロック周波数 master_clock tsync clock tPD_ps Input @ pin tPD_si Input @ sync output Input @ component tIH tPD_IE tI_clk Page 26 of 32 tIL Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 図 7. 入力設定 1。Sync。クロック周波数。< コンポーネント クロック周波数 master_clock clockX tsync clock tPD_ps Input @ pin tPD_si Input @ sync output Input @ component tIH tPD_IE tIL 図 8. 入力設定 1 と 2。Sync。Clock = Component Clock = master_clock tsync clock tPD_ps Input @ pin tPD_si Input @ sync output Input @ component tPD_IE tIH tIL 3. 入力は PSoC 内部のロジックにより駆動されます。これはコンポーネントが使用するクロックとは異なるクロック をベースにして同期しています(すべての内蔵クロックは master_clock から派生しています)。 この方法で設定された入力を特性化する場合、シンクロナイザ クロックは、図 9、図 10、図 12 に示される 特性化パラメータを生成するコンポーネントのクロックより速くなるか、遅くなるか、同じになります。 4. 入力は PSoC 内部のロジックにより駆動されます。これはコンポーネントが使用するクロックと同じクロックをベ ースにして同期しています。 Document Number: 001-79429 Rev** Page 27 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) この方法で設定された入力を特性化する場合、同期クロックは、図 13 に示される特性化パラメータを生成 する、コンポーネントのクロックに等しくなります。 図 9. 入力構成 3 のみ; Sync. クロック周波数。= コンポーネント クロック周波数 (clock と clockX のエッジ アライメントは保証されません) master_clock clockX clock tPD_si Logic Output Input @ component tIH tIL 図 9 は、静的タイミング分析がクロックを解釈できる範囲を表しています。デジタルクロック領域のすべてのクロック は master_clock と同期します。但し、同じ周波数の 2 つのクロックは、立ち上がりエッジでアライメントされませ ん。このため、静的タイミング分析ツールは、どのクロックのエッジに同期するかが特定できず、master_clock サイ クルの最低値だと推定するほかありません。つまり、tPD_si にシステムの master_clock のリミティング効果が含ま れるようになったことを意味します。このパスの遅延が長すぎる場合は、master_clock セットアップ時間の違反が 表示されます。この場合、システムの同期クロックを変更するか、master_clock を遅い周波数で実行しなけれ ばなりません。 図 10. 入力設定 3。Sync。クロック周波数。> コンポーネント クロック周波数 master_clock clockX clock tPD_si Logic Output Input @ component tIH Page 28 of 32 tIL Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 図 9 に示されているのとほぼ同じ方法で、すべてのクロックは、master_clock から生成されます。STA は、この 構成で 1master_clock サイクル分、master_clock における tPD_si の制限を示します。このパスの遅延が長す ぎると、master_clock セットアップ時間の違反が発生します。この場合、システムの同期クロックを変更するか、 master_clock を遅い周波数で実行しなければなりません。 図 11. 入力設定 3; Synchronizer Clock Frequency = master_clock > Component Clock Frequency master_clock clock tPD_si Logic Output Input @ component tIH tIL 図 12. 入力設定 3; Synchronizer Clock Frequency < Component Clock Frequency master_clock clockX clock tPD_si Logic Output Input @ component tIH tIL 図 9 に示されているのとほぼ同じ方法で、すべてのクロックは、master_clock から派生します。STA は、この構 成で 1master_clock サイクル分、master_clock における tPD_si の制限を示します。このパスの遅延が長すぎ ると、master_clock セットアップ時間の違反が発生します。この場合、システムの同期クロックを変更するか、 master_clock を遅い周波数で実行しなければなりません。 Document Number: 001-79429 Rev** Page 29 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 図 13. 入力設定 4 のみ; Synchronizer Clock = Component Clock clock tPD_si Logic Output Input @ component tIH tIL このセクションの前のすべての図で、実装を理解する上で最も重要なパラメータは、fCLOCK および tPD_IE です。 tPD_IE は、tPD_ps および tSYNC (設定 1 および 2 のみ)、tPD_si、 および tI_Clk によって定義されます。非常に重要 なことは、tPD_si が最大コンポーネントクロック周波数を定義するということです。tI_Clk は STA の結果によるもので はありませんが、tPD_IE が登録された場合に表示に使用されます。これは、シンクロナイザとコンポーネント クロック の間のルート後に残ったマージン。 tPD_ps と tPD_si は、STA 結果に含まれています。 tPD_ps は、_timing.html ファイルで定義されている入力設定時間を参照してください。この入力のファンアウトが 1 を超える場合があるため、これらのパスの最大値を評価する必要があります。 tPD_si は、レジスタ間の時間に定義されています。_timing.html を使用するには、ネット名を知っていなければな りません。このパスのファンアウトは 1 つ以上ある可能性があり、これらのパスの最大値を評価する必要があります。 Page 30 of 32 Document Number: 001-79429 Rev** ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) 出力パス遅延 出力のパス遅延の特性分析を行う場合、STA 結果のどこでデータを見つけることができるかを知るために、出力 の送信先を知らなければなりません。このコンポーネントでは、すべての出力がコンポーネントクロックに同期されて います。出力は 2 つのカテゴリのうち、いずれかに該当します。出力は、デバイス内の別のコンポーネントへ送られ るか、デバイス外のピンに進むかのどちらかです。前者の場合、上述のロジック・入力間の説明に記載されている レジスタ間の時間(ソースクロックはコンポーネントクロックです)を見ます。後者の場合、_timing.html STA 結果 のクロック・出力間の時間を見ます。 Document Number: 001-79429 Rev** Page 31 of 32 ® PSoC Creator™ コンポーネント データシート 直交デコーダ (QuadDec) コンポーネントの変更 ここでは、過去のバージョンからコンポーネントに加えられた主な変更を示します。 バージョン 2.0 変更の説明 データシートのブロック図と設定ブロックダイアグ ラムと設定変更されています。 変更の理由 / 影響 Counter コンポーネントの最新バージョンでの使用向けです。 直行デコーダコンポーネント回路図の内部コン Counter コンポーネントの最新バージョンでの使用向けです。 ポーネントをバージョン 2.0 に更新。 不要定義を削除。 1.50.a データシートに特性データを追加 データシートのマイナーな編集と更新 1.50 QuadDec_Start() API の変更: 制御レジス タへの書き込みを削除。 Beta5 STA-Based 最適化。 QuadDec_Sleep()/ QuadDec_Wakeup() より低い電力モードをサポートするための API を追加。 API を追加。 QuadDec_Init() API を追加。 1.20 コンポーネントを開始せずに、初期化/復元する API の提供を追加。 [Configure] ダイアログが更新されました。 カウンタ サイズは 32 以下の場合、コンパイル後 QuadDec_INT.c ファイルを削除。 カウンタ サイズの QuadDec_INT.c ファイルの状態チェックを削除。 Copyright © 2005-2012 Cypress Semiconductor Corporation 本文書に記載される情報は、予告なく変更される場合があります。Cypress Semiconductor Corporation は、サイプレス製品に組み込まれた回路以外のいかなる回路 を使用することに対しても一切の責任を負いません。特許又はその他の権限下で、ライセンスを譲渡又は暗示することもありません。サイプレス製品は、サイプレスとの書面による合意に基づくものでない限り、医療、生命維持、救命、重要な管 理、又は安全の用途のために仕様することを保証するものではなく、また使用することを意図したものでもありません。さらにサイプレスは、誤動作や故障によって使用者に重大な傷害をもたらすことを合理的に予想される、生命維持システムの重 要なコンポーネンツとしてサイプレス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任を免 除されることを意味します。 PSoC Designer™及び Programmable System-on-Chip™は、Cypress Semiconductor Corp.の商標、PSoC®は同社の登録商標です。本文書で言及するその他全ての商標又は登録商標は各社の所有物です。 全てのソースコード(ソフトウェア及び/又はファームウェア)は Cypress Semiconductor Corporation (以下「サイプレス」)が所有し、全世界(米国及びその他の国)の特許権保護、米国の著作権法並びに国際協定の条項により保護され、かつ それらに従います。サイプレスが本書面によるライセンシーに付与するライセンスは、個人的、非独占的かつ譲渡不能のライセンスであって、適用される契約で指定されたサイプレスの集積回路と併用されるライセンシーの製品のみをサポートするカ スタムソフトウェア及び/又はカスタムファームウェアを作成する目的に限って、サイプレスのソースコードの派生著作物を複製、使用、変更、そして作成するためのライセンス、並びにサイプレスのソースコード及び派生著作物をコンパイルするためのラ イセンスです。上記で指定された場合を除き、サイプレスの書面による明示的な許可なくして本ソースコードを複製、変更、変換、コンパイル、又は表示することは全て禁止されます。 免責条項:サイプレスは、明示的又は黙示的を問わず、本資料に関するいかなる種類の保証も行いません。これには、商品性又は特定目的への適合性の黙示的な保証が含まれますが、これに限定されません。サイプレスは、本文書に記載さ れる資料に対して今後予告なく変更を加える権利を留保します。サイプレスは、本文書に記載されるいかなる製品又は回路を適用又は使用したことによって生ずるいかなる責任も負いません。サイプレスは、誤動作や故障によって使用者に重 大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネンツとしてサイプレス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあら ゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任を免除されることを意味します。 ソフトウェアの使用は、適用されるサイプレスソフトウェアライセンス契約によって制限され、かつ制約される場合があります。 Page 32 of 32 Document Number: 001-79429 Rev**