DTCを用いたRSPI通信時の割り込みについて

皆様

毎度お世話になっております。

 

RX71Mマイコンを使用して、DTCによりRSPIから32bitのデータを連続送受信することを試みています。

現時点でDTCが正常に起動して、実際に通信も起きていることが確認できたのですが、

CPUへの割り込みが2回発生してしまう問題があります。

DTCはFITモジュールを使用しており、CPU割り込みはDTCの全転送終了後に1度発生する設定にしてあります。

 

DTCの転送回数を2回や4回などに変更しても、同じようにCPU割り込みは2回発生しています。

 

通信の流れは以下のようにしています。

 

①RSPI0の割り込みを無効化

②DTC起動要因の設定(FITモジュールのR_DTC_Create, R_DTC_Control関数)

③RSPI0の割り込みを有効化

④RSPI.SPDR.LONGレジスタに最初の32bitデータを書き込み

 

④に関しては、現時点では送信バッファエンプティ割り込みを発生させるために、最初のデータはプログラムから手動で書き込んでいます。

 

割り込みのタイミングに関しては、

最初の一回は④で書き込んだデータの転送終了時、2回目はDTCの全転送終了時に発生しているようです。

 

自分の希望としては、最初の一回目の割り込みは発生しないようにして、2回目の割り込みだけを発生させるようにしたいのですが、

そのような方法はあるのでしょうか?

 

よろしくお願いいたします。

 

開発環境:CS+ for CC V7.00.00

使用デバイス: RX71M_RSK

Parents
  • anonyさん、こんにちは。NoMaYと申します。

    内蔵周辺機能には詳しく無くて、どこまでリプライ出来るか分からない(RSPIはループバックモードを動かした程度、DTCは未経験、RX71Mも未経験)ですけれども、気になったのは、以下の「最初の一回は④で書き込んだデータの転送終了時」に発生する割り込みなのですが、具体的には、何の割り込みなのでしょうか?(送信バッファエンプティ割り込み、アイドル割り込み、エラー割り込み、受信バッファフル割り込み、それ以外?、のどれでしょうか?)

    >最初の一回は④で書き込んだデータの転送終了時、2回目はDTCの全転送終了時に発生しているようです。

Reply
  • anonyさん、こんにちは。NoMaYと申します。

    内蔵周辺機能には詳しく無くて、どこまでリプライ出来るか分からない(RSPIはループバックモードを動かした程度、DTCは未経験、RX71Mも未経験)ですけれども、気になったのは、以下の「最初の一回は④で書き込んだデータの転送終了時」に発生する割り込みなのですが、具体的には、何の割り込みなのでしょうか?(送信バッファエンプティ割り込み、アイドル割り込み、エラー割り込み、受信バッファフル割り込み、それ以外?、のどれでしょうか?)

    >最初の一回は④で書き込んだデータの転送終了時、2回目はDTCの全転送終了時に発生しているようです。

Children
No Data