【PSMCとは】
PSMC(Programmable Switch Mode Controller)は高性能なPWMパルスを生成するモジュールで
従来のCCP/ECCPと比べると多機能なモジュールとなっていて下記のような特徴があります。
・高速クロック 専用に64MHzのクロックを内蔵しています。
・高分解能 タイマが16ビット
・柔軟な出力構成 相補、プッシュプルなど多種類の出力構成ができます
・多出力 最大3組の相補のPWMが出力できます。
PSMCの用途としては下記のようなものが考えられます。
・デジタル電源
・BLDCモータ制御
・LED用電源
・ソーラーインバータ
さらにレジスタ設定を用意にするために専用の設定ツールとマニュアルが用意されています。
フリーでダウンロードして使えます。
「PSMC Designer Tool Source Code」
「PSMC Designer User's Guide」
【PSMC内部構成と基本動作】
PSMCの基本的な内部構成は下図のようになっています。
時間のベースは16ビットのタイマ/カウンタで生成されこれで周期などが決定されます。
これを駆動するクロックに64MHzという専用のクロック源が用意されていますので、
高速な周期としても十分なPWM分解能を確保することができます。
このタイマの先に3つのイベント生成部があり、これでPWMの周期とパルスの立ち上がり
と立下りが決定されます。 この3つのイベント生成部はタイマによる時間ベースのトリガと、
コンパレータやPSMCxINピンによる非同期トリガとが選択できるようになっていますので、
デジタル電源を構成したような場合に、周期だけでなく、電圧や電流などによるPWM制御
やパルススキップ制御もできます。
出力のPWMの信号構成はモード制御部で決定され、全部で12種類の出力構成ができます。
さらに実際の出力ピンへの出力の指定や極性も出力制御部で設定できるようになっています。
パルスの最初にブランキング時間やデッドタイムを挿入することができます。
さらにコンパレータなどの出力でPWM出力をシャットダウンすることもできますので、
モータ制御やデジタル電源での保護機能などに使うことができます。
実際のPWMパルス出力は上図の@ABの3つのイベントでトリガされて構成され、
下図のように出力されます。
下図は単純なPWMの場合で、
周期は@の周期イベントで決定されPSMCxPRレジスタの値で制御されます。
PWMの立ち上がりはAの立ち上がりイベントで決定され、PSMCxPHレジスタで制御されます。
PWMの立下りはBの立下りイベントで決定され、PSMCxDCレジスタで制御されます。
【PSMC出力構成の種類】
PSMCが構成できるPWM出力の種類は全部で12種類あり、下表のような機能と
なっています。相補構成の場合にはデッドバンドが挿入でき、出力ピンも選択できます。
動作モード デッドバンド 出力指定 正出力 負出力 FFA 応用例 単相PWM × 〇 A,B,C,D,E,F --- ステップモータ
BLDC、電源相補PWM 〇 〇 A,C,E B,D,F プッシュプル × × A,B --- 電源、同期駆動 相補プッシュプル 〇 × A,E B,F プッシュプル
フルブリッジ× × A,B,C,D --- DC/ACインバータ
Dクラス駆動
誘導モータ相補プッシュプル
フルブリッジ〇 × A,B,C,D E,F パルススキップ × × A --- 高効率昇圧電源
昇圧電源相補パルススキップ 〇 × A B ECCP互換
フルブリッジ〇 × A,B,C,D --- ブラシモータ 周波数変調
固定デューティ× × A --- 〇 共振式電源
蛍光灯調光周波数変調
相補固定デューティ〇 × A,C,E B,D,F 〇 共振式電源
誘導モータ3相PWM × 〇 A,D or
A,F or
C,F or
C,B or
E,B or
E,D--- 3相BLDC
ACインバータ
実際のパルス出力例は次のようになります。
(1)相補PWMの場合
もっとも基本となる単純な相補構成のPWMの場合には下図のようなPWM
出力となります。
(2)相補プッシュプルの場合
相補構成のプッシュプル構成の場合のPWM出力は下図のようになります。
PWMサイクルごとに交互にPWM出力の組が出力され、それぞれが相補構成
となっています。フライバック構成のデジタル電源のような場合に使います。
(3)相補パルススキップの場合
この場合には、PSMCxINピンかコンパレータによる非同期で入力される立上りイベントと
通常のクロックによる立上りイベントが必要になります。そして非同期のイベントがHighの
期間だけPWMパルスが出力されます。
(4)周波数変調 相補固定デューティの場合
この場合にはレジスタの動作が他のモードとは異なり、周期イベントだけが使われ、
デューティ比は固定となります。
このモードの場合のレジスタ構成は下図のようになります。通常はPSMCxPRで決まる
周期で周期イベントが出力されますが、周波数変調の場合には、下図の左側のFFA
と呼ばれる部分が追加されます。この部分では周期イベントごとにPSMCxFFAレジスタ
の値がAccumulatorに加算されますから、一定周期でcarryが出力されてその時だけ
周期イベントが+1されて長くなることになります。
これを長時間で見ると、見かけ上周期レジスタの分解能が上がったことになります。
【PSMC関連レジスタ】
PSMCの制御レジスタはすべてダブルバッファになっています。そしてPSMCモジュール
が無効になっているときは、片方に書き込むと同時に両方に書き込まれます。
PSMCが有効で動作中の場合には、レジスタに書き込んでも直ぐ更新されず、
PSMCxLDビットを1にしたとき、周期の最初にすべてのレジスタが同時に更新されて
PSMCxLDビットが0に戻ります。これで、多くのレジスタをばらばらに設定することで
起きる異常なPWMパルスを防ぐことができます。
レジスタには制御関連レジスタでデータ設定レジスタとがあります。
【制御関連レジスタ】
・PSMCxCONレジスタ :PSMC制御
・PSMCxMDLレジスタ :変調制御
・PSMCySYNCレジスタ :同期制御
・PSMCyCLKレジスタ :クロック制御
・PSMCxOENレジスタ :出力有効化指定
・PSMCxPOLレジスタ :極性選択
・PSMCxBLINKレジスタ :ブランキング制御
・PSMCxREBSレジスタ :立上りブランキング要因選択
・PSMCxFEBSレジスタ :立下りブランキング要因選択
・PSMCxPHSレジスタ :フェーズ要因選択
・PSMCxDCSレジスタ :デューティサイクル要因選択
・PSMCxPRSレジスタ :周期イベント要因選択
・PSMCxASDCレジスタ :オートシャットダウン制御
・PSMCxASDLレジスタ :オートシャットダウンレベル設定
・PSMCxASDSレジスタ :オートシャットダウン要因選択
【データ設定レジスタ】
・PSMCxTMRL、PSMCxTMRH :カウンタ/タイマ
・PSMCxPHL 、PSMCxPHH :立上りイベント設定
・PSMCxDCL 、PSMCxDCH :立下りイベント設定
・PSMCxPRL 、PSMCxPRH :周期イベント設定
・PSMCxDBR :立上りデッドタイム時間設定
・PSMCxDBF :立下りデッドバンド時間設定
・PSMCxFFA :FFA調整設定(下位4ビットのみ)
・PSMCXBLKR :立上りブランキング時間設定
・PSMCxBLKF :立下りブランキング時間設定
制御関連レジスタは非常に種類が多いですが、それらの詳細は下図のようになっています。
【使用例】
PSMCを使った降圧電源の例です。