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です。

    RX71Mのハードウェアマニュアル(画面コピー)のDTCの割り込みの説明とINTCのブロック図を見る限り、どうして「最初の一回は④で書き込んだデータの転送終了時」に送信バッファエンプティ割り込みが発生するのか、不思議ですね、、、もう少しハードウェアマニュアルを見てみます、、、

    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r01uh0493jj0110-rx71m.pdf
    今回は前者の設定ですね

    割り込み要因の伝播経路(推測)からは最初の一回目の挙動は不思議ですね(ただ、ブロック図はブロック図、ですが、、、)

Reply
  • anonyさん、こんにちは。NoMaYです。

    RX71Mのハードウェアマニュアル(画面コピー)のDTCの割り込みの説明とINTCのブロック図を見る限り、どうして「最初の一回は④で書き込んだデータの転送終了時」に送信バッファエンプティ割り込みが発生するのか、不思議ですね、、、もう少しハードウェアマニュアルを見てみます、、、

    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r01uh0493jj0110-rx71m.pdf
    今回は前者の設定ですね

    割り込み要因の伝播経路(推測)からは最初の一回目の挙動は不思議ですね(ただ、ブロック図はブロック図、ですが、、、)

Children
No Data