SPxDT_IRQ ( SPORTx DMA Transmit Interrupt )はSPORT送信DMAチャンネルが発生した割り込みをクリアします。
ADSP-2191のコアは内蔵ペリフェラルの割り込みをレベルとして受け付けます。割り込みをクリアするにはペリフェラルごとに割り込み信号を何らかの方法でクリアします。SPORT送信DMAの場合割り込みをクリアするにはSPxDT_IRQのbit1に1を書き込みます。
SPORTが3系統あるため、SP0DT_IRQ、SP1DT_IRQ、SP2DT_IRQの三本が用意されています。
このレジスタは図1のような構造をもっています。初期値は0です。
図1 SPxDT_IRQレジスタの構造
各ビットの意味は以下のとおりです。
C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。SPxDT_IRQにアクセスする前には必ずIOPGにSPORTx_Control_Pageを設定してください。SPORTはポートごとにIOページが異なりますので注意が必要です。
SPORT0の場合は以下のとおりです。
// #include <sysreg.h> // #include <def2191.h> sysreg_write(sysreg_IOPG, SPORT0_Controller_Page) // SPORT0ページに設定 io_space_write(SP0DT_IRQ, 値) // SP0DT_IRQに値を設定 変数 = io_space_read(SP0DT_IRQ) // SP0DT_IRQの値を取得
SPORT1の場合は以下のとおりです。
// #include <sysreg.h> // #include <def2191.h> sysreg_write(sysreg_IOPG, SPORT1_Controller_Page) // SPORT1ページに設定 io_space_write(SP1DT_IRQ, 値) // SP1DT_IRQに値を設定 変数 = io_space_read(SP1DT_IRQ) // SP1DT_IRQの値を取得
SPORT2の場合は以下のとおりです。
// #include <sysreg.h> // #include <def2191.h> sysreg_write(sysreg_IOPG, SPORT2_Controller_Page) // SPORT2ページに設定 io_space_write(SP2DT_IRQ, 値) // SP2DT_IRQに値を設定 変数 = io_space_read(SP2DT_IRQ) // SP2DT_IRQの値を取得
アナログデバイセズが配布しているmcmの中のビット定義ファイルdef2191bit.hから関連するビット定義部分をここに引用します。
// Definition for xxxD_IRQ #define DERI BIT_1 #define DCOMI BIT_0
項目 | マニュアルのページ等 |
---|---|
説明 | HR B-27 |
DMAの解説 | HR 6-1 |
DMA開始手続き | HR 6-6 |