Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

タイマーRDのPWMデューティ比を0%設定

タイマーRD機能を使用してPWM出力を行っていますすが、

L期間の出力を設定でmデューティーを0%を出力設定する場合は

スレーブ >=(マスター+1)を設定するればよいのでしょうか。

例えば

マスターがTRDGRA0 = 0x063F;の場合

スレーブはTRDGRB0 は 0x0640を設定すればよいのでしょうか。

  • チョコです。
    はい,そのような設定例がマニュアルに記載されているはずです。
    例えば,RL78/G14やRL78/G1Fでは「図8 - 55 PWM機能の動作例(デューティ0%, デューティ100%)」に記載されていますので,そちらを参照してください。
  • In reply to チョコ:

    PWMの出力停止させるとき、必ずLOWレベルで停止させたいのですが、コンペアマッチで割り込み発生したときは、スレーブはLOWでしょうか。割り込み発生させる前にデューティを1%にして割り込み発生させてスレーブ設定を0x0640にすれば必ずLOWになるのでしょうか。教えてください。
  • In reply to bosssa:

    チョコです。
    >コンペアマッチで割り込み発生したときは、スレーブはLOWでしょうか。
    割り込み(INTTRDx)の要因として何を選択しているかで,割り込みのタイミングが異なるようです。
    どの要因かを明確にしてください。
    また,PWM信号はアクティブ・レベルがLowとHighが選択できるので,どちらになっているかで異なります。
    設定を明確にしてもらわないとどのような出力になるかは断言できません。
    アクティ・レベルがHighであれば,0%デューティなら出力はLowになるはずです。
  • チョコです。

    RL78/G14(QB-R5F104LE-TB)で実際のTMRD0によるPWM出力を確認してみました。

    大きな流れを確認するために,PWM出力をCSIのマスタ受信のSI00に接続してサンプリングしながら,デューティを変化(TRDGRB0の値を大きくする)し,

    周期(TRDGRA0)より大きな値になるようにしました。TRDGRB0の値(実際にはバッファレジスタのTRDGRD0の値)を書き換えるごとにブレークしてサンプリングして確認しました。

     

    確認で使用したプロジェクトと結果のPDFをzipに圧縮して添付しておきます。

     

    RL78G14_TRD_PWM.zip

  • In reply to チョコ:

    チョコです。

    プロジェクトの内容を少し変更しました。

    ・CSIの転送を割り込みからDTCに変更しました。

    ・TMRD0のデューティの初期値を+1して,周期+1になるように変更しました。

     

    割り込みより応答が速いので,サンプリングしたデータがよりきれいな間隔になりました。

     

     

    RL78G14_TRD_PWM 2.zip

  • In reply to チョコ:

    チョコです。

    悪のりついでに,CSI00をスレーブ受信に設定し,TM00から方形波を出力させてSCK00に入力するようにしました。

    今度は,SCK00入力が定周期になるので,より正確なPWM出力のサンプリングが可能になります。

    (オシロスコープをもっていないので,何とかポートを使ってサンプリングしていますが,対象の信号が1つだけなら,CSIを使ってサンプリングすることで,必要なRAMの容量を少なくしています。サンプリング(受信)したMSBファーストのデータをビット表示表示すると分かり易いくなります。)

     

    5148.RL78G14_TRD_PWM.zip

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page