Stellaris® LM3S9B96 Microcontroller 23 章 直交エンコーダ・インターフェイス(QEI) 。 JAJU124 SPMS182D 翻訳版(23 章) 最新の英語版: http://www.ti.com/lit/gpn/lm3s9b96 この資料は、Texas Instruments Incorporated(TI)が英文で記述した資料を、皆様のご理解の一助として頂くために日本テキサ ス・インスツルメンツ(日本 TI)が英文から和文へ翻訳して作成したものです。資料によっては正規英語版資料の更新に対応して いないものがあります。日本 TI による和文資料は、あくまでも TI 正規英語版をご理解頂くための補助的参考資料としてご使用下 さい。製品のご検討およびご採用にあたりましては必ず正規英語版の最新資料をご確認下さい。TI および日本 TI は、正規英語 版にて更新の情報を提供しているにもかかわらず、更新以前の情報に基づいて発生した問題や障害等につきましては如何なる 責任も負いません JAJU124 23 直交エンコーダ・インターフェイス (QEI) 直交エンコーダは 2 チャネル・インクリメンタル・エンコーダとも呼ばれ、リニア変位をパルス信号に変換します。2 つ の信号のパルス数と相対位相の両方を監視することで、位置や回転方向や速度を追跡できます。さらに、第 3 の チャネル、つまりインデックス信号を使用して、位置カウンタをリセットすることもできます。 LM3S9B96 マイクロコントローラは、2 つの直交エンコーダ・インターフェイス(QEI)モジュールを備えています。それ ぞれの QEI モジュールでは直交エンコーダ・ホイールの生成するコードを解釈して、時間の経過とともに位置情報を 積分し、回転方向を判定します。さらに、エンコーダ・ホイールの動作速度の概算値をキャプチャすることも可能 です。 Stellaris ® LM3S9B96 マイクロコントローラには QEI モジュールが 2 つ含まれており、次に挙げる機能により、2 つ のモーターを同時に制御することを可能にします。 ■ エンコーダの位置を追跡する位置積分器(position integrator) ■ 入力に対するプログラマブル・ノイズ・フィルタ ■ 組み込みタイマを使用した速度キャプチャ ■ QEI 入力の入力周波数を、最大でプロセッサ周波数の 1/4 (例: 50MHz のシステムの場合は 12.5MHz)にすること が可能 ■ 次の場合に割り込みを生成 – インデックス・パルス – 速度タイマ周期割り込み – 回転方向転換 – 位相エラー検出 23.1 ブロック図 図 23-1 は、Stellaris® QEI モジュールのブロック図です。 Stellaris LM3S9B96 Microcontroller Data Sheet (Rev. D) 23 章 翻訳版 図 23-1. QEI のブロック図 23.2 信号の説明 表 23-1 と表 23-2 には QEI モジュールの外部信号と、各信号の機能の説明が記載されています。QEI 信号はいく つかの GPIO 信号の代替機能であり、リセット時のデフォルトは GPIO 信号になります。下表中にある「ピン・マルチ プレクシング/ピン割り当て」という見出しの列には、各 QEI 信号として割り当て可能な GPIO ピンが記載されています。 QEI 機能を選択するには、GPIO 代替機能選択(GPIOAFSEL)レジスタにある AFSEL ビットを設定する必要があり ます。カッコ内の数字は、指定された GPIO ポート・ピンに QEI 信号を割り当てるために、GPIO ポート制御 (GPIOPCTL) レ ジ ス タ の PMCn フ ィ ー ル ド 中 に 設 定 す る 値 で す 。 GPIO の 構 成 の 詳 細 に つ い て は 、 “General-Purpose Input/Outputs (GPIOs)”を参照してください。 表 23-1. QEI の信号(100LQFP) ピン 名称 IDX0 IDX1 PhA0 ピン番号 10 72 90 92 100 61 84 11 25 95 ピン・マルチプレク シング / ピン割り 当て PD0 (3) PB2 (2) PB6 (5) PB4 (6) PD7 (1) PF1 (2) PH2 (1) PD1 (3) PC4 (2) PE2 (4) 入出力 バッファの タイプa I TTL QEI モジュール 0 インデックス I TTL QEI モジュール 1 インデックス I TTL QEI モジュール 0 位相 A 説明 PhA1 96 PE3 (3) I TTL QEI モジュール 1 位相 A PhB0 22 23 47 83 96 11 36 95 PC7 (2) PC6 (2) PF0 (2) PH3 (1) PE3 (4) PD1 (11) PG7 (1) PE2 (3) I TTL QEI モジュール 0 位相 B I TTL QEI モジュール 1 位相 B PhB1 a. 「TTL」は、ピンが TTL 互換の電圧レベルを持つことを示します。 表23-2. QEIの信号(108BGA) ピン 名称 G1 A11 A7 A6 A2 H12 D11 ピン・マルチプレク シング / ピン割り 当て PD0 (3) PB2 (2) PB6 (5) PB4 (6) PD7 (1) PF1 (2) PH2 (1) G2 L1 A4 L2 M2 M9 D10 B4 G2 C10 A4 PD1 (3) PC4 (2) PE2 (4) PC7 (2) PC6 (2) PF0 (2) PH3 (1) PE3 (4) PD1 (11) PG7 (1) PE2 (3) ピン番号 IDX0 IDX1 PhA0 PhB0 PhB1 入出力 バッファの タイプa I TTL QEI モジュール 0 インデックス I TTL QEI モジュール 1 インデックス I TTL QEI モジュール 0 位相 A I TTL QEI モジュール 0 位相 B I TTL QEI モジュール 1 位相 B 説明 a. 「TTL」は、ピンが TTL 互換の電圧レベルを持つことを示します。 23.3 機能の説明 QEI モジュールでは、直交エンコーダ・ホイールの生成する 2 ビットのグレー・コードを解釈して、時間の経過とともに 位置情報を積分し、回転方向を判定します。さらに、エンコーダ・ホイールの動作速度の概算値をキャプチャすること も可能です。 位置積分器と速度キャプチャは個別にイネーブルにすることが可能ですが、位置積分器は速度キャプチャがイネー ブル可能になる前にイネーブルにする必要があります。QEI モジュールは 2 つの位相信号 PhA と PhB を交換して 解釈し、正転と逆転の意味を入れ替え、システムの誤配線を修正することも可能です。また、エンコーダによっては、 位相信号をクロック、方向信号を出力と解釈することも可能です。 QEI モジュールの入力信号にはデジタル・ノイズ・フィルタが備わっており、このフィルタをイネーブルにして誤動作を 防止できます。ノイズ・フィルタでは、エッジ検出回路を更新する前に、指定された数の連続クロック・サイクルの間、 入力が安定していることが必要になります。フィルタは QEI 制御(QEICTL)レジスタの FILTEN ビットによりイネーブル になります。入力更新(input update)の周波数は、QEICTL レジスタの FILTCNT ビット・フィールドを使用してプログ ラム可能です。 QEI モジュールでは、直交位相モードと、クロック/方向モードという 2 つの信号動作モードをサポートします。直交位 相モードでは、エンコーダにより 90 度位相のずれた 2 つのクロックが生成されるため、エッジ関係を利用して回転の 方向を判定できます。クロック/方向モードでは、ステップを示すクロック信号と、回転の方向を示す方向信号がエンコ ーダにより生成されます。このモードは、QEICTL レジスタ(P1111 参照)の SIGMODE ビットにより決定されます。 直交位相モードを使用するように QEI モジュールを設定する(SIGMODE ビットがクリアされる)場合は、位置積分器 用のキャプチャ・モードを設定して、PhA 信号のエッジごとに位置カウンタを更新したり、PhA と PhB 両方のエッジご とに更新したりするようにできます。位置カウンタを PhA エッジと PhB エッジのたびに更新すると、位置分解能は高く なりますが、位置カウンタの範囲がそれだけ狭くなります。 PhA のエッジが PhB のエッジより進んでいる場合は、位置カウンタの値が増加(インクリメント)します。PhB のエッジ が PhA のエッジより進んでいる場合は、位置カウンタの値が減少(デクリメント)します。立ち上がりエッジと立ち下が りエッジのペアが一方の位相に見られ、他方の位相にはエッジがない場合は、回転の方向が変化しています。 位置カウンタは、1. インデックス・パルスを検知した 2. 最大位置値に達したという 2 つの条件のどちらかが満たさ れた場合に、自動的にリセットされます。リセット・モードは、QEICTL レジスタの RESMODE ビットにより決定され ます。 RESMODE が設定された場合は、インデックス・パルスが検知されると位置カウンタがリセットされます。このモード により、位置カウンタが値[0:N-1]に制限されます。ここで N は、エンコーダ・ホイールが完全に一回転した時の位相 エッジの数です。QEI 最大位置値(QEIMAXPOS)レジスタを N-1 でプログラムして、位置 0 から逆方向に回転すると 位置カウンタの値が N-1 に移行します。このモードでは、位置レジスタには、一度インデックス・パルスがあることが 確認されたインデックス位置(つまりホーム位置)を示すエンコーダの絶対位置が入っています。 RESMODE がクリアされた場合は、位置カウンタの範囲が[0:M]に制約されます。ここで、M はプログラム可能な最 大値です。このモードでは、位置カウンタはインデックス・パルスを無視します。 速度キャプチャでは、速度タイマとカウント・レジスタを使用し、任意の周期内の位相エッジの数をカウントします。 直前の速度タイマ周期内のエッジ・カウントは QEI 速度(QEISPEED)レジスタを介してコントローラに利用され、その 間に QEI 速度カウンタ(QEICOUNT)レジスタには現在の速度タイマ周期内でのエッジ・カウント数が積算されていま す。現在の速度タイマ周期が完了すると直ちに、カウントされた全エッジ数が QEISPEED レジスタに上書きされてコ ントローラから使用可能になり、QEICOUNT レジスタがクリアされ、次の速度タイマ周期内のエッジ・カウントが開始 されます。任意の速度タイマ周期内にカウントされたエッジ数は、エンコーダの速度に正比例します。 図 23-2 は、Stellaris®直交エンコーダが位相入力信号を変換してクロック・パルスや方向信号にする様子と、速度プ レディバイダの動作(4 分周モード)を示しています。 図 23-2. 直交エンコーダと速度プレディバイダの動作 QEI タイマ・ロード(QEILOAD)レジスタで、タイマのロード値を指定することにより、タイマの周期を構成できます。タ イマがゼロに達すると割り込みをトリガすることが可能になり、ハードウェアによりタイマが QEILOAD 値でリロードさ れ、カウントダウンを続行します。エンコーダの速度が遅い場合は、意味のある結果を得るのに十分なエッジをキャ プチャするために、速度タイマ周期もそれだけ長くする必要があります。エンコーダの速度が速ければ、速度タイマ周 期も短くてすみ、そして/あるいは、速度プレディバイダを使用することも可能になります。 次の式では、速度カウンタ値を rpm 値に変換します。 ここで、 clock はコントローラのクロック速度、 ppr は物理エンコーダの 1 回転ごとのパルス数です。 QEICTLレジスタに設定されるキャプチャ・モード(CAPMODEのクリアは2、CAPMODE の設定は4) に基づいて、 edgesは2または4になります。 例として、600 rpmで動作するモーターを考えてみます。2048パルス/回転の直交エンコーダをそのモーターに取り付 けて、8192位相エッジ/回転を生成するようにします。速度プレディバイダ「÷1」(VELDIVがクリアされます)とし、PhA エッジとPhBエッジ両方でのクロッキングを使用すると、これは81,920パルス/秒(モーターが1秒に10回回転する)に なります。タイマが10,000Hzでクロッキングされていて、ロード値が2,500 (1秒の¼)の場合は、1回の更新につき 20,480パルスがカウントされます。上の式を使用すると、次のようになります。 ここで、モーターの速度を3000 rpmに上げてみることにします。すると、409,600パルス/秒、つまり1秒の¼ごとに 102,400という結果になります。再度上の式を使用すると、次のようになります。 この式の評価には注意が必要です。中間値が、32ビットで表される最大の整数値を超える可能性があるためです。 上の例では、クロックが10,000、ディバイダ(除数)が2,500ですが、(それらがコンパイル時の定数であれば)両方とも 100でプレディバイド(事前分周)して100および25にすることが可能です。つまり、それらがコンパイル時の定数であ れば、単純な4の倍数に簡約されて、エッジカウント係数「÷4」により約分できます。 重要: コンパイル時定数の係数(constant factors)を簡約することは、この式の中間値を制御し、この式の計算の 処理要件を減らすために最も適した方法です。 ディバイザ(約数)が2の累乗となるようなタイマ・ロード値を選択すると、分周(division)の必要が無くなります。これに より、分周の代わりに単純なシフトで済ますことが可能になります。エンコーダで2の累乗のパルス数/回転を使用し ている場合は、ロード値を2の累乗にすることが可能です。それ以外のエンコーダの場合は、積(product)が2の累乗 に非常に近くなるようにロード値を選択する必要があります。例えば100パルス/回転のエンコーダの場合は、ロード 値82を使用した結果ディバイザを32,800(2の14乗から0.09%の誤差)にすることができます。この場合、15ビットシフ トによりほとんどの分周値を用いる場合に対する十分な近似値が得られます。 絶対的な確度が必要になる場合は、 マイクロコントローラの分周命令を使用することもできます。 QEIモジュールでは、位相エラー、方向転換、インデックス・パルスの受信、速度タイマ周期といういくつかのイベント 時にコントローラ割り込みを生成できます。標準的なマスキング、未処理割り込みステータス、割り込みステータス、 割り込みクリアの各機能が提供されます。 23.4 初期化と構成 次の例は、直交エンコーダ・モジュールを構成して、絶対位置を読み戻す方法を示しています。 1. 0x0000.0100 という値をシステム制御モジュールの RCGC1 レジスタに書き込むことにより、QEI クロックをイネ ーブルにします。 2. システム制御モジュールの RCGC2 レジスタを介して、適切な GPIO モジュールに対してクロックをイネーブルに します。 3. GPIO モジュールで、GPIOAFSEL レジスタを使用して代替機能用の適切なピンをイネーブルにします。どの GPIO を構成するかを判断するには、表 25-4 を参照してください。 4. GPIOPCTL レジスタの PMCn フィールドを構成して、QEI 信号を適切なピンに割り当てます。(表 25-5 を参照) 5. 直交エンコーダを構成して、両方の信号でエッジをキャプチャし、インデックス・パルスでリセットを行うことで絶 対位置を保持します。1 ラインにつき 4 つのエッジがある 1000 ラインのエンコーダであれば、4000 パルス/回転 という結果になります。したがって、カウンタがゼロベースであるため、最大位置値を 3999 (0xF9F)に設定してく ださい。 ■ 0x0000.0018をQEICTLレジスタに書き込みます。 ■ 0x0000.0F9FをQEIMAXPOSレジスタに書き込みます。 6. QEICTLレジスタのビット0を設定することにより、直交エンコーダをイネーブルにします。 7. エンコーダ位置が要求されるまで待機します。 8. QEI位置(QEIPOS)レジスタの値を読み出すことにより、エンコーダ位置を読み取ります。 23.5 レジスタ・マップ 表23-3は、QEIレジスタのリストです。記載されているオフセットはレジスタのアドレスに対する16進インクリメントであ り、モジュールのベース・アドレスに関連しています。 ■ QEI0: 0x4002.C000 ■ QEI1: 0x4002.D000 QEI モジュールのクロックは、レジスタがプログラム可能になる前にイネーブルにする必要があることに注意してくだ さい。 表 23-3. QEI のレジスタ・マップ オフセット 0x000 名前 QEICTL タイプ R/W リセット 0x0000.0000 説明 QEI 制御 0x004 QEISTAT RO 0x0000.0000 QEI ステータス 0x008 QEIPOS R/W 0x0000.0000 QEI 位置 0x00C QEIMAXPOS R/W 0x0000.0000 QEI 最大位置値 0x010 QEILOAD R/W 0x0000.0000 QEI タイマ・ロード 0x014 QEITIME RO 0x0000.0000 QEI タイマ 0x018 QEICOUNT RO 0x0000.0000 QEI 速度カウンタ 0x01C QEISPEED RO 0x0000.0000 QEI 速度 0x020 QEIINTEN R/W 0x0000.0000 QEI 割り込みイネーブル 0x024 QEIRIS RO 0x0000.0000 QEI ロウ割り込みステータ ス 0x028 QEIISC R/W1C 0x0000.0000 QEI 割り込みステータスお よびクリア 23.6 レジスタの説明 このセクションの以降のページでは、QEI のレジスタをアドレス・オフセットの番号順に記載し、説明します。 レジスタ 1: QEI 制御 (QEICTL)、オフセット 0x000 このレジスタには、QEI モジュールの設定が入っています。直交エンコーダ・ブロックと速度キャプチャ・ブロックには セパレート・イネーブル(separate enables)が備わっており、速度をキャプチャするには直交エンコーダをイネーブル にする必要がありますが、速度を必要としないアプリケーションでは速度のキャプチャは必要ありません。位相信号 の解釈、位相の交換、位置更新モード、位置リセット・モード、速度プレディバイダは、すべてこのレジスタを介して設 定されます。 QEI 制御 (QEICTL) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x000 タイプ R/W、リセット 0x0000.0000 ビット / フィールド 31:20 名称 タイプ リセット 予約 RO 0x000 19:16 FILTCNT R/W 0x0 説明 予約ビットの値はソフトウェアで使用しないでください。将来の 製品との互換性のため、予約ビットの値はリード・モディファ イ・ライト処理から保護する必要があります。 入力フィルタのプリスケールのカウント このフィールドは、入力更新の周波数を制御します。 このフィールドがクリアされると、入力が 2 システム・クロック後 にサンプリングされます。このフィールドが 0x1 の場合は、入力 が 3 システム・クロック後にサンプリングされます。同様に、この フィールドが 0xF の場合は、入力が 17 クロック後にサンプリン グされます 13 12 FILTEN STALLEN R/W R/W 0 0 入力フィルタのイネーブル 値 説明 0 QEI 入力はフィルタリングされません。 1 QEI 入力信号上でデジタル・ノイズ・フィルタをイネ ーブルにします。エッジ検出回路が更新される前 に、入力が、連続した 3 クロック・エッジの間安定し ている必要があります。 QEI の停止 値 説明 0 デバッガによりマイクロコントローラが停止しても、 QEI モジュールは停止しません。 1 デバッガによりマイクロコントローラが停止すると、 QEI モジュールは停止します。 11 10 9 8:6 INVI INVB INVA VELDIV R/W R/W R/W R/W 0 0 0 0x0 インデックス・パルスの反転 値 説明 0 影響なし 1 IDX 入力を反転します。 PhB の反転 値 説明 0 影響なし 1 PhB 入力を反転します。 PhA の反転 値 説明 0 影響なし 1 PhA 入力を反転します。 プレディバイダ速度 このフィールドは、QEICOUNT アキュムレータに加算される前 に、入力された直交パルスのプレディバイダを定義します。 値 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 5 4 3 2 1 VELEN RESMODE CAPMODE SIGMODE SWAP R/W R/W R/W R/W R/W 0 0 0 0 0 プレディバイダ ÷1 ÷2 ÷4 ÷8 ÷16 ÷32 ÷64 ÷128 キャプチャ速度 値 説明 0 影響なし 1 直交エンコーダの速度のキャプチャをイネーブルに します。 リセット・モード 値 説明 0 位置カウンタは、QEIMAXPOS レジスタの MAXPOS フィールドで定義された通りに、最大値に 達した時点でリセットされます。 1 インデックス・パルスがキャプチャされた時点で位 置カウンタがリセットされます。 キャプチャ・モード 値 説明 0 PhA エッジのみがカウントされます。 1 PhA エッジと PhB エッジがカウントされることによ り、位置分解能が 2 倍になりますが、範囲は 1/2 に なります。 信号モード 値 説明 0 PhA 信号と PhB 信号が、直交位相信号として動作 します。 1 PhA 信号と PhB 信号が、クロックおよび方向として 動作します。 交換信号 値 説明 0 影響なし 1 PhA 信号と PhB 信号を交換します。 0 ENABLE R/W 0 QEI のイネーブル 値 説明 0 影響なし 1 直交エンコーダ・モジュールをイネーブルにします。 レジスタ 2: QEI ステータス (QEISTAT)、オフセット 0x004 このレジスタでは、QEI モジュールの動作についてのステータスを提供します。 QEI ステータス (QEISTAT) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x004 タイプ RO、リセット 0x0000.0000 ビット / フィールド 31:2 名称 タイプ リセット 予約 RO 0x0000.000 1 DIRECTION RO 0 説明 予約ビットの値はソフトウェアで使用しないでください。将来の 製品との互換性のため、予約ビットの値はリード・モディファ イ・ライト処理から保護する必要があります。 回転の方向 エンコーダが回転している方向を示します。 0 ERROR RO 0 値 説明 0 エンコーダは正方向に回転しています。 1 エンコーダはエンコーダは逆方向に回転していま す。 エラーの検出 0 エラーなし 1 グレー・コード列でエラーが検出されました(つまり、 両方の信号が同時に変化しています) レジスタ 3: QEI 位置 (QEIPOS)、オフセット 0x008 このレジスタには、位置積分器の現在の値が入っています。値は QEI 位相信号入力のステータスにより更新され、こ のレジスタへの書き込みことにより特定の値に設定できます。 QEI 位置 (QEIPOS) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x008 タイプ R/W、リセット 0x0000.0000 ビット / フィールド 31:0 名称 タイプ POSITION R/W リセット 説明 0x0000.0000 現在の位置積分器の値 位置積分器の現在の値です。 レジスタ 4: QEI 最大位置値 (QEIMAXPOS)、オフセット 0x00C このレジスタには、位置積分器の最大値が入っています。正方向に動いている場合に位置レジスタがこの値を超え てインクリメントすると、リセットされてゼロになります。逆方向に動いている場合に位置レジスタがゼロからデクリメン トされると、リセットされてこの値になります。 QEI 最大位置値 (QEIMAXPOS) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x00C タイプ R/W、リセット 0x0000.0000 ビット / フィールド 31:0 名称 タイプ MAXPOS R/W リセット 説明 0x0000.0000 積分器の最大位置値 位置積分器の最大値です。 レジスタ 5: QEI タイマ・ロード (QEILOAD)、オフセット 0x010 このレジスタは、速度タイマのロード値が入っています。この値は、タイマがゼロになった後のクロック・サイクルでタ イマにロードされるため、必要な周期のクロック数よりも1少ないです。したがって、例えば時間周期あたりのクロック 数を10進数で2000クロックにするには、このレジスタに10進数1999が入っている必要があります。 QEI タイマ・ロード (QEILOAD) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x010 タイプ R/W、リセット 0x0000.0000 ビット / フィールド 31:0 名称 タイプ LOAD R/W リセット 説明 0x0000.0000 速度タイマのロード値 速度タイマのロード値です。 レジスタ 6: QEI タイマ (QEITIME)、オフセット 0x014 このレジスタには、速度タイマの現在値が入っています。このカウンタは、QEICTLレジスタのVELENビットがクリア になっている場合はインクリメントされません。 QEI タイマ (QEITIME) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x014 タイプ RO、リセット 0x0000.0000 ビット / フィールド 31:0 名称 タイプ TIME RO リセット 説明 0x0000.0000 速度タイマの現在値 速度タイマの現在値です。 レジスタ 7: QEI 速度カウンタ (QEICOUNT)、オフセット 0x018 このレジスタには、現在の時間周期での速度パルスの動作中カウントが入っています。このカウントは動作中の合計 であるため、適用対象の時間周期を正確に知ることはできません(つまり、QEITIMEレジスタによって返される時間 にこのレジスタの読み出しが対応している必要は必ずしもありません。どちらかの値が変化した可能性のある時間 は、2つの読み出し間にはわずかしか存在しないためです)。実際のエンコーダ速度を判定するには、QEISPEEDレ ジスタを使用する必要があります。このレジスタは情報目的でのみ提供されます。このカウンタは、QEICTLレジスタ のVELENビットがクリアになっている場合はインクリメントされません。 QEI 速度カウンタ (QEICOUNT) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x018 タイプ RO、リセット 0x0000.0000 ビット / フィールド 31:0 名称 タイプ COUNT RO リセット 説明 0x0000.0000 速度パルスのカウント この速度タイマ周期中の、エンコーダ・パルスの動作中の合計 です。 レジスタ 8: QEI 速度 (QEISPEED)、オフセット 0x01C このレジスタには、直近で測定された直交エンコーダの速度が入っています。この値は、直前の速度タイマ周期でカ ウントされた速度パルスの数に対応しています。このレジスタは、QEICTLレジスタのVELENビットがクリアになって いる場合は更新されません。 QEI 速度 (QEISPEED) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x01C タイプ RO、リセット 0x0000.0000 ビット / フィールド 31:0 名称 タイプ SPEED RO リセット 説明 0x0000.0000 速度 直交エンコーダの速度の測定値です。(単位: パルス/周期) レジスタ 9: QEI 割り込みイネーブル (QEIINTEN)、オフセット 0x020 このレジスタには、各QEIモジュール割り込みのイネーブルが入っています。このレジスタの対応するビットが設定さ れると、割り込みコントローラに対して割り込みがアサートされます。 QEI 割り込みイネーブル (QEIINTEN) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x020 タイプ R/W、リセット 0x0000.0000 ビット / フィールド 31:4 名称 タイプ リセット 予約 RO 0x0000.000 3 INTERROR R/W 0 2 1 0 INTDIR INTTIMER INTINDEX R/W R/W R/W 0 0 0 説明 予約ビットの値はソフトウェアで使用しないでください。将来の 製品との互換性のため、予約ビットの値はリード・モディファ イ・ライト処理から保護する必要があります。 位相エラー割り込みイネーブル 値 説明 1 QEIRIS レジスタの INTERROR ビットが設定され ると、割り込みコントローラに割り込みが送信されま す。 0 INTERROR 割り込みは抑止され、割り込みコント ローラに送られません。 回転方向転換割り込みイネーブル 値 説明 1 QEIRIS レジスタの INTDIR ビットが設定されると、 割り込みコントローラに割り込みが送信されます。 0 INTDIR 割り込みは抑止され、割り込みコントローラ に送られません。 速度タイマ割り込みイネーブル 値 説明 1 QEIRIS レジスタの INTTIMER ビットが設定される と、割り込みコントローラに割り込みが送信されま す。 0 INTTIMER 割り込みは抑止され、割り込みコントロ ーラに送られません。 インデックス・パルス検出割り込みイネーブル 値 説明 1 QEIRIS レジスタの INTINDEX ビットが設定される と、割り込みコントローラに割り込みが送信されま す。 0 INTINDEX 割り込みは抑止され、割り込みコントロ ーラに送られません。 レジスタ 10: QEI 未処理割り込みステータス (QEIRIS)、オフセット 0x024 このレジスタは、(QEIINTENレジスタを介して設定された)コントローラに対してアサートされる割り込みを発生させる かどうかにかかわらず、アサートされた割り込みソースのステータスを提供します。 ビットが設定されている場合は、ラッチされたイベントが発生しています。ビットがクリアになっている場合は、対応す るイベントは発生していません。 QEI 未処理割り込みステータス (QEIRIS) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x024 タイプ RO、リセット 0x0000.0000 ビット / フィールド 31:4 名称 タイプ リセット 予約 RO 0x0000.000 3 INTERROR RO 0 説明 予約ビットの値はソフトウェアで使用しないでください。将来の 製品との互換性のため、予約ビットの値はリード・モディファ イ・ライト処理から保護する必要があります。 位相エラーの検出 値 説明 1 位相エラーが検出されました。 0 割り込みは発生していません。 このビットは、QEIISC レジスタの INTERROR ビットに 1 を書き 込むことでクリアされます。 2 INTDIR RO 0 回転方向転換の検出 値 説明 1 回転方向が変化しました。 0 割り込みは発生していません。 このビットは、QEIISC レジスタの INTDIR ビットに 1 を書き込む ことでクリアされます。 1 INTTIMER RO 0 速度タイマ割り込み 1 速度タイマがタイマ・ロード値になりました。 0 割り込みは発生していません。 このビットは、QEIISC レジスタの INTTIMER ビットに 1 を書き 込むことでクリアされます。 0 INTINDEX RO 0 インデックス・パルスのアサート 値 説明 1 インデックス・パルスが発生しました。 0 割り込みは発生していません。 このビットは、QEIISCレジスタのINTINDEXビットに1を書き込 むことでクリアされます。 レジスタ 11: QEI 割り込みステータスおよびクリア (QEIISC)、オフセット 0x028 このレジスタは、コントローラに対してアサートされた割り込みソースの現時点のセットを提供します。ビットが設定さ れている場合は、ラッチされたイベントが発生していて、そのイベントによる割り込みの生成がイネーブルになってい ます。ビットがクリアになっている場合は、対応するイベントが発生していないか、そのイベントによる割り込みの生成 がイネーブルになっていません。このレジスタはR/W1Cであり、あるビット位置に1を書き込むと、そのビットおよび対 応する割り込みがクリアされます。 QEI 割り込みステータスおよびクリア (QEIISC) QEI0 ベース: 0x4002.C000 QEI1 ベース: 0x4002.D000 オフセット 0x028 タイプ R/W1C、リセット 0x0000.0000 ビット / フィールド 31:4 名称 タイプ リセット 予約 RO 0x0000.000 3 INTERROR R/W1C 0 説明 予約ビットの値はソフトウェアで使用しないでください。将来の 製品との互換性のため、予約ビットの値はリード・モディファ イ・ライト処理から保護する必要があります。 位相エラー割り込み 値 説明 1 QEIRIS レジスタと QEIINTEN レジスタの INTERROR ビットが設定され、割り込みコントロー ラに割り込みを提供します。 0 割り込みが発生していないか、マスクされていま す。 このビットは、1 を書き込むことでクリアされます。このビットをク リアすると、QEIRIS レジスタの INTERROR ビットもクリアされ ます。 2 INTDIR R/W1C 0 回転方向転換割り込み 値 説明 1 QEIRIS レジスタと QEIINTEN レジスタの INTDIR ビットが設定され、割り込みコントローラに割り込み を提供します。 0 割り込みが発生していないか、マスクされていま す。 このビットは、1 を書き込むことでクリアされます。このビットをク リアすると、QEIRIS レジスタの INTDIR ビットもクリアされま す。 1 INTTIMER R/W1C 0 速度タイマ割り込み 値 説明 1 QEIRIS レジスタと QEIINTEN レジスタの INTTIMER ビットが設定され、割り込みコントローラ に割り込みを提供します。 0 割り込みが発生していないか、マスクされていま す。 このビットは、1 を書き込むことでクリアされます。このビットをク リアすると、QEIRIS レジスタの INTTIMER ビットもクリアされま す。 0 INTINDEX R/W1C 0 インデックス・パルス割り込み 値 説明 1 QEIRIS レジスタと QEIINTEN レジスタの INTINDEX ビットが設定され、割り込みコントローラ に割り込みを提供します。 0 割り込みが発生していないか、マスクされていま す。 このビットは、1 を書き込むことでクリアされます。このビットをク リアすると、QEIRIS レジスタの INTINDEX ビットもクリアされま す。
© Copyright 2025 ExpyDoc