メニュー

九州・中国地方密着型!組み込み機器のお悩み、当社が解決します!

組み込み機器 受託開発・生産センター.com
組み込み機器 受託開発・生産センター.com

Produced by株式会社サンエス

設計のポイント

タイマー機能の活用 その2
~ タイマーを使ってPWM制御~

分類マイコンファームウェア 設計のポイント

設計のポイント

1.PWM(パルス幅変調)とは?

PWMとは、矩形波(ON/OFFを繰り返すデジタル信号)の「ONの時間(パルス幅)」を変化させることで、実質的な電圧や電力をアナログ的に制御する技術です。デジタル出力(ON/OFF)しか持たないマイコンから、アナログ的な制御を行いたい場合に非常に有効です。

【具体例】

PWMの周期に対してパルス幅を変化させることで、LEDの明るさを調整することができます。

2.PWMの基本的な概念

●周期(Period)

矩形波がONとOFFを繰り返す一連の時間の長さです。この周期は一定に保たれます。

●パルス幅(Pulse Width)

1周期の中で信号がONになっている時間です。

●デューティ比(Duty Cycle)

1周期全体に対するパルス幅の割合をパーセンテージで表したものです。

デューティ比 (%) = (パルス幅 ÷ 周期) × 100

例えば、周期が10msの場合、デューティ比50%であればON時間が5ms、OFF時間が5msとなります。デューティ比を大きくすればONの時間が長くなり、実質的な平均電圧(または電力)が高くなります。逆にデューティ比を小さくすれば、ONの時間が短くなり、平均電圧が低くなります。PWMの出力はデジタル信号であるため、ノイズに強く電力効率が良いという特長があります。

 

 

3.なぜタイマーがPWM制御に必要なのか?

PWM波形を生成するには、正確な周期と正確なパルス幅を持つ矩形波を繰り返し生成する必要があります。この「正確な時間」を生成する役割を担うのがタイマーモジュールです。多くのマイコンのタイマーモジュールには、PWM波形をハードウェアで自動生成する機能が備わっています。これにより、マイコンが直接ビットのON/OFFを制御するソフトウェアPWMよりも、マイコンに負荷をかけずに高精度なPWM波形を生成できます。

4.タイマーを使ったPWM制御の基本的な仕組み

PWM機能を備えたタイマーモジュールは、一般的に以下のレジスタや機能を利用してPWM波形を生成します。

●カウンタレジスタ 
タイマー割り込みと同様に、一定の周期でカウントアップまたはカウントダウンしていくレジスタです。
●周期設定レジスタ
カウンタレジスタが到達する最大値またはリセットされる値を設定します。この値がPWMの「周期」を決定します。カウンタがこの値に達すると、リセットされ同時にPWM出力の状態が変化(通常はONからOFF、またはOFFからON)します。
●コンペアレジスタ
カウンタレジスタの値がこのレジスタに設定された値に到達した際にPWM出力の状態を変化させるための閾値です。この値が「パルス幅」を決定します。
●出力ピン設定
タイマーモジュールと特定のGPIOピンを関連付け、PWM出力として設定します。
<PWM波形生成の一般的な流れ(UPカウントモードの場合)>
1)タイマーの初期化
・周期設定レジスタに目標のPWM周期に対応する値を設定します。
・コンペアレジスタに目標のパルス幅(デューティ比)に対応する値を設定します。
・プリスケーラを設定し、カウンタのカウント速度を調整します。
・PWM出力モード(例:非反転モード、反転モードなど)を設定します。
2)PWMの開始
・タイマーカウントの開始
3)波形生成
・PWM出力ピンから波形出力開始。
・以下サイクルを繰り返すことで、デューティ比が制御されたPWM波形が自動的に生成され続けます
 ①カウンタがコンペアレジスタの値に到達すると、PWM出力ピンの状態が反転します。
 (例:LOWからHIGH、またはHIGHからLOW)
 ②カウンタが周期設定レジスタの値に到達すると、PWM出力ピンの状態が再び反転し
  同時にカウンタが0にリセットされます。

5.設計のポイント

タイマーを使ったPWM制御を実装する際の重要なポイントをいくつか挙げます。
1)PWM周波数の選定
●制御対象の特性
モーターであれば機械的な応答速度よりも十分に速い周波数が必要です。LEDであれば人間の目にちらつきを感じさせない程度の周波数:数百Hz以上が必要です。音声であれば可聴域を超える周波数:20kHz以上が必要です。
●マイコン負荷 vs. 波形精度
周波数を高くするほど細かな制御が可能になりますが、タイマーの分解能やマイコン負荷に影響します。
●ノイズ
高周波なPWMはノイズ源となる可能性があるため、適切なフィルタリングやシールドも考慮する必要があります。
2)分解能の決定
周期設定レジスタの最大値(タイマーのビット数)によって、PWMの分解能が決まります。例えば、8ビットのタイマーであれば0~255の256段階、16ビットであれば0~65535の65536段階のデューティ比設定が可能です。必要な制御の滑らかさや精度に応じて、適切な分解能を持つタイマーを選択します。
3)デューティ比の計算
目的のデューティ比をパーセンテージで与えられた場合、それをタイマーのコンペアレジスタに設定する値に変換する必要があります。
設定値 = ( 周期設定レジスタの最大値 + 1 ) × ( デューティ比 ÷ 100 )
※小数点以下の誤差や整数への丸め込みに注意が必要です。
4)安全対策
モーター制御など高電圧・大電流を扱う場合は、PWM出力が予期せぬ状態になった場合に備え、フェールセーフ(安全停止)機能を実装することが重要です。PWMの設定値をゼロにしても、出力が完全に停止するかどうかを確認します。
5)ピンの割り当て
使用するマイコンの特定のピンがPWM出力に対応しているかを確認し、正しく設定します。多くの場合、タイマーモジュールと特定のGPIOピンは固定的に関連付けられています。
6)ソフトウェアからの制御
デューティ比をリアルタイムで変更するには、プログラム中でコンペアレジスタの値を書き換えます。通常、コンペアレジスタの変更は次の周期から反映されるため、切り替え時の過渡応答も考慮に入れます。

設計のポイント 一覧

マイコンファームウェア 設計のポイント

お気軽にご相談ください

組み込み機器 受託開発・生産センター.comを運営する株式会社サンエスは、九州・中国地方に特化したサービス提供を行っており、ものづくりのパートナーとして選ばれています。回路・基板設計~メカ設計までの一貫対応と、部品実装や組立まで任せられるODM企業として、皆様の困難な課題を解決します。

[受付時間] 9:00〜17:00
土日祝 定休
084-963-1222
営業統括部 宛
技術資料のダウンロードはこちらから 技術資料ダウンロ―ド メールフォームでのお問い合わせはこちらから ご相談お問合せ