2019年5月12日日曜日

BTS7960モータドライバが届いた

540モータを回すにはL298Nあたりだと電流が足りないのでAliexpressでモータドライバを探していたところ、BTS7960を使ったモータドライバがお安くて良い感じだったのでポチってみた。5ドルちょいだった。

BTS7960自体はInfenionのNovalithICシリーズで、ワンチップのハーフブリッジらしい。これを2つ使えばフルブリッジとして使えるということで、このボードにはBTS7960Bが2つとSL74HC244D(3ステートバッファ)が乗っていた。抵抗は全部10kΩだった。
InfenionのHexFETシリーズとかもオン抵抗が低かったりしてモータドライバならInfenion強そうなイメージが。

基板はさすが5ドル品、リワーク品なのかICのハンダが手半田の雰囲気。ロジックICはリフローっぽいんだけれども。さすが43A流せるだけあってヒートシンクもでかい。

基板のサイズは50mmx50mmぐらい、穴ピッチは40mmx40mmなんだけど、結構際どいところにパターンが通ってるのでネジ止めするときは気をつけないと行けないかも。
樹脂ワッシャーを挟んで止めるとかしたほうが安全かも。

とりあえず動作確認。
VCCとL_ENとR_ENに5Vを入れて、L_PWMに5Vを入れてみるとモータが回った。R_PWMに5Vを入れてみるとちゃんと逆転したので行けそう。(Duty100%相当)
電圧は7Vぐらいから動きそう。データシート的にはフルブリッジで使うならピーク36Aぐらいまで使えるっぽい?Attiny85ぐらいのマイコンと組み合わせれば安価で30Aぐらいのラジコン用ESCが作れちゃうかも。

まずは回ることが確認できたので一件落着。リワーク品っぽい見た目だったので不安だったけど。
ためしにねじ2本で止まっているヒートシンクを剥がしてみると基板直付けだった…
これじゃこんなにでかいヒートシンクつけてる意味無いんじゃないかな…

とりあえずパーツクリーナーでフラックスをきれいにしてから絶縁タイプのCPUグリスを塗って見た。レジストはちゃんとした絶縁じゃないし、ヒートシンクの塗装も絶縁とはいえないような気がするので本当はサーマルパッドとかのほうがいいんだろうけど手持ちがなかったのでとりあえずこれで。一応テスターで測って抵抗値が出ないことは確認した。
あとで熱伝導シート買って交換しよ…

BTS7960のデータシートを見るとApplication Exampleのフルブリッジとして使うパターンの図では、INH(EN)とIS(電流検出)ピンが左右で接続されているが、このボードではL_ENとR_ENのようにバラバラにピンヘッダに出ているっぽい。
このあたりはデータシートのサンプルのように共通化してしまったほうが使い勝手が良さそう。

せっかく電流検出付いてるので電流フィードバックや電流リミット用に電流検出部を改造したいな。電流検出のISが正転と逆転で別のピンに出てしまうとADが2つ必要なので面倒だし。データシートのサンプル回路ではISをLとRで共通化してある。これは電流検知がハイサイド側にしかついていないので正転と逆転時はどちらかのISピンからしか電流が流れない(僅かなリーク電流を除く)ということらしい。FETのリーク電流は電流の測定オーダからするととても小さいから多分無視できるのだろうけど。
何にせよ電流検出の抵抗が10kΩは大きすぎる。ちなみにデータシートでよく出てくる1kΩにした場合は120mV/A。例えば最大20Aとして3.3V系のマイコンに接続するなら1.4kΩぐらいとか。ダイオードのクランプ回路とかツェナーを入れたほうがいいかもしれない…
電流測定っていうよりは電流フィードバック用なのかな。ISピンとハイサイドの電流比の範囲結構でかいし。

L_ENとR_ENも同様にデータシートのサンプル回路みたいに単純に同じピンで制御しちゃって良さそう。そうすると一般的なモータドライブICみたいにEN、IN1、IN2の3ピンで制御できちゃうし。このボードでわざわざISとENが分かれているのは単方向で2モータを使うときのためかな?今回はHブリッジとして使うので共通化してしまっても良さそう。

このモータドライバ、探していると何種類かバージョンがありそう。Arduinoのロゴが違ったり、ネジ穴のところの銅箔の逃しとか細かいところに違いがある感じがする。
あと抵抗値もプルダウンの抵抗値が30kのと10kのがあったり。コピー品なのかな。
ちなみにBTS7960はもうディスコンらしい…
新しいICが出ていて、IFX007Tだと40Vまで対応するっぽい。ピンコンパチでそのまま使えそう。

ISピン用に抵抗と、ローパスフィルタ用の部品でも手配しておこうかな。まずはPI制御で電流フィードバック試してみたい。
次回はArduinoでとりあえずPWMでモータを回せるようにしてみる。

0 件のコメント:

コメントを投稿