MP6513は、21V、0.8Aという定格仕様で、絶対最大定格は23Vと、DCC用にはうまく入っているICになります。ZXBM5210のように18V最大ではないのがミソです。
このICは、OnBreakなので、IN1-IN2にHigh-Highを与えるとGNDにショートします。Low-Low(もしくはマイコン起動時、リセット時)の時は、ハイインピーダンス(オープン)になります。なので、AnalogWriteで、普通にIN2を0、IN1にDutyを突っ込むと、オフ時にハイインピーダンスになって、出力波形がなまります。
へのへのもへじさんのレポートにある、IN1とIN2にディレイがあるというのは、まさにその現象です。対策としては、以前にレポートしたA4953と同じく、Arduinoであれば、255で引いたDuty値を設定します。
BD6231や、そのコンパチのZXBM5210は内部ロジックで、直してくれるので、モータドライバをいろいろ試される場合には注意が必要です。
TB6643KQは、A4953やMP6531と同じなので、DSシールドアナログスケッチをそのまま使用して試験を行いました。コードは以下の通りです。inPowerは0dで0%出力、255dで100%(全オン)です。
Arduino上のコード:
void SetPWMoutput(byte inDir, word inPower)
{
word aPower = inPower >> 2;
if( aPower >= 255)
{
aPower = 255;
}
switch( inDir)
{
case 1:
analogWrite(10, 255 - aPower);
analogWrite(9, 255);
//BD6231: analogWrite(10, aPower);
//BD6231: analogWrite(9, 0);
break;
case 0:
default:
analogWrite(9, 255 - aPower);
analogWrite(10, 255);
//BD6231: analogWrite(9, aPower);
//BD6231: analogWrite(10, 0);
break;
}
}
■試験環境
試験基板は、DSシールドの改造版で、ジャンパを飛ばして無理やり配線しています。
MP6531は非常に小さいです。
ピン配列は以下の通りです。
以下のような感じで基板に実装しています。
モータの試験環境は以下の通りです。ACアダプタは15V、Arduino UNO経由での供給です。モータは、秋月で売っている、たぶん一番質の悪いDCモータです(マーキュリーモータ)。
■無負荷時(モータ未接続)の波形
Duty 0%:
ターンオフ時の波形が結構豪快で、アンダーシュートが大きいです。ジャンパーの配線のインダクタンス(L)成分と、パスコンの位置まで遠いことが悪さをしてそうな気がします。
Duty 50%:
■モータ接続(マーキュリーモータ)
Duty 10%:
Duty 50%:
Duty 75%:
■クモハ12で動作テスト
電源は理想環境下ですが、以下のように加減速は確認できました。ビデオには無いですが、手で押さえつけてトルクを増大させても動き続けます。