2019年5月25日土曜日

BTS7960モータドライバを改造してみた。

とりあえずPWMで制御できたBTS7960だけど、電流検出機能がせっかくついているので使いやすいように改造してみた。 ついでにEN端子もまとめて更に使いやすくしてみた。
(Hブリッジとして使うならあんまり分かれている意味ないし…)

というのもこのBTS7960モータドライバ基板、電流検出のISピンが2つのICから別々に出ている。この端子はハイサイドの電流しか測れないのでこのままだと正転と逆転で別々のピンから電流をセンシングする必要がある。データシートのサンプルではHブリッジとして使う際にこのピンをまとめてしまっているのでまとめてしまう改造をしてみることにした。漏れ電流はほぼ無視できるだろうし回路的には問題なさそう。
ついでに抵抗値が高すぎるので1kΩに変更した。全部の抵抗が10kΩだったんだけど全部はずして交換してしまった。

PWMのプルダウンは100kΩ、ENはどっちもまとめてしまってから5.1kΩでプルダウン、電流検知抵抗もどっちもまとめてから1kΩプルダウン、Slew Rate設定は5.1kΩに変更した。
基本的にデータシートのHブリッジ参考回路と同じ配線で、ISとENをまとめた感じ。抵抗値は適宜変更した。ISは1kΩにしたことによって、1Aあたり120mVぐらいになったはず。

実際にモータを正転、逆転してみてISをモニタリングしてみると、テスターだと結構振れている。PWMで制御すると電流波形もそうなってしまうのでローパスフィルタが必要そう。フォーラムを覗くと10kΩと1uFで良さそうな感じ。でもこれはPWMの周波数によって変える必要がありそう。

そんでもってこのISピン、データシートからも分かる通りばらつきがすごい。正転と逆転でLとRのBTS7960の電流測定値が切り替わるわけなんだけど、同じぐらいの電流が流れているはずなのに結構値が違う。これはまとめたのが原因ではなくてセパレートしても同じ感じだった。これフィードバックに使えるのかな…
INA219とかACS724みたいな外付けの電流センサつけたほうが良さそうな気も…

EN端子はとりあえずまとめてしまっても使い勝手は問題なさそう。ENをずっとHighにしているとFast Decayってことなんだろうけど、結構いい感じに制御できる。Slow Decayを使うときはバラバラのほうが使い勝手が良いとかで分けてんのかなぁ…とりあえずまとめた状態でPWMぶっこんでもSlow Decay使えそうだけど。

まずはどのArduino対応ボードで試そうかな。UnoだとISの抵抗もう少し高いほうがいいかもしれないし、ESP32だとADCの美味しいところが難しそうな印象だし。Bluepillあたり良いのかもしれないなぁ

0 件のコメント:

コメントを投稿