TIのBLDCモータドライバ
試作回路で電源入れたら動かなった。 電源とGNDが10Ωほどで、これの結果ACアダプタの過電流保護が働く
デバッグの結果DRV8316C外したら電源が入った。
未使用(負荷を引っぱらない)場合。それぞれのピンをフローティングやGNDに接続することはできない。BOMコストを削減するには0603とか0402の22Ω抵抗と22uFのMLCCは必要とのこと
DRV8316C: Unused integrated Buck converter
[FAQ] Integrated Buck Regulators in the 8316 family
[FAQ] Do I Still Need the Buck Components if I am Not Using the Buck of the DRV8316?
SPIモデルであればレジスタにアクセスして要因を読み出したり、リセットするビットを書き込むなど行えばよい。
HWモデルの場合、nSLEEPピンを一旦Lowに下げることで解除可能の模様。今回作った基板ではnSLEEPを引き出していなかったが、使用していないテストポイント品があったのでそれをバイパスしてみることにする。
(2024年9月27日更新)マイコンのGPIOへ直接バイパスは実現できなかった。nSLEEPを120us以上Lowに下げるとDRV8316全体がスリープモードに入る。入るのはいいが内臓のDCDCコンバータも動作を停止する。今回作った基板は内蔵DCDCからすべての電源をつくる構造にしているため、内蔵DCDCが起動しなくなってしまった。また、スリープモードに入らないようにFAULTから回復するには20us~40us以内のパルスとする必要がある模様。マイコンで実現するならワンショットタイマなど使わないといけない気がする。
別件だけどプルアップ抵抗の推奨値は51.kΩ、現状10kΩつけているので大きすぎ? 5.1kΩなら手元にありそうだし探してみる
データシートの読み込みが足りなかった
最小周期100ns=最高10MHz
16bitフォーマット
B15 : Read or Write
B14~B9 : Address
B8 : Parity,16bitデータ全体の1と0がそれぞれ偶数になるようにビットを設定→パリティビットを付与したときに1の個数が偶数になるので偶数パリティ
B7~B0 : Data
StatusレジスタとControlレジスタに2分類される。
Controlレジスタの値を編集する際はまず、Control Register 1
のREG_LOCK
に3
を書き込む必要がある。
これにより全レジスタへのアクセスがアンロックされる。
再度ロックする際は6
を書き込む