7/11/2011

モータドライバ TB6612FNGの使い方

最近よく使っている小型のモータドライバTB6612FNGと使用上の注意点について記しておきます.
TA7291P

TB6612FNG
TB6612FNGはMOSFETを使用した低損失なデュアルモータドライバで,連続1.2A,ピーク3.2Aの電流が流せます(電圧は15Vまで).小型ロボットの製作にはぴったりです.
単体のデータシートはこちらです. サイズは表面実装のSSOPですが,SparkfunからBreakoutボード(写真左)が出ていて,スイッチサイエンス等で購入できます(単価は900円程度).

小型ロボットでは他にも,超安価(200円程度)で使いやすいバイポーラ型のTA7291P (写真右)などを使う人も多いと思いますが,この手のものは損失が大きく(=発熱が大きく)スイッチングが遅いのが難点です.TA7291Pが放熱板つきで連続1.0Aなのに対してTB6612FNGはこのサイズで連続1.2Aですから, 効率の違いがよくわかります.

さて,かように優れもののTB6612FNGですが,使い方を誤ると全然効果を発揮しません.モータAの入力端子には AIN1, AIN2, PWMAの3本があり,AIN1, AIN2 の組で方向を指定,PWMAにPWM制御パルスを加えるようにすると以下のようになります(以下はArduinoで制御).


黄色がPWM制御パルス (PWMA),水色がモータドライバ出力(A01)です(この場合A02は0Vで一定です).PWMの搬送波周期は4msです.水色がきちんと黄色を追従していることがわかります.

ところが,使い方を誤って(あるいはピン数をケチって)PWMAをHIGHに固定し,AIN1, AIN2の一方をLOWに,もう一方にPWM制御パルスを使ってしまうケースがみられます.この場合は以下のようになってしまいます.

 黄色がPWM制御パルス(AIN1),水色がモータドライバ出力(A01)です.期待した通りにスイッチングが行われていません.実は上の図はまだモータをつないでいないときの状況で,モータをつなぐとさらに酷くなります.
 

モータドライバの使い方になれていない人はご注意下さい.

※後ほどもう少し加筆