前回はFETを使ったモータ駆動回路について勉強しました。
この回路ではモータを回転させることはできますが、逆転やブレーキなどの制御を行う事は出来ません。
Hブリッジ
モータの回転方向の制御には、Hブリッジ回路(フルブリッジ回路)が用いられます。Hブリッジ回路は、4つのスイッチを用いて構成され、スイッチのON、OFFの組み合わせにより、正転、逆転、ブレーキを実現します。以下にHブリッジ回路の詳細を説明します。
Hブリッジ回路の構成
- 回転方向の制御:モータの回転方向を制御するためにHブリッジ回路が使用されます。
- 4つのスイッチ:Hブリッジ回路は4つのスイッチで構成されます。これにより、モータの回転方向やブレーキを制御します。
MOSFETの種類
MOSFETにはPch(Pチャネル)とNch(Nチャネル)の2種類があります。
詳しくは前回の記事をご覧ください
Hブリッジ回路には、すべてNchを用いたフルNchHブリッジ回路と、PN混合Hブリッジ回路があります。
- PN混合Hブリッジ回路:
- 特徴:最も単純でシンプルな回路を構成可能です。
- 欠点:Pch型のFETはゲート容量が大きい傾向にあり、スイッチング損失が大きい。また、PchはNchに比べて種類が少ないです。
- PchはNchと比べてドレインとソースの関係が逆となっている点に注意してください。
- フルNchHブリッジ回路:
- 特徴:4つのスイッチすべてをNch型MOSFETで構成した回路で、ハイパワーのモータドライバに使用されます。
- 欠点:Nchの特性上、ゲートの電圧がソースよりVth以上大きい場合にのみ導通状態となります。電源が12Vの場合、ハイサイドのソースの電位はほぼ12Vとなり、これをONとするためには12V以上の電圧が必要です。
解決方法
- 別電源を用いる方法:ハイサイドのNchMOSFETをONにするために、別電源を用います。
- ゲートドライバICを用いたブートストラップ:ゲートドライバICを用いることで、ブートストラップ回路を構成し、必要なゲート電圧を生成します。次の節で詳しく解説します。
ゲートドライバIC
ゲートドライバICは、FETのゲートを操作するためのICであり、その能力によってFETをどのくらいの周波数で制御できるかが決まります。ゲートドライバICには様々な種類がありますが、今回はフルNchモータドライバを構成するためによく用いられる「IR2302」について解説します。
https://akizukidenshi.com/catalog/g/g115656/
データシート:https://akizukidenshi.com/goodsaffix/ir2302.pdf
IR2302の概要
- ブートストラップ機能:IR2302にはブートストラップ機能が備わっており、ハイサイドとローサイドのFETを駆動するために必要な電圧を提供します。
- 用途:フルNchモータドライバを構成するためによく使用されます。
各ピンの役割
Vcc:ICを駆動するための電圧を印加します。
HO:ハイサイドのFETのゲートへ信号を出力します。
LO:ローサイドのFETのゲートへ信号を出力します。
IN:FETのスイッチングを制御します。
HIGHが入力された場合はハイサイドのFETをONに、ローサイドのFETをOFFにします。
LOWが入力された場合はハイサイドのFETをOFFに、ローサイドのFETをONにします。
SD:INの入力状況に関わらず、LOWが入力されると、すべてのFETをOFFにします。
ハイサイドFETの駆動
ハイサイドのFETを駆動するためには、電源電圧以上の電圧が必要です。IR2302では、ブートストラップ機能を利用してこの電圧を生成します。
ハイサイドOFF, ローサイドONの場合
図に示すように、ハイサイドFETがOFFでローサイドFETがONの状態を考えます。このとき、点線の経路に沿って電流が流れ、コンデンサC1が充電されます。
- 充電経路:ダイオードを経由して電流が流れます。
- 電圧:C1の端子間電圧はゲート電源電圧からダイオードの電圧降下Vfを引いた値になります。例えば、電源が5VでVfが1Vの場合、4Vが充電されます。
- ダイオード:高速スイッチング特性とVfが小さい点から、ショットキーバリアダイオード(SBD)が用いられます。
ハイサイドON, ローサイドOFFの場合
図に示すように、ハイサイドFETがONでローサイドFETがOFFの状態を考えます。このとき、C1が十分に充電されている場合、C1の端子間電圧は4Vとなります。
- 動作:ゲートドライバを介してG-S間に電圧をかけると、G-S電位差は4Vとなり、FETのVth(2SK2232の場合は最大2V)を超えるため、ハイサイドFETをONにすることができます。
ブートストラップ方式の注意点
ブートストラップ方式では、コンデンサC1の電荷を使用するため、C1に充電する期間を与える必要があります。
そのため、PWM(パルス幅変調)を使用する前提で設計する必要があり、PWMのデューティ比は最大97~98%程度に制限する必要があります。
PWMについては下記記事をご参照ください。
回路図
以上を踏まえまして、ゲートドライバIC、IR2302とFET2SK2232を用いたHブリッジ回路について回路図を示しておきます。
基本はこの形になりますので、FETやゲートドライバICを他の性能の良い部品へ変更すれば、モータドライバの性能の向上が図れます。
Arduinoで制御する際のサンプルコードは以下の通りです。
#define MOTOR_A 9 //正転
#define MOTOR_B 10 //逆転
void setup(){
}
void loop() {
//正転
analogWrite(MOTOR_A, 250);
analogWrite(MOTOR_B, 0);
delay(1000);
//ブレーキ
analogWrite(MOTOR_A, 0);
analogWrite(MOTOR_B, 0);
delay(1000);
//逆転
analogWrite(MOTOR_A, 0);
analogWrite(MOTOR_B, 250);
delay(1000);
}