100KHzまでの三角波を出力したい


お世話になります。

RX63T(100pin)にて、
100KHzまでの三角波を出す検討をしております。


現状、MTUを2ch(以後①,②と表現)使用し、
①を②への入力トリガーとして矩形波を出力し、
②では①の入力トリガーにより割り込みが上がった際に、
その割り込み内で1~1023までの数値をDA変換し三角波を出力しております。

しかし、この時のDA変換に1us程度の処理時間が必要なため、
実力値として最大でも390Hz程度の三角波しか出力できず、
求めている性能には程遠い状態です。

そこで、より性能が出る方法がその他にないかご教授いただければと思い、
投稿させていただきました。

些細な情報でもそれをキーワードに調べていきたいと考えておりますので、
どうぞよろしくお願いいたします。

  • DA変換1usで、最大の分解能を目指すと、
    三角波上り 1024 step + 下り 1024 step = 2048 step
    1周期は 約2ms
    これだと、約500Hzが限界という事になります。
    分解能を下げて(傾斜が少しがたつきますが)対応するしかなさそうに見えます。

  • わわいです
    1.DA変換に時間がかかるってのはどーしよーもないので、そこをもっと高速なDAコンバータに変える
    2.ファンクションジェネレータICなどを使って、CPUからコントロールするようにする
    3.OPアンプなどで三角波発生回路を作り、CPUからコントロール
    などが考えられますが、
    なぜ三角波の必要があるのかなどの情報があればもっといい方法があるかもしれません
  • わたさん おはようございます。NAKAといいます。

    もしポートが10本くらい余裕があるのなら、D/Aを使わずに R-2Rラダーで出力しちゃうのはどうですか?
  • その三角波を何処で使うかによって、最適な回路は変わってきます。
     D/A変換だとギザギザになるけど、それが問題にならないか。
     振幅を細かく制御したいのか。
     周波数を可変したいのか。
     周波数精度が必要なのか。
     
     積分アンプに矩形波を入れれば三角波になる。これならギザギザは無い。
     
     分解能を下げるのが、手っ取り早い方法じゃないかな。
  • Higetakaさん、わわいさん
    いつもリプライいただきありがとうございます。

    >Higetakaさん
    おっしゃる通り、分解能を落とせば性能を上げることができます。
    こちらでも分解能を落として試していたのですが、
    新たな別問題として、DA変換をかけると出力値が出てくるまでの変換時間に多少ばらつきがありました。
    そのため出力される三角波も一定の周波数ではなく、ちらちらとちらついておりました。
    今回の目的では、マイコンからの出力波形は必ず一定の周波数である必要があるため、
    これを抑えるためには平均化等の追加処理が必要となり、
    ちょっとマイコンからの三角波を使用するのは今回は難しいかなぁと考え始めております。

    >わわいさん
    申し訳ございません。
    これは、現在開発中の案件に関わるため、詳細情報をお出しできないのです。

    現在は、いただいた回答を基に外付けのDAコンバータがないか探す、
    もしくは、回路を1つ追加して矩形波をなまらせる等で対処できないか検討しております。


    ひとまず、マイコン単体では目的を達成するのが難しそうであるため、
    本件は一旦Closeさせていただきます。
    誠にありがとうございました。
  • In reply to わた:

    NAKAさん、リカルドさん

    上記リプライを記載しておりましたので気づくのが遅くなりました。

    >NAKAさん
    勉強不足なもので、恥ずかしながらR-2Rラダーなるものを初めてお聞きしました。
    今少しググった結果、R-2Rラダーというものは回路である認識であっておりますでしょうか。
    もしあっている場合は、わわいさんへの返信の欄で記載しておりますが、
    回路を追加する方向で検討しておりますので、これも検討案の一つとして確認させていただこうと思います。
    有用な情報をありがとうございます。

    >リカルドさん
    アドバイスいただいた内容も考慮に入れ、検討を進めてまいります。

    お忙しい中ご回答いただきありがとうございます。
  • > しかし、この時のDA変換に1us程度の処理時間が必要なため、

    『RX63Tグループ データシート』の「5.6 D/A変換特性」に負荷容量 20pF の条件で変換時間は max 3.0μs とあるのでスペックはもっと低く見積もるべきです。

  • 10bit 精度の D/A 出力で 100kHz の三角波、というと単純に考えて 200MHz 程度の周波数でアナログ出力を制御するということになると思いますが 、最大 100MHz 動作の RX63T のスペック的にも無理だと思います。
  • In reply to fujita nozomu:

    fujita nozomuさん

    いつもコメントをつけていただきありがとうございます。
    max 3.0usの件はご指摘の通りで私も認識しております。

    性能を提示する際は3.0usで見積もった値を提示する予定でしたが、
    上記に報告させていただいた通りマイコン単体では実現が難しそうなので、
    別方法を再検討いたします。

    ありがとうございました。
  • In reply to わた:

    わたさん こんにちはNAKAです。
    >R-2Rラダーというものは回路である認識であっておりますでしょうか。
    ⇒回路といえば回路ですが、ただの抵抗ですよ。D/A変換器の中身みたいなもので、抵抗メーカ(パナ、進?)ならR2Rネットワーク抵抗でSMDやSIPなんかで出ていると思います。自分で抵抗を並べてもいいですが。
    www.iam-ele.co.jp/.../sipdip003.pdf⇒こんな感じ?
    ポート10個使えば10bit(1024)※わたさんが、「1~1023までの数値をDA変換し」とありましたので......16個使えば16bitというようにさらに分解能を上げることもできます。速度はほぼポートに出力する速度なので、結構いけそうな気がしますけど.....★訂正「10bit 精度の D/A 出力で 100kHz の三角波、というと単純に考えて 200MHz 程度の周波数でアナログ出力制御する」⇒結構きびしそう!DSP?FPGA?
    マイコン単体ではないので、ちょっと面倒ですかね?

  • In reply to NAKA:

    横から失礼します。
    うーん、どちらかというとアナログが専門の私なのですが、100KHzというと実は結構な速度でして、現在ならばワンチップマイコン単体で出力するのはまず無理ですね。
    しかも三角波…
    私が設計するならば、ヒューマンインターフェース用の規模の小さいマイコンとDSPチップですね。
  • In reply to NAKA:

    NAKAさん、パールマンさん

    おはようございます。
    わたです。

    >NAKAさん
    詳細にご説明いただきありがとうございます。
    その後調査した結果、マイコン単体で実現するにはDA変換が必須であるため、
    性能面で実現不可と判断し、回路を追加する方向で検討しております。
    現状、PWM出力に対してローパスフィルタを通すか、外付けの高速なDA変換ICをつけて対応しようかなぁと
    考えており、いただいた情報はDA変換ICの別案として調査させていただきます。

    >パールマンさん
    コメントいただきありがとうございます。
    まずは上記の方針で検討しようかと考えております。
    また何かありましたら質問させていただきますので、
    その際はどうぞよろしくお願いいたします。
  • In reply to わた:

    わたさん
    PWMだとDAよりも1データを出力するのに時間がかかるので、対象外かなと思います。
    PWMの分解能が8ビットだと、1データの周期=256/32MHz=8usecとなります。

  • In reply to わた:

    三角波生成回路でよく見かける「矩形波生成+積分回路」の構成で、矩形波部分をマイコンにして、積分回路だけ加えるというのはどうでしょう。
  • Kirinさん
    勝手に矩形波と同じであろうと思い込んでおり、
    PWMの分解能まで確認しておりませんでした。
    ご指摘ありがとうございます。
    確認します。

    Higetakaさん
    >矩形波部分をマイコンにして、積分回路だけ加えるというのはどうでしょう
    上記も検討していたのですが、こちらの環境で確認する限り出力結果が
    期待値から減衰しているように見受けられたため、別案の外付けDA変換を検討し、
    机上では性能を満たせそうだとの結論に向かっております。

    今後もまだまだ課題は出てきそうではありますが、
    ひとまずは行ける目処がたってきたところとなります。
    コメントありがとうございました。