FPGA活用回路&サンプル記述集(2) ―― モータやLEDを駆動するパワー回路

浅井 剛

事例3.デューティ比をリニアに設定できるPWMパルス生成回路

浅井 剛

外部回路
  • 回路図:なし
  • 主要部品:なし
HDL記述
  • VHDL記述:リスト3-1
  • 外部入力:なし
  • 外部出力:なし
  • 内部入力:RES_n,CLK,CYCLE,OFFTIMING,START
  • 内部出力:PULSEOUT,CLRSTB
  • パラメータ:なし
評価環境
  • 製品に搭載実績のある回路を本誌に抽出.


 電力制御でよく用いられるPWM(Pulse Width Modulation)パルスを生成する論理を紹介します.市販マイコンにもいろいろなタイマ・モジュールがありますが,せっかくプログラマブル・デバイスに組み込むのでちょっと工夫をしてみます.

● 汎用タイマはデューティ比をリニアに制御できない

 図3-1に汎用タイマ・モジュールの構成を示します.システム上,クロック CLKが固定化されており,制御周期はカウンタの分周比で調整します.パルスのON/OFFタイミングはカウンタ出力と比較され,設定された値でパルス出力を制御する方式です.

zu03_01.gif
図3-1 汎用タイマによるPWMモジュールの構成

 この方式には原理的な課題があります.それは制御周期をカウンタの上限値(n)で制御しているため,クロック周波数との関係でデューティ比がリニアに制御できないことです.例えば周期nが128だった場合,デューティ比も1/128 (約0.78%)刻みで指定することになります.

 マイコンのソフトウェアで処理される制御アルゴリズムはデューティ比を制御指令として出すので,アルゴリズム上の指令値を実際の指定値へ変換するテーブルが必要になります.もし制御周期も切り替わるアプリケーションの場合は,変換テーブルも複数必要となり大変です.

● デューティ比をリニア制御できるPWMモジュール

 その課題を回避する一つの解がデューティ比指定優先のパルス生成論理です.図3-2にその構成を示します.汎用タイマとの違いは下記の3点です.

  1. カウンタを100進カウンタに固定.
  2. 制御周期は分周器で設定.
  3. ONタイミングは1に固定.

zu03_02.gif
図3-2 デューティ比をリニアに設定できるPWMモジュールの構成

 図3-3に動作タイミングを示します.周期と指令値,そしてパルス出力の関係がよく分かると思います.この方式の唯一ともいえる課題は,ある程度の制御周期範囲に対応するにはクロック周波数を高くしなければならないことです.しかし最近のCPLD/FPGAは非常に高速なので実使用上は問題ありません.例えば,制御周波数の上限12kHzまでとして,かつデューティ比を1%きざみにしたい場合のクロック周波数は120MHz以上となります.この周波数を外部から供給するよりは,PLL(Phase-locked loop)を内蔵したFPGAの方が適していると思います.

zu03_03.gif
図3-3 デューティ比をリニアに設定できるPWMモジュールの動作タイミング

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日