AN-1138 Speed Regulating PWM Fan Motor Controller

GreenPAK™ 製品は、大きな電力を消費するアプリケーション、例えばFETを制御してモーターを駆動したりすること、例えば降圧DCDCコンバータから電源供給する構成などにも対応可能です。このアプリケーションノートでは、回転数のフィードバックをI2Cのインターフェースで行うことにより、閉ループの回転速度制御によるPWMファンコントローラをプログラマブルに実現しています。平均の誤差は 2.5%未満、最大、最小誤差で15%未満となっています。これらの特性の精度に関しては、回転数が収束し安定するまでの時間と引き換えに改善可能です。

アプリケーション

3線式のファンの3線には、VDD、 GND そしてタコメータの出力があります。

ファンを駆動するモーターはブラシレスで、5V供給時約0.2Aの消費電流となります。本回路では、モーターの回転速度は入力電力に比例し、その電力はPch FETを用いたパルス変調により供給されます。そのPch FETのゲートは、図1に示すようにGreenPAK のPWM 出力信号(端子18)により制御されます。PWM 出力は、ホール素子からの回転数フィードバックをもとに決められます。

ホールセンサーは、ファン内の2つのコイルの間に配置されており、ファンのタコメータの出力として GreenPAKにフィードバックされます。ホールセンサーの信号の各エッジは、1回転に相当します。2つの回転の間隔の時間を計測することにより、回転速度を計算してモーターに加えるパワーを調整することができます。

システムレベル構成

図 1. システムレベル構成

図1に示すように、供給電圧はGreenPAKの動作電源電圧範囲内の5Vです。以下に示す回路は、 ハイサイドにFET、クランプダイオードとLCフィルターを有するDC-DC 降圧回路です。

GreenPAK デザイン、 ASM の状態

このデザインでは、ASM(非同期状態制御回路)の8つのすべての状態を使用します。状態には、図2に示すようにラベルが付けられています。初期状態は、リセット状態です。リセット状態では、PWM出力はLowになっています。

慣性により、ファンは静的摩擦を乗り越えるまで動き始めません。そのための代表的なデューティー比は、30%です。

ASMがアクティブなとき、オーバードライブ状態に遷移します。その時、最大出力つまりデューティー比100%の状態を3秒間継続することができます。この最初のキックが静的摩擦を克服し、モーターが回転を始めるきっかけとなります。

そこから、次にPWM Up の状態に遷移します。もし回転数が速すぎると、GreenPAKは自動的にPWM Down の状態に遷移します。ステートマシン(状態制御回路)は、PWM Up とPWM Down の間を継続的に行ったり来たりします。定常状態に行き着くと、行ったり来たりはより安定的になります。

RPM(回転数)に対する要求が高すぎたり、低すぎたりすると、GreenPAKの出力は最終的に100% になったり 0% になったりします。そのため、PWMのデューティー比が反転しないように、出力を最大値‘Stop High’、あるいは最小値‘Stop Low’で止めるためのゲートが用意されています。これらの状態においては、PWMは強制的にHighまたはLowに固定されます。

‘Buffer Low’ および ‘Buffer High’ は、ASMの望まない遷移を防止するための、中間的な状態です。 ステートマシンは、‘Stop Low’ と ‘Stop High’にエッジ検出セルを利用します。この時点で、もしPWMの方向が逆になると、最初の周期でエッジが発生します。もし、バッファの(中間的)状態が無いと、Stop状態からもう一つのStop状態へと直ちに移行してしまいます。そのため、中間的なバッファ状態を使って、状態がループするのを防いでいます。

ASM ステートマシン

図 2. ASM ステートマシン

GreenPAK デザイン、 ASM の入力

ASMへの主要な入力には、 ‘Decrease PWM’ と ‘Increase PWM’の2つのインバータ経由の信号があります。これらの信号は、図4にあるようにPWMのパルス幅を何時増加あるいは減少させるかを示します。 ‘Increase PWM’ による遷移は、ASMをPWM Down から PWM Up へと、また‘Decrease PWM’ による遷移は、ASM をPWM Up から PWM Downへと変化させます。

FSM0は、回転数(RPM)の周波数カウンターです。 周波数検出モードにおいて、入力の2つのエッジの間隔時間を計測し、カウンターのデータと比較します。もし、間隔の方が長ければ、スピードが遅すぎると判断されます。もし、間隔の方が短ければ、スピードが速すぎることになります。 FSM0の出力は、DC-DC降圧レギュレータへの供給の加減を制御し、ファンの回路を駆動します。

RPM 入力から周波数検出 FSM0

図 3. RPM 入力から周波数検出 FSM0

FSM0は、両エッジの周波数検出器として設定されています。というのは、このアプリケーションに使用されるタコメータ US1881は、ラッチタイプのホールセンサーで、回転する毎にタコメータの出力がトグルされます。そのため、各エッジは立上りでも立下りでも、それぞれ360度の回転に対応しています。この例では、ターゲットとなる回転周期は40msです。

ASM の入力

図 4. ASM の入力

エッジ検出器の入力は、セットおよびリセット信号のANDをとったものです。オーバーラップを見ることで、デューティー比が100%または0%に達したかどうか分かります。エッジ検出の出力が、ASMを‘Stop High’ や ‘Stop Low’に遷移させます。

一番最初のPWM出力のセットとリセットには、デフォルトでオーバーラップがあるため、中間的な状態を含むことで誤った遷移を防止しています。

FSM0 の設定

図 5. FSM0 の設定

セットリセットカウンターをシフトする

PWM デューティーサイクルは、CNT5/DLY5 と CNT6/DLY6から出力されるセットリセット信号により制御されます。設定は、図6に示す内容とほぼ同等です。

PWM出力のセットおよびリセット PWM出力のセットおよびリセット PWM出力のセットおよびリセット PWM出力のセットおよびリセット

図 6. PWM出力のセットおよびリセット

PWMデューティー比を増加、減少させるには、セットとリセット信号を相互にシフトさせます。図8のタイミングチャートにその様子を示します、現在の状態により、CNT/DLYブロック2つのうちの1つに余分なクロックが一発入力されます。これにより、出力は左にシフト(時間的に早く)します。セットがシフトすれば、PWMのデューティーサイクルは増加し、リセットがシフトすると減少します。 これは、図7に示すリセット及びセット信号により制御されます。

PWM出力のセットおよびリセット

図 7. PWM出力のセットおよびリセット

PWM出力のセットおよびリセット

図 8. PWM出力のセットおよびリセット

余分なクロックは、50周期に一度発生します。この頻度により、機械的な動きが電気信号に追随できます。これは、CNT4/DLY4により設定される更新周期です。更新周期毎に、パイプディレイと2ビットルックアップテーブル2はパルスをひとつ発生して、3ビットルックアップテーブル0と1のIN0に入力します。通常のクロック源とXORをとれば、余分なパルスが発生されます。

GreenPAK デザイン、ASM 出力

ASMの出力としては、4本のみ使用します。 ‘Shift_CNT6’ と ‘Shift_CNT5’ は、SRカウンターのロジックに入力され、シフトの制御を行います。具体的には、どちらのカウンターが余分なクロックを受けるかを選択するのに用いられます。それは、PWMがどちらの方向に進んでいるかを示しています。

図9の出力テーブルにあるように、カウントアップ時にはセットとリセットはともにHighであり、カウントダウン時にはともにLowとなっています。余分なクロックのカウントを止めるには、リセットとセットを反対にします。リセットをHighに、セットをLowにすると、通常のクロックのみが選択されます。

ASM 出力と出力の設定 ASM 出力と出力の設定
ASM 出力と出力の設定 ASM 出力と出力の設定

図 9. ASM 出力と出力の設定

‘Force 0’ と ‘Force 100’ は、PWMロジックが100% や 0% に達して、SRラッチがマスクされたことを示します。‘Force 0’ は、Stop Low、 Buffer Lowおよび Reset状態のためにPFETを閉じます。‘Force 100’は Stop High、Buffer High とOverdrive 状態のために PFETをオープンにします。3ビットルックアップテーブル2は、SRラッチです。

CNT6の出力がロジック1のとき、ラッチはセットされ、CNT5の出力がロジック1のとき、ラッチはリセットされます。3ビットルックアップテーブルは、SRラッチをゲートします。Set HighがHighのとき、出力はHighになり、Set lowがHighのとき、出力はLowになります。両方の信号が同時にHighになることはありません。両方の信号がLowのとき、3ビットルックアップテーブル2の反転を使用します。

GreenPAKによるデザイン

図 10. GreenPAKによるデザイン

I2C

回転数を変えるためには、I2Cを使ってFSM0のカウント値を書き換えます。ワードアドレスは、アドレス0xC5 と 0xC6に配置されています。

下表 1 を参照して下さい。FSM0にカウント値 0xDDを書き込むためのコマンドは、次のようになります。

Word Address Current RPM/FSM0 counter value Example 1 Example 2
0xC5 0xC6 0x10 0x27 0xE0 0x2E 0x40 0x1F
Decimal 9998 11998 7998
Period 40ms 48ms 32ms
Frequency/ RPM 25 Hz 20.8 Hz 31.25Hz
Actual Frequency 24.4 Hz 21.0 Hz 31.4 Hz
Min 23.2 Hz 18.9 Hz 28.6 Hz
Max 27.8 Hz 22.8 Hz 34.4 Hz
St. Dev. 478 mHz 385 mHz 520 mHz

 

表 1. RPM I2C write の例

例1:[0xSA 0xC5 0xE0 0x2E]

例2:[0xSA 0xC5 0x40 0x1F]

ここで、SAはスレーブアドレスを示します。

RPMからカウンターデータへの変換には、下記の式を参照下さい。

Counter Data

カウンターデータは、GreenPAKに内蔵された発振回路に依存します。このデザインでは、発振周波数は2MHz/8 = 250kHzが理想的です。 RPM周波数25Hz、周期40msを得るには、カウンターデータを9998に設定します。

実際の発振周波数の計測値は253kHzであり、結果として25Hzではなく25.3Hzとなります。

パーセント誤差は、上記3例について2.4%、1.0% および 0.5%でした。デバイスの動作期間が長いほど、パーセント誤差の平均値は良い結果になります。 誤差のうちの一部は発振周波数のトリミングによるもので、ここでは250kHzではなく253kHz に合わせ込まれます。PWMは、安定するまでしばらくの間増減を経ます。安定状態に達すると、状態制御回路は‘PWM Up’ と ‘PWM Down’ の間を行ったり来たりするため、平均値近辺でPWM出力にジッタを生じます。

このことにより、PWMの分解能によっては、周波数が平均値の辺りで最大値と最小値の間をジャンプすることになります。上記の例では、周波数の最大値と最小値のパーセント誤差は、最悪の場合15%になります。この誤差を減らすためには、CNT5とCNT6のカウント値を増加させることにより、各カウントによるPWMの増加のステップを小さくし、セトリング時間の増加と引き換えにより良い周波数制御を行います。

タイミング波形と機能

下に示す機能波形は、PWM出力が安定してから時間が経過したときのものです。

安定状態では、ステートマシンはPWM増加からPWM減少にリズミカルに切り替わります。

回転数(RPM)の入力周波数は、11.4Hzまたは 88msとなっています。 しかしながら、ホールセンサー出力はラッチ されるため、各エッジは一回転に相当します。FSM0 は、両エッジを検出するように設定されています。従って、実際のRPM 周波数は2倍の22.8Hzまたは 45msとなります。これは、FSM0のカウント値として設定された狙い値の40msと近い値になっています。

Channel 1 (yellow) – PIN#18 (PWM Out)

Channel 2 (light blue) – PIN#3 (RPM)

Channel 3 (magenta) – Fan Input Voltage

PWM ファン駆動波形

図 11. PWM ファン駆動波形

PWM ファン回路

図 12. PWM ファン回路

図 13 は、FSM0カウント値が12000に設定されたときの動作を現しています。ホールセンサーの周波数は9.42Hzなので、RPMは18.84 Hzということになります。

PWM ファン駆動波形 1

図 13. PWM ファン駆動波形 1

図14は、FSM0カウント値が8000に設定されたときの様子を現しています。ホースセンサーの周波数は14.8Hzのため、RPMは29.6 Hzとなります。

PWM ファン駆動波形 2

図 14. PWM ファン駆動波形 2

回路

下図は、PWMファンの試作品のブレッドボードです。左側のブレッドボードには、インダクター、 PFET、ダイオード、キャパシタを内蔵しています。 GreenPAKのチップは、開発ツール評価ボード内にあります。

右側のブレッドボードは、GreenPAKの外部コネクタとホールセンサーを接続し、常時電源を供給されています。

下の最初の図では、PWM回路がディセーブルされているために、ファンが止まっています。2番麺の図では、PWM回路がイネーブル状態にあるため、ファンは回転しています。

停止状態のファン

図 15. 停止状態のファン

動作中のファン

図 16. 動作中のファン

結論

GreenPAKに内蔵された非同期状態制御回路の使い方の一例として、外部モーターのフィードバックループに入れてPWMにより回転速度を制御する方法をご紹介しました。ホールセンサーの出力を簡単にモニターするために、周波数検出機能を使用しています。そして、I2Cバスにより基準周波数を変更します。 デジタル制御回路全体はGreenPAKチップに実装され、ASM(非同期制御回路)により簡単に変更が可能です。

About the Author

Name: Yu-Han Sun

Background: Yu-Han is currently an Applications Engineer at Silego Technologies working primarily with the GreenPAK products lines.

Contact: appnotes@silego.com

 

Files



See full list of Application Notes

© 2017 Silego Technology. 1515 Wyatt Drive, Santa Clara, CA 95054.
Facebook LinkedIn Twitter YouTube Google