RX62NでMTU2のPWM1モード利用時に出力しない側(TGRBもしくはTGRD)をGPIO出力として利用するのは問題ないか?

RX62NでMTU2をPWM1モードで利用しようとしています。

RX62Nのハードウェアリファレンスマニュアルに「PWM1モードではMTIOCnB(MTIOCnD)端子(n=チャネル番号)に波形が出力されないため、TIORを設定しても端子は初期化されません。」と書いてあり、ハードウェアの初期化時にTMDRレジスタをPWM1モードに設定することで、MTIOCnB(MTIOCnD)に該当する出力端子をI/Oの出力ポートとして利用を考えています。この利用方法に問題はありますでしょうか。

RX62Nのハードウェアリファレンスマニュアルに周辺モジュールのポートマルチプレクス優先順位について一覧表の記載はありましたが、上記のようなMTU2の動作モードによるI/Oポートとの組み合わせ利用について記載が見当たらなかった為、質問させていただきました。

ちなみにコードを書いた限り、一見期待する動作はしていますが、周辺モジュールのマルチプレクス端子の正しい使い方なのか、本来非推奨であり今後予期しないふるまいをするのか不明なのが現状です。

ピン数の少ないマイコンを利用する場合、周辺モジュールは利用したいが一般的なI/O入出力も極力確保したいニーズはあるかと思いますので、この辺りの解説を拡充してもらえますと幸いです。

 

 

Parents
  • マイコン側の機能としては、ポートファンクションレジスタでI/Oと周辺機能を切り替えています。
    単純に考えると、I/OとMTUの切り替えはここに集約されているので、MTUが出力していようがいまいが、I/OにしてしまえばI/Oになると思います。後はそのピンに接続されているハードがおかしくならないようにファームで制御すれば良いのではないでしょうか。
    あるピンに複数の周辺機能が割り当てられている場合で、さらに複数のポートファンクションレジスタでそれぞれの周辺機能を選択した場合に、ポートマルチプレクス優先順位が関係してくると思います。

  • Higetaka様
    回答ありがとうございます。ポートファンクションレジスタはMTU2を複数有効に設定した状態でかつ、MTIOCnB(MTIOCnD)の出力に該当するポートをGPIOの出力端子として初期値LOW出力で初期化しています。MTU2が優先度が高い状態でGPIO出力とポートマルチプレクスしている状態です。

    MTU2モジュールのPWM1モードまたはバッファモード以外に指定した時はMTU2がTIORレジスタの設定に応じてコンペアマッチの変化に基づく出力端子として使用すると理解しています。
    この端子のMTU2からの出力の有効無効がMTU2の動作モードにより切り替わるので、優先度の高いMTU2で出力無効にしている端子を優先度の低いGPIO出力で使っていいかどうかの裏付けになるような資料や解説が欲しいと考えています。

    MTU2から出力無効=MTU2として使っていない解釈でGPIO出力で使って大丈夫という裏付けになるものがどこかに書いてないか探している次第です。今までは使えていたけれどマイコンの改版等でやっぱり使えません的になるとまずいので確認したいのです。大丈夫かどうかは私の認識では他のモジュールとの関係というよりかはMTU2の仕様的なものと考えています。
Reply
  • Higetaka様
    回答ありがとうございます。ポートファンクションレジスタはMTU2を複数有効に設定した状態でかつ、MTIOCnB(MTIOCnD)の出力に該当するポートをGPIOの出力端子として初期値LOW出力で初期化しています。MTU2が優先度が高い状態でGPIO出力とポートマルチプレクスしている状態です。

    MTU2モジュールのPWM1モードまたはバッファモード以外に指定した時はMTU2がTIORレジスタの設定に応じてコンペアマッチの変化に基づく出力端子として使用すると理解しています。
    この端子のMTU2からの出力の有効無効がMTU2の動作モードにより切り替わるので、優先度の高いMTU2で出力無効にしている端子を優先度の低いGPIO出力で使っていいかどうかの裏付けになるような資料や解説が欲しいと考えています。

    MTU2から出力無効=MTU2として使っていない解釈でGPIO出力で使って大丈夫という裏付けになるものがどこかに書いてないか探している次第です。今までは使えていたけれどマイコンの改版等でやっぱり使えません的になるとまずいので確認したいのです。大丈夫かどうかは私の認識では他のモジュールとの関係というよりかはMTU2の仕様的なものと考えています。
Children
  • ユーザーズマニュアルの18.7.2に「汎用入出力ポートに非アクティブレベルを出力する設定をしておき、更に MTU の端子出力を禁止し、汎用出力ポートとすることで端子に非アクティブレベルを出力してください。」とあるので、MTUのTIORを出力禁止にすれば、GPIOになるという解釈で良いのではないでしょうか。モード切り替えによる間接的な禁止動作は良くわかりません。問い合わせ窓口に聞いた方が早そうです。