【DRV8320HでBLDCを回したい】第1回:データシートの解析と動作確認
はじめに
自作ドローンを作っているとESCやBLDCモータなどのパーツの供給寿命が気になります。体感ですが1年経てば殆どの部品がもう売っていない...。 また、BLDCモータとESCは経験上、相性があるようで、ESCを変えることで同じモータでも今まで出せていた回転数が出なかったりとかがありました。
そういった不安定な供給と相性問題を解決すべく、自作ESCの開発を今まで何度か試みていたのですが、上手く行っていないのが現状です(なんだかんだで市販品ってすごいんだなあと思いました)。 ただ、上手く行かない割にはモチベーションは定期的に上がってくるので、今回はやることをブログにまとめながら進めていこうと思いこの記事を書いています。 最終的にはセンサレスでBLDCを回すのが目標ですが、現時点で目処は全くついていません!
第1回は使用するBLDCドライバのデータシートの解析と動作確認としていくつか波形を取ったのでそれについてです。
DRV8320Hについて
BLDCドライバとしてTI社のDRV8320Hを使用します。選定理由としては市販されているESCでこの素子が使用されているものがあったからです。あとは日本語資料が豊富です。
検証用の評価ボードはDigikeyで購入しました。
公式のページも載せておきます。ユーザーガイドや回路図もあるので結構見ます
データシートの解析
まずはデータシートの重要な部分を抜粋し、備忘録として残します。
ブロック構成としては下記のようになっています。青枠で示した部分がFETを駆動するのに使用する入力ピン。赤枠で示した部分がIC自体の設定を行うのに使用するピンです。
ENABLEピンについては下記のような記述があります。
MODE、IDRIVE、VDSについては下記のような記述がありました。
MODEピンによって下記4つの制御モードが有るようです。
- 6x PWMモード
- 3x PWMモード
- 1x PWMモード
- 独立PWMモード
自分は6x PWMモードを使用するのでMODEピンはGNDに接続すれば良さそうです。
注意点としてMODEピンの設定を行うときはFETの駆動を止めておく必要があるそうです。
IDRIVEピンはゲート駆動電流、VDSピンは過電流検出の閾値を設定できます。これに関してはよく分かっていないのでとりあえずHi-Z(端子に何も繋いでない状態)に設定しています。一応、Hi-Zにしておけば設定できる値の中央値の設定になるっぽいのでそうしてます。
6x PWMモードにおける波形の確認
簡単に実験条件を示します。
- 電源電圧:7.4V
- 負荷なし(モータ等は接続していない状態)
- 制御用マイコン:Teensy4.0
オシロスコープで下記赤枠部分を監視しています。評価ボードにはTP(テストポート)が出ているので簡単に監視できます。
駆動時の波形を下記に示します。
波形を拡大すると下記のような感じです。DRV8320Hの6x PWMモードではデッドタイムが勝手に挿入されるようです。
1つ気になった点としてはGHA(A相のHigh側)は立ち下がりが2段階になっています。これはチャージポンプの影響?
補足するとDRV8320Hにはハイサイド側のNch FETを駆動するためのチャージポンプ回路があって、どれくらい昇圧されるかの計算式がデータシートに載っています。
今回の電源電圧は7.4Vなので実測値と計測値を比較すると1Vくらい違いましたが、これは誤差範囲?まぁハイサイド側のFETを駆動できるだけの電圧さえ発生できれば問題ないとは思ってます。
- 計算値:2 * 7.4 - 1.5 = 13.3V
- 実測値:14.2V
おわりに
今回は使用するBLDCドライバのデータシートの解析と簡単な動作確認を行いました。
一応なんとなく使い方は分かったので次回は120度の強制転流で回せればいいなと思っています。
回りました↓↓↓