MTUを使ったパルス出力方法

最近ルネサスのマイコンを触り始めた初心者です。

ぜひ皆様のお力をおかしください。

 

現在 RX220 シリーズを使い、パルス出力を行おうと考えています。

出力されるパルスの周波数はリアルタイムで変化させていきたいのですが、変化させたい周波数の範囲が広く、16bit カウンタでは足りません。

そこで、カスケード接続を使い、32bit カウンタでパルス出力を行おうと思うのですが、如何せん仕様書を見てもよく理解できていません。

 

・コンベアマッチにて出力ピンをトグルしたい

・16bit のカウンタでは可変可能な周波数の範囲が狭い

・上記理由から 32bit タイマを使いたいと思い、MTU1・2 をカスケード接続する方法を試したい

・MTU2 のオーバーフローをトリガに MTU1 をカウントアップさせるが、MTU1 でコンベアマッチを設定すると上位ビットのみでの出力制御になってしまうのでは?

 

例えば、32bit でコンベアマッチできるとして、33FF00h でトグルするよう設定したい場合、MTU1 で 33h、MTU2 で FF00h と設定しても希望する動作にならないと思います。

この場合、MTU1 のカウンタが 33h に到達した時点で MTU1 で指定できるピンがトグルし、MTU2 のカウンタが FF00h に到達した時点で MTU2 で指定できるピンがトグルするという別々の動作が発生するだけだと思われます。

 

ある出力ピンを 32bit の値でコンベアマッチさせトグル出力するには、どういう方法が適切でしょうか?

教えていただければ幸いです。

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

Parents
  • ご回答いただいた皆様、ありがとうございました。
    私一人ではこの手の問題にぶつかると何時までも「カスケード接続した MTU 32bit を使った方法」に捕らわれてしまい、先に進めませんでした。
    的確かつ様々な解決策をご提示いただき、大変参考になりました。

    また問題にあたり、今後も解決策をご教示していただきたい事も出てくると思いますが、精進いたしますので何卒よろしくお願いします。
Reply
  • ご回答いただいた皆様、ありがとうございました。
    私一人ではこの手の問題にぶつかると何時までも「カスケード接続した MTU 32bit を使った方法」に捕らわれてしまい、先に進めませんでした。
    的確かつ様々な解決策をご提示いただき、大変参考になりました。

    また問題にあたり、今後も解決策をご教示していただきたい事も出てくると思いますが、精進いたしますので何卒よろしくお願いします。
Children
No Data