MTUA.TSTR.BIT.CST0 = 1;
ユニット 0 はチャネル 3 と 4 を組み合わせて使用
デッドタイムの設定
カウント値
相補PWMモードの出力
時間
ユニット 0 はチャネル 3 と 4 を組み合わせて使用
正相用のカウンタ 逆相用のカウンタ
カウント値
電圧 正相の出力 デューティ比の設定×3
→ 3相の相補PWM出力が可能
プログラムサンプル(3) 相補PWMモード仕様
■相補PWMモードのプログラム例
キャリア周期が400μsで、デューティ比が10%から90%の間を10%刻みで変化する 相補PWM信号を出力します。
仕様
・動作モード 相補PWMモード
・クロックソース PCLK[48MHz]
・カウントスタート ソフトウェアスタート
・割り込み 山の割り込み
・キャリア周期 400μsec
・デッドタイム 4μsec
・出力端子 MTIOC4B-B、MTIOC4D-B端子
・出力アクティブ アクティブロー
プログラム・フローチャート
リセットスタート
スタートアップルーチン
main
init_MTU_PWM
相補PWMモード3に設定init_MTU_Excep MTUの例外処理の設定
start_MTU
MTUのカウンタを起動 setpsw_i(組み込み関数)
割り込み許可 初期化
カウント開始
TGIA3割り込み関数 (Excep_MTU3_TGIA3)
RTE
デューティ比の変更
PWM出力
相補PWMモードの初期化のフロー
端子の設定
カウンタクロックの選択 カウンタの初期値の設定
キャリア周期の設定 デューティ比の設定
初期化終了 相補PWMモード設定
バッファ動作の設定 波形出力の許可 初期化開始
モジュールストップ解除
デッドタイムの設定
A
A
インプットキャプチャの サンプルと同じ
相補PWMモードの出力端子
正相
逆相
正相 逆相 正相 逆相
ポートファンクションレジスタC(PFCMTU)
PWM出力端子1(正、逆)
PWM出力端子2(正、逆)
PWM出力端子3(正、逆)
カウンタクロックの選択とカウント値の設定
ビット
のカウンタの初期値
チャネル 4 = 0 < 16
【正相】
ビット
定値 バッファレジスタの設
周期データレジスタ、 9600 16
2 ] s [ ] 400 MHz [
8
4 × µ = <
=
正相のキャリア周期(半周期分のカウント値)
ビット
のカウンタの初期値
チャネル 3 = 48 [ MHz ] × 4 [ µ s ] = 192 < 16
【逆相】
ビット
の設定値 のジェネラルレジスタ
チャネル 3 A, C = 9600 + 192 = 9792 < 16
【共通】
デューティ比
ビット の設定値
のジェネラルレジスタ
チャネル 4 B, D = 9600 × 10 [%] = 960 < 16
時間 カウント値
逆のキャリア周期(半周期分のカウント値)
タイマコントロールレジスタ(TCR)
同じ値を設定する
正相 逆相
リセット後は設定不要
タイマカウンタ(TCNT)
チャネル4のカウンタの初期値=0 チャネル3のカウンタの初期値=192
逆相
正相
相補PWMモードのバッファ動作
S/W で設定
コンペアレジスタ バッファレジスタ
自動的に転送
テンポラリレジスタ
タイマ周期データレジスタ(TCDR)とタイマ周期バッファレジスタ(TCBR)
正相のキャリア周期設定用のカウント値=9600
正相のキャリア周期
タイマジェネラルレジスタ(TGR)
PWM出力端子1の
デューティ比PWM出力端子3の
デューティ比PWM出力端子2の
デューティ比
逆相のキャリア周期
逆相のキャリア周期設定用のカウント値=9600+192
デューティ比設定用のカウント値 = 960
タイマデッドタイムデータレジスタ(TDDR)
デッドタイムのカウント値=192
キャリア周期の設定
相補PWMモードの初期化関数 ~デッドタイムの設定まで~
// Set PWM mode 3
MTU3.TMDR.BIT.MD = 0xf;
// Buffer is enabled
ドキュメント内
スライド 1
(ページ 44-58)