ステッピングモータドライバSLA7078MRを使ってみる
ステッピングモータを動かせると位置決めなどいろいろできておトクだが,
シーケンサから作っていると手間な上に定電圧ドライブになるオチが待っているので,
シーケンサの入っている定電流ドライブできるドライバICを使う.
(定電圧ドライブ/定電流ドライブ:
定電圧ドライブでは,モータ停止時(コイルに直流を流しているのと変わらない)に
壊れずに動作する電流を流しうる電圧で固定してコントロールする方式で,
簡素な仕組みだが,回転数が上がってきてパルス幅が短くなってくると,
コイルの電流を流し始めにくい性質/インピーダンスに邪魔をされて所定の電流が取れなくなる.
定電流ドライブでは十分な電圧の電源を確保しておき,
常に設定した電流が得られるようにスイッチングすることでより高速回転させやすい.
仕事をするのは電圧ではなく電流,ということが理解できる一例)
また,ユニポーラ方式とする.これは高速回転に有利なため.
今回使うのは,共立電子から購入したサンケン電気のSLA7078MR.
1),2)のように,表は樹脂,裏面は放熱用の金属板の複合パッケージになっている.
困ったことに,3),4)図で判るように23本の端子がZIP(ジグザグ)配列されているため
(2.54mmピッチ2列,列のオフセット1.27mm),そのままでは2.54mmピッチのユニバーサル基板に実装できない.
足を曲げて格子点配列にするか,1.27mmのユニバーサル基板を使うことになるが,
1.27mm基板はホールが小さいので足を斜めカットして鋭くする必要がある.
もう一つ検討したSANYOの STK672-050は2mmピッチSIPだったり,
ワザと使いにくくしているのか?と疑ってしまうが,
基板を起こせる産業向けという造りなのだろう.
http://www.sanken-ele.co.jp/prod/semicon/pdf/sla7076mrj.pdf
http://www.sanken-ele.co.jp/prod/semicon/pdf/data_sla7070mj.pdf
http://sec-suzuki.com/SLA7070M-AP-Ver4_0.pdf
とデータがそろっていたので,いきなりテスト用回路をユニバーサルに半田付けしたが,,動かない(笑)
どうやらLOGIC電源にスイッチング電源を使ったら,コンデンサで吸収しきれない変動があって発振し,
CMOSを発熱で壊したのが原因のような気がしたので,反省して分解しやすくテスト回路を組み直す.
以下、サンケン電気の資料を読んでいる前提で。
図のように,2x10ラインのリボンケーブル+3本を端子に接続し,適宜配線を入れ替えてブレッドボードに落とす.
ICは2列だが,ブレッドボード用に1列に並び替える.ついでに,人間にわかりやすい機能別配置にする.
一応放熱板に接続.
入れ替えはとりあえず以下のように行った.(IC端子-ブレッドボードの順,いずれも左が1番とする)
1,2---------------1 A
NULL 2 COM_A(VBB)
3,4---------------3 /A
20,21-------------4 /B #モータ系統
NULL 5 COM_B(VBB)
22,23-------------6 B
NULL 7
5------------------8 Sense_A
19-----------------9 Sense_B
NULL 10
11----------------11 VBB
NULL 12
12----------------13 | #モータ電圧系統ここまで
12----------------14 |GND
12----------------15 |
NULL 16
14----------------17 VDD(5V)
NULL 18
6-----------------19 Monitor
15----------------20 Reset
NULL 21
10----------------22 Step_CLK
16----------------23 CW/CCW
NULL 24
7-----------------25 M1
8-----------------26 M2
9-----------------27 M3
17----------------28 PWM_Sync
13----------------29 Ref
「NULL」の部分は,ICからの入力端子無し.
モータCOM部分(VBBを接続する)と,パワー電源との区別と,わかりやすいように隙間を空けた部分.
この隙間空け,余り考えていなかったので多少の問題が発生した.
デジタル入力にはプルダウン(10k)が必要だが,隙間を空けたせいで8素子の集合抵抗では足りなくなってしまった.
仕方がないので,20-23と25-28で4素子の集合抵抗を2個使い,24番をGNDにした.
ブレッドボードには,アプリケーションノートに従って,VBB-GND間に50V1000uFの電解コンデンサを,
VDD-GND間には25V10uFの積層セラミックコンデンサを,リセット回路に0.1uFのコンデンサをそれぞれ追加した.
ロジック用コンデンサはできるだけICに近く配置するように定められているが,リボンケーブル越しでも一応問題なかった.
Reset,M1-3(モータ励磁設定),Ref(モータ電流設定用参照電圧)はマイコン制御するように作られているような気もするが,
別に部品で設定しても動きはするので,単機能部品で誤魔化した.
Resetはタクトスイッチ,M1-3はDIPスイッチ,Refは10kの可変抵抗による抵抗分圧とした.
テスト時は安定化電源でないと怖いので(学んだ),モータ用にMAX18V-2AのCV/CC電源を,
ロジック用に5VにセットしたCV電源を用意した.
また,トラブルシュートが面倒になるので,ステップパルスの生成は
ちゃんと5Vで出力されることが保証されているファンクションジェネレータを使用した.
で,予想通り,あっさり動いた.
ミスする要素は配線と素子発振くらいしかないので,動いてくれないと困るが.
CV/CC電源にはアナログメータの付いているものを利用したため,よく言われているモータ動作の様子がよくわかった.
具体的には,
・モータ電流は保持、低速トルクと負荷動作時にのみ効く,高速性には影響しない
・モータ電圧は高速回転にダイレクトに影響する
モータパルスがちょっと上がると設定した電流なんてすぐ流れなくなってしまう.
また,電圧が上がると脱調する限界回転数がどんどん上へシフトしていく.
擬似定電圧ドライブ(モータ停止時に設定電流が出せる最低限の電圧にセット)時と比べ,
回転数が1桁変わってきてしまう.これは大きい.
今回は電源に無理してもらったところ,秋月電子で販売されていた大型ステッピングモータが
11kパルス/秒 @20Vまで回転した.
2相励磁で動作させたので,200パルスで1回転.
11k/0.2k=55回転/秒 , 330rpmか.こんなもんでしょう.
パルス生成器の切り替えポイントいっぱいになってしまったので、もうちょっと伸びるとは思う。
アプリケーションノートやデータシートで判らないことも多くあった.
1.VBB-GNDのコンデンサは絶対足りてない.
2.なんかロジック電圧が上がることがある
3.レファレンス電圧の最大値違ってる?
4.電流制限のPWMは意外とうるさい
5.フォトカプラがボトルネックになる
6.脱調時の電源への影響が大きい
1.のモータ系統用コンデンサだが,指定の容量だとアレニウスの法則が気になるくらい発熱する.
コイル励磁とPWM機能で大量の負荷変動があるので,ESRの大きいコンデンサだと充放電時のロスで熱を持つようだ.
50V耐圧で低ESR品を探すよりは,同容量のコンデンサをパラで並べて分散させたり,
複種類のコンデンサを利用するなどの対応がいると思う.
2.電源のメータをモニタしていると,時折設定より高い7Vを指していた.
これはヘボいCV電源だからなのか,モータ電圧が回り込んでいるのかは不明だが,
ICのロジック側絶対最大定格電圧は6Vだったりするので,
必ず避けなければならない.VDD-GND間に5.1Vのツェナーを挟んでおくべき.
3.データシートによると電流設定範囲は0.04-0.45Vまでになっているが,
品番違いによる最大電流の違いが考慮されていないのかもしれない.
1:9の抵抗分圧を作って,1側に可変抵抗をいれると細かく設定できるかなと思って実装していてだまされた.
0.45VではPWMの音がしていたし,電源とRef電圧につけたデジタルテスターのメータ読みでももっと上の設定電圧までモータ電流に変化があった.
4.ううむ.
5.今後のPCコントロールのために,フォトカプラを入力10mA設定で使用したところ,最高回転数に悪影響があった.
品種によるが,11kパルス出たところが,5-7kで脱調するようになった.
これは周波数が上がるほど入力電流(フォトカプラ内のLED駆動電流)を大きくしないといけないためだが,
データシートの周波数特性的にOKでも実際には動作しないので,実験的に設定しないといけないだろう.
PC側のポート最大電流を超える場合は,電圧駆動するFETを前段に入れて,別電源を用意して,
または,フォトカプラ後段にシュミットトリガを入れて波形を整形して,,と面倒が予想される.
ノイズ分離や別電源用意の都合を考えると後者になるだろうか。
6.ステッピングモータはパルスモータなので,与えているパルスと同期できなくなると回転しなくなる.
この制限に関わるのが,スターティング(自起動周波数),スルーイング(加速率),最高回転数(電圧や回路の出来,回転モーメントにも依存)となる.
今回問題となったのが,最高回転数越えでの脱調で,モータ用安定化電源が緊急シャットダウンする!
CVCC電源のため,電流オーバは考えにくい(自動的に制限電流値まで電圧が落ちる).
そうすると,モータ逆起電力のパルスが制限を超えるのかもしれない.(オシロが出払っていて波形を取っていないが)
安定化電源なら自動停止するが,通常の電源で行うなら,サージ対策や,そもそも脱調させないといった対策が必要になると思う.
2012.07追記
上の安定化電源シャットダウンについて,電源メーカ,菊水の取説を読んでいて該当を見つけた.
「この安定化電源は回路から発生した電流を吸い込む能力はありません」
脱調時にモータから出た逆起電力が行き場をなくすらしい.
モータコイルと並列に,逆起電力を吸収するためのフライホイールダイオードを取り付けておくべきだろう.
隙間を実装の都合に配慮してあけた1列並び
1,2---------------1 A
NULL 2 COM_A(VBB)
3,4---------------3 /A
20,21-------------4 /B #モータ端子
NULL 5 COM_B(VBB)
22,23-------------6 B
NULL 7
5------------------8 Sense_A
19-----------------9 Sense_B
NULL 10
11----------------11 VBB
NULL 12
12----------------13 | #モータ電圧系統ここまで
12----------------14 |GND
12----------------15 |
NULL 16
14----------------17 VDD(5V)
NULL 18
6-----------------19 Monitor #出力ポート
NULL 20
15----------------21 Reset
10----------------22 Step_CLK
16----------------23 CW/CCW #プルダウン10k有入力ポート
7-----------------24 M1
8-----------------25 M2
9-----------------26 M3
17----------------27 PWM_Sync
NULL 28 #集合抵抗のGND
13----------------29 Ref #アナログ入力0.04-1V? 10k多回転可変抵抗で分圧して生成