周辺モジュールからのDMA要求とDMAC起動要因フラグ制御レジスタについて

お世話になります。

RX66TのSCI11、DMA0、CMT3を使った調歩同期の送信を試しました。

CMT3のコンペアマッチ(ベクター番号31)でDMA0にリクエスト発生でSCI11.TDRへ1バイトのDMA0転送発生(外部端末にて確認済み)、ブレークポイントを設定することでDMA0転送終了割込み発生後にCMT3の割込みが発生を確認しました。

DMA0のDMAC起動要因フラグ制御レジスタ(DMCSL)には"0"を設定していますが、最後にCMT3割込みが発生します。
できればCMT3の割込みは発生させたくないのですが、DMCSLで抑制できないものでしょうか?

 

以下に来ました。

#pragma interrupt (Excep_CMT3_CMI3(vect=31, enable))
void Excep_CMT3_CMI3(void)
{
return;
}

Parents
  • NoMaY さん、おはようございます!

    >これは、ひょっとして、総転送データ数のDMA転送が終了して、DTEビットが自動的に1→0に戻った後に発生したCMT割り込み、だったりしませんか?(つまり、DMA転送の最後なのでは無くて、DMA転送が終了した更にその後なのではありませんか?)

    ビンゴでした!
    DMA終了割込みでCMT3を止めていませんでした。(^^;)

    今回の実験は上位割込みが20μS程度占有するため下位の送信割込みが最悪20μS遅延(延滞)するのを避けるために最初1バイトは必ずこの時刻で送信開始を守るための方法を探っていたのです。
    2バイト目以降は低位の送信割込みで続けるものです。

    ありがとうございました。
Reply
  • NoMaY さん、おはようございます!

    >これは、ひょっとして、総転送データ数のDMA転送が終了して、DTEビットが自動的に1→0に戻った後に発生したCMT割り込み、だったりしませんか?(つまり、DMA転送の最後なのでは無くて、DMA転送が終了した更にその後なのではありませんか?)

    ビンゴでした!
    DMA終了割込みでCMT3を止めていませんでした。(^^;)

    今回の実験は上位割込みが20μS程度占有するため下位の送信割込みが最悪20μS遅延(延滞)するのを避けるために最初1バイトは必ずこの時刻で送信開始を守るための方法を探っていたのです。
    2バイト目以降は低位の送信割込みで続けるものです。

    ありがとうございました。
Children
No Data