エッジアラインPWMとセンターアラインPWMコントローラーの動作を理解するために、それぞれを簡略化したPWMコントローラーをverilog言語で作成し、シミュレーションして動作を確認してみましょう(図4)
この例では下記の設定で動作を確認してみます。
周期レジスタ値:5
比較レジスタ値:3
エッジアラインPWMでは、タイマーカウンタレジスタは「0,1,2,3,4,5,0,1,2,3,4,5,…」とカウント動作を繰り返します。タイマーカウンタレジスタが周期レジスタ値と同じ値になった後はカウンタがクリアされて「0」になります。
センターアラインPMWでは、タイマーカウンタレジスタは「0,1,2,3,4,5,4,3,2,1,….」とカウント動作を繰り返します。タイマーカウンタレジスタが周期レジスタ値と同じ値になった後、カウンタ動作はアップカウント動作からダウンカウント動作に変更されています。アップ/ダウン方向FFの値が0の時はアップカウント動作、1の時はダウンカウント動作になっていることが分かります。
また、PWM出力信号は、どちらの方式でもタイマーカウンタレジスタの値が比較レジスタより小さい間はハイ、その他の場合はローとなります。PWM出力信号はPWM出力FFの値がタイマークロックによって更新されるため、出力値が1クロック遅れています。
センターアラインPWMの代表的な応用例としては3相永久磁石モーターの制御が挙げられます。3相モーター制御では、電力ステージを制御するために生成されるPWMとADCの読出し値を同期させる必要があります。これにより、電源スイッチに起因するリンギングから十分に離れた位置でADCの読出しが行われるようになります(図1)
Copyright © ITmedia, Inc. All Rights Reserved.