秋月電子のL6470キットをデイジーチェーン接続(1)

STマイクロのステッピングモータードライバー「L6470」が暫定最強とのことですので、
秋月電子で購入して試してみました。
最終目標として、3つのステッピングモーターをmbedで芋蔓式(デイジーチェーン)に制御したいと考えています。
L6470driver_title.png

結論を先に書くと、L6470のキットを買ってきて、arduinoやmbedに結線して、
ネット上に転がってるサンプルを実行したら簡単にできると思って調子こいていたら・・・
回転させるまでに1週間以上を要しました。
現在入手しやすいものとして秋月電子通商のモノと、StrawberryLinuxのモノと、Sparkfunのモノがありますが、
今回この記事で使用するのは秋月電子通商のモノ<AE-L6470DRV>になります。


L6470の特徴

L6470の特徴としては、ショップや他ブログ記事で書かれている通り、

  • 1/128のマイクロステップ駆動ができる
  • SPIの4本線で制御ができる
  • 加減速コントロールが用意されている

が挙げられます。
マイクロステップ駆動というのは、ステッピングモーターの「1回転がNステップ」
というハードウェア上のものを分割して、もっと滑らかに駆動できるようにしたものです。
(マウスとかの分解能とかと同じかんじ)
一般流通品だと16分割や32分割くらいが主流なのですが、L6470はなんと最大128分割
分割なしの駆動だと1ステップ毎にガタガタと振動や音を立てるモーターでも、
128分割することで振動、騒音をたてずに駆動することが可能になります。
(あと、ステッピングモーター独特のキュラキュラ音がかなり抑えられます)
SPIの4本線制御はデイジーチェーン接続することで、
「どれだけモーターの数を増やしても4本線(GND含め5本?)で制御できる」というメリットがあります。
ただし、これはデイジーチェーン特有のタイミングずれなどが発生するので、
人や使用目的によってはデメリットに代わるのかもしれません。
arduino unoなんかはもともとGPIOピンの数が少ないため、SPIでデバイスを制御できることは
大変喜ばしいことかと思います。
arduino due?GR-SAKURA?ああ、そんなのもありましたねぇ・・・(失笑)
加減速のコントロールは、普通であれば駆動時や停止時に複雑な計算をして
パルスコントロールを行わなければなりません。
L6470ではあらかじめパラメータを与えておくことで加減速を自動で行ってくれます。
モーターの脱調抑止や、機械寿命を延ばすのに使えるかもしれません。
(加減速の傾きなどをあらかじめ計算しておく必要はあります)

L6470の注意点

L6470は便利な機能を持っているのですが、
便利な機能にステータスを全振りしてしまっているために、厄介な部分もたくさんあります。
たとえば、

  • データシートの記述がグチャグチャ
  • コマンドが複雑
  • 計算式が厄介
  • チップが小さいため放熱が追い付いていない

とか。
これ以外にもいろいろあるんですが、パッと目につく厄介な部分は上記4点です。
データシートの記述は他のブログでも書いてある通り、記述の順序や注意点が
「いや、そこじゃねぇだろ」ってツッコミたくなる部分が多々見受けられます。
たとえば36ページにSPIのデータ送出やタイミング表が載っているのですが、
実は13ページにサラっと重要なことを書いていて、その後一切触れられていません。
l6470timing_spimax.png
▲SPIの項目に5MHz以下という記述があるのはここ1か所だけ・・・
コマンドや計算式も今見てもサッパリな部分もありますので、
データシートを見ただけで「ただモーターを静かに回したかった消費者」のテンションダウンは必至。
(これで逆に燃え上がるのであればシステムエンジニアとか向いてるんじゃないかな・・・)
arduinoやmbedでジャンパーワイヤーをつないだらすぐ使えるようにするために、
とりあえずサンプルプログラムを書くことから始めました。
次回の記事でL6470の結線方法と、プログラムについて触れていきます。


コメントを残す