素子:マイクロステップドライバ

ステッピングモーターのマイクロステップ駆動ドライバーの使い方です。ステッピングモーターはカクカク動きますが、マイクロステップ駆動すると滑らかに動きます。通常の駆動ではモーターのコイルに電流を流すか否かで制御しますが、マイクロステップ駆動ではサイン波もどきで駆動します。

「素子」シリーズは既に解っていることをまとめていますが。このページは途中経過も含まれています。

<このドライバーを使うときのポイント>
・TB62209FG、TB6560AHQ共に5Vロジック電源間にパスコンを出来るだけ最短距離で配線する必要があります
 容量は0.1μFで良い。
 入れる場所は、ドライバーのVDD<->GNGの出来るだけ近くです。
 これをやらないとモーターが暴れて回らなかったり、所定のステップ数だけ正確に回転しない という症状が出ます
・モーターのコイルがノイズ発生源になっています。モーター端子<->電源間にFRDを入れると発生を抑制することが出来ます。
 5Vロジック電源間のパスコンが適切なら不要です。
・OSC,CRピンは出来るだけ最短距離でコンデンサを配線します。
 ブレッドボードでは発振してくれないことがあるのでプリント基板を作るべきです。
・マイクロステップ駆動でも振動は消えません。振動が小さくなるだけです。
 最高の性能を求める場合はモーターに合ったドライバーを選択する必要があります。


2009-03-21

実験にはマイクロステップ用のドライバーIC、東芝のTB62209FGを使用します。流せる電流は1.8A程度と少ないのですが安価に購入できます。電流を多く流せる物は¥1000近くしますが、これは¥400程度です。2本だけ大きな足があり、この足から放熱する設計になっています。

PICT9148.jpg

東芝TB62209FG 足のピッチは0.65mm

データシートを一通り読んで各ピンの機能を確認しました。

--------------------------------------------------
1番~3番ピン
--------------------------------------------------
 名 前:
   D MODE 1 1番ピン
   D MODE 2 2番ピン
   D MODE 3 3番ピン
 入出力:入力
 機 能:励磁モードの選択
 接 続:
   励磁モードを切り替えたければMPUの出力ピンに繋ぐ
   切り替えの必要がなければVDDもしくはGND(ロジックグラウンド)に接続する
   このICはGNDが2つ有ります。1つはロジック回路用の電源GNDでもう一つはモーターのマイナス電源です。
 設定値:
  1、2、3番ピンが
  LLL -> 低消費電力モード(=モーターへの通電停止)
  HLH -> 2ビットマイクロステップ
  LHH -> 3ビットマイクロステップ
  HHH -> 4ビットマイクロステップ
 その他:
  以下の設定値もあるが、マイクロステップではないので、そもそもこのICを
  使用するメリットがない。もっと入手しやすいICを使用すればよい。
  HLL -> A相オフ、B相オンにしてローターの回転を固定する
  LHL -> 2相励磁
  HHL -> 1-2相励磁(a) データシート42ページ参照
  HLL -> 1-2相励磁(b) データシート43ページ参照

--------------------------------------------------
4番ピン
--------------------------------------------------
 名 前:CW/CCW
 入出力:入力
 機 能:モーターの回転方向の決定
 接 続:MPUの出力ピンに繋ぐ
 設定値:
  H -> CW(時計回り)
  L -> CCW(反時計回り)

--------------------------------------------------
5番ピン
--------------------------------------------------
 名 前:VDD
 機 能:5V電源
 接 続:電源に接続

--------------------------------------------------
6番ピン
--------------------------------------------------
 名 前:Vref
 入出力:入力
 機 能:モーターに流す電流制御
 接 続:
  2V~5Vにする
  普通は3Vにするようです
  このピンに流れる電流は少ないので、実験用の回路なら1kΩ程度の半固定抵抗を
  接続して電流値を可変出来るようにするのが良さそうです
 設定値:
  RSB、RSAに接続する電流センス抵抗の値と、このVrefの電圧によって
  モーターに流す最高電流値が制御される。

--------------------------------------------------
7、8番ピン
--------------------------------------------------
 名 前:NC
 機 能:回路上は何処にも繋がってませんがこの2つのピンは相互に繋がっています
     テスターで計るとショートしているのが解ります

--------------------------------------------------
9番ピン
--------------------------------------------------
 名 前:RSB
 入出力:入力
 機 能:Vref(6番ピン)とセットでB相のモーターに流す電流を制御する
 接 続:電流センス抵抗を接続する。抵抗のもう一方の端子はモータプラス電源に接続する
 設定値:
  Vrefを3Vにしたときの電流センス抵抗と電流値の関係は以下の通り(トルク100%の時)
   抵抗値   電流
  ----- -------
  0.33Ω  1.82A <-このドライバの最大電流1.8Aを少し超えます
  0.39Ω  1.54A
  0.43Ω  1.40A
  0.47Ω  1.28A
  0.51Ω  1.18A <-ここまでがデータシート上の推奨電流
  0.56Ω  1.07A
  0.68Ω  0.88A
  0.75Ω  0.80A
  0.82Ω  0.73A
  0.91Ω  0.66A
  1.0 Ω  0.60A
  1.2 Ω  0.50A
  1.5 Ω  0.40A
  1.8 Ω  0.33A
  2.0 Ω  0.30A
  2.2 Ω  0.27A
  2.7 Ω  0.22A
  3.0 Ω  0.20A

--------------------------------------------------
10番ピン
--------------------------------------------------
 名 前:RSA
 入出力:入力
 機 能:Vref(6番ピン)とセットでA相のモーターに流す電流を制御する
 接 続:RSBと同じ
 設定値:RSBと同じ

--------------------------------------------------
11、12番ピン
--------------------------------------------------
 名 前:NC
 機 能:回路上は何処にも繋がってませんがこの2つのピンは相互に繋がっています

--------------------------------------------------
13番ピン
--------------------------------------------------
 名 前:VM
 入出力:入力
 機 能:IC内部のチャージポンプ用かな?
 接 続:モータープラス電源に繋ぎます。最大40Vです。

--------------------------------------------------
14番ピン
--------------------------------------------------
 名 前:STANDBY
 入出力:入力
 機 能:全機能イニシャライズ & 省電力モード
 接 続:MPUの出力ピンに接続する
 設定値:
  H -> 通常動作
  L -> 省電力モード
 その他:
  電源投入時は省電力モードにしておく

--------------------------------------------------
15番ピン
--------------------------------------------------
 名 前:CCPA
 機 能:このドライバーIC内部のチャージポンプ用のコンデンサを接続する
 接 続:
  GNDとこの端子間に0.22μFのコンデンサを接続する
  積層セラミックコンデンサで良い

--------------------------------------------------
16番ピン
--------------------------------------------------
 名 前:CCPB
 機 能:このドライバーIC内部のチャージポンプ用のコンデンサを接続する
 接 続:
  CCPCとこの端子間に0.022μFのコンデンサを接続する
  積層セラミックコンデンサで良い

--------------------------------------------------
17番ピン
--------------------------------------------------
 名 前:CCPC
 機 能:このドライバーIC内部のチャージポンプ用のコンデンサを接続する
 接 続:
  CCPBと同じ

--------------------------------------------------
18番ピン
--------------------------------------------------
 名 前:MO
 入出力:出力
 機 能:
  電気角が0度の時にLOWになる
  CLKピンに入力したパルス数をMPUで数えておけば特にこれを検知する必要はない
 その他:
  電気角0度というのはA相に電流が全く流れていなくて、
  B相(OUT_B -> OUT_B-)に100%電流が流れている状態のこと
  1相、2相励磁なら4ステップ周期に1回、1-2相励磁なら8ステップ周期に1回

--------------------------------------------------
19番ピン
--------------------------------------------------
 名 前:PROTECT
 入出力:出力
 機 能:このドライバーICの異常発熱検知
 接 続:
  MPUの入力ピンに接続する。
  割り込み可能なピンがよいPICならRB7~RB4、RB0(最新のPICならRB0~7どれでも良い)
  最低1mA(標準で3mA)の電流が取り出せるのでLEDを点灯させることも出来る
 設定値:
  H -> 異常発熱したとき
  L -> 通常
 その他:
  異常発熱以外の時でも出力がHになるようだ
  回しはじめはHになっている

--------------------------------------------------
20、21番ピン
--------------------------------------------------
 名 前:TORQUE1,TORQUE2
 入出力:入力
 機 能:
  モーターに流す電流を変えることによりモーターのトルクを変更する
 接 続:
  トルクを可変させたければMPUの入力ピンに接続する
  可変する必要性がなければ共にHIGHにしておけばよい
 設定値:
  20,21番ピンの順に
  HH -> 100%
  HL ->  85%
  LH ->  70%
  LL ->  50% モーターに流れる電流は半分になる
 その他:
  モーターに流す最高電流値との関係はデータシート31ページ参照

--------------------------------------------------
22番ピン
--------------------------------------------------
 名 前:OUT_A-
 入出力:出力
 接 続:モーターのA相の端子に接続する

--------------------------------------------------
23、24番ピン
--------------------------------------------------
 名 前:MDT1、MDT2
 入出力:入力
 機 能:定電流制御時の電流減衰速度の設定
 接 続:
  MPUの出力ピンに繋ぐか
  GND,VDDに接続
 設定値:
  MDT1 MDT2 電流減衰速度
  ---- ---- -------
   L    H     12.5%
   H    L     37.5% <-通常はこれに設定して使う
   L    H     75.0%
   H    H    100.0%

--------------------------------------------------
25番ピン
--------------------------------------------------
 名 前:NC
 機 能:何処にも繋がってません

--------------------------------------------------
26番ピン
--------------------------------------------------
 名 前:OUT_A
 入出力:出力
 接 続:モーターのA相の端子に接続する

--------------------------------------------------
27、28番ピン
--------------------------------------------------
 名 前:PGND
 機 能:モーターの電源供給
 接 続:モーターのマイナス電源に繋ぐ
 その他:
  27、28番ピンはショートさせる必要がある

--------------------------------------------------
29番ピン
--------------------------------------------------
 名 前:OUT_B
 入出力:出力
 接 続:モーターのB相の端子に接続する

--------------------------------------------------
30番ピン
--------------------------------------------------
 名 前:NC
 機 能:何処にも繋がってません

--------------------------------------------------
31番ピン
--------------------------------------------------
 名 前:DATA MODE
 入出力:入力
 機 能:CLK入力によってモーターを回転させるか外部のPWMによって回転させるかを切り替える
 接 続:
  通常はCLK入力を使用するためロジックグラウンドに接続
  CLK入力でなければこのICを使うメリットは無い
 設定値:
  H -> PWMモード
  L -> CLK_INモード

--------------------------------------------------
32番ピン
--------------------------------------------------
 名 前:RESET
 入出力:入力
 機 能:
  電気角を強制的にリセットする
  電気角については18番ピンを参照
 接 続:
  MPUの出力ピンに接続
 設定値:
  H -> リセット
  L -> 通常
 その他:
  誤動作を防ぐため、通常ENABLEをLowにしてからリセットする

--------------------------------------------------
33番ピン
--------------------------------------------------
 名 前:OUT_B-
 入出力:出力
 接 続:モーターのB相の端子に接続する

--------------------------------------------------
34番ピン
--------------------------------------------------
 名 前:ENABLE
 入出力:入力
 機 能:モーターを制御しているFETを全てOFFする
 接 続:MPUの出力ピンに接続
 設定値:
  H -> 動作可能
  L -> 出力停止(FETを全てOFF)

--------------------------------------------------
35番ピン
--------------------------------------------------
 名 前:CLK
 入出力:入力
 機 能:
  モーターの回転速度制御
  1クロックで1ステップ(マイクロステップ動作の時は1マイクロステップ)モーターが回る
 接 続:MPUの出力ピンに接続

--------------------------------------------------
36番ピン
--------------------------------------------------
 名 前:CR
 入出力:入力
 機 能:定電流動作時のチョッピング周波数設定
 接 続:
  抵抗とコンデンサを接続する
  抵抗は3.6kΩをこの端子とVDD間に
  コンデンサは560pFをこの端子とGND(ロジックグラウンド)間に接続する
  抵抗は3.9kΩ(周波数は低くなる)でもそんなに発信周波数は変わらない
  配線は出来るだけ短く。ブレッドボードでは不安定。

--------------------------------------------------
FIN端子(2つの大きな足)
--------------------------------------------------
 名 前:FIN
 機 能:ロジックグラウンド
 接 続:
  5V電源のマイナス側に繋ぐ とともに
  パワーグランド(PGND)とも接続しないといけない
  理想的な基板パターンは ロジックグランド、パワーグランドをそれぞれ1カ所でまとめ
  更に両者を1カ所だけで繋ぐ配線にする
 その他:
  基板に放熱できるよう大きくなっている
  ベタパターンを出来るだけ大きく取って基板から放熱するようにする

2009-03-22

EAGLEで回路図を書いてみました。18ピンのPICで大丈夫だと思いましたが、このモータードライバの全機能を制御しようとすると足が全部埋まってしまいます。他にスイッチを付けたりLEDを付けたり出来ません。

PICT9152.jpg

18ピンのPICだとちょっと足の数が足りない

回路を28ピンのPICに書き換えました。LED4個とロータリーエンコーダーを1つ。ロータリエンコーダーを回すとモーターがそれに同期して回るようにします。エンコーダーのチャタリングはハードで除去する回路にしました。

PICT9155.jpg

ブレッドボードで実験するための0.65mmピッチ->DIPの変換基板

PICT9161.jpg

28ピンのPICを使った回路に変更

回路図
ファイル ファイルタイプ 添付ファイルの解説
mstep01.GIF GIF 回路図GIFイメージ まだ実験していないので間違っているかもしれません。

2009-04-01

実験に使うステッピングモーター。オリエンタルモーター製。正面から見たサイズが28mm角と小さい。長さが50mmちょっとあるのでそんなに小型に感じない。ケーブル込みで約¥7300。価格は40mm角程度の物が一番安いようだ。オリエンタルモーターのネットショップで購入したが届くまでに10日近くかかった。よく見ると住所が間違っている。手書きの伝票じゃないので間違えたのは自分だ。

PICT9175.jpg

小型のステッピングモーター オリエンタルモーター KP225PDA

2009-04-09

変換基板を作りました。10枚面付けしましたが3枚は完全に失敗。3枚程度が未修正で使用できそう。残り4枚は一部断線しているかもしれない。やはり10mil幅の配線は無理があるようだ。失敗しない確率が高いのは16mil(≒0.4mm)

PICTX9258.jpg

出来はいまいち

PICT9257.jpg

歩留まりが悪い

PICT9246.jpg

フィルムを2枚重ねにしているので真上からのみ紫外線を照射するようにすべき。要改良。紫外線LEDを使って自作しようか

DIPタイプへの変換基板
ファイル ファイルタイプ 添付ファイルの解説
micro_step_henkan.zip EAGLE EAGLE V4.15 回路図と基板パターンは関連性が切れています。

2009-04-12

PIC+モータードライバーではサーマルシャットダウン(19番ピンがHIGHになる)のエラーになって動かなかったのでモータードライバー単体で実験しました。原因解りませんでしたがモーターの代用品のLEDでは正しく動作するところまで行きました。サーマルシャットダウンは温度上昇だけではなく、ドライバー内部でのあらゆるエラーを表すようです。
マイクロステップ駆動させるとLEDが「もわっ」と点灯するのかと思いましたがON/OFFデジタル動作しかしてくれません。

PICT9307.jpg

モーターの代わりにLEDで動作確認。極性が反転するので豆電球なら1個で済むがLEDだと2個必要。

PICT9309.jpg

モーターを接続して実験。正しく動作せず。

モータを繋いでも期待通りに動作しません。チョッピング周波数にモーターが反応してしまっている感じ。モーターのデータシートを見ると6000rpm程度まで回るらしい、200パルスで1回転のモーターだから、その時のパルス周波数は6000÷60×200=20kHz。チョッピング周波数は100kHzなのでちょっと近すぎるような気がする。

LEDでの動作検証
ファイル ファイルタイプ 添付ファイルの解説
2bitmstep.wmv MOVIE 2ビットマイクロステップ。

2009-04-17

ブレッドボードだと流せる電流が少なくて正しく動けなくなっているような気がします。電流制限抵抗を0.39Ω->1Ωにすると少し動作が改善されるような感じ。気のせいかもしれないが基板を作ってみることにします。

PICT9331.jpg

配線パターンを変えてみる

2009-04-23

基板を作りました。黒い線はGNDのジャンパー線

PICT9376.jpg

基板完成。IC直付け用と、DIP変換基板用の2種

PICT9380.jpg

ジャンパー線多数

PICで制御しようとすると動きません、何処が悪いのか今のところ不明。モーター代わりにLEDを点灯させるだけならブレッドボードでも動作するので、ブレッドボードの回路を少しずつ変形させて基板と同じ回路に近づけていけば原因が解るかもしれない?

PICT9378.jpg

500個で¥300のLED 安いがとても暗い。使い捨ての実験基板用に購入しました。

PICT9387.jpg

動かず

2009-04-24

どうやら発振していないのが原因のようです。36番ピンに発振用のCRを取り付けますが、かなり神経質なようです。指で触ると動き出したりします。
正しく発振していないときは、チャージポンプも動作しません。VDD=5V,モーター電源12Vのとき正常ならCCPAはモーター電源電圧より高い17V程度の電圧になります。チャージポンプが正しく動いていないときはモーター電源電圧より少し低い電圧になるようです。
まだ組み立てていないもう一枚の基板は少しだけマシな配線になっているので、再度実験です。 ...が部品がありません。買い出しに行きます。

PICT9397.jpg

ブレッドボードで動きました

2009-05-03

基板作り直しましたが、現象は変わりません。症状は全く同じ。ボツかな...

PICT9445.jpg

表面

PICT9446.jpg

裏面

PICT9451.jpg

発振の問題じゃないのか?

2012-02-09

行き詰まってしまったのでドライバーを変更してみる。同じく東芝製。面実装品では無いのでアマチュアでも使用しやすいし比較的安価。日本では流行っていないようだか海外製品はこれを使用したステッピングモータードライバー回路が多い。バイポーラ用。

R0013794.jpg

TB6560AHQ 電流も3.5Aまで流せる。ON抵抗は0.6Ωとかなり大きいので最大定格で使うときは放熱器が必要。

2012-02-11

各ピンの機能まとめ。こちらの方が少しシンプルか

TB6560pin.PNG

ブレッドボードで使用できるよう変換基板を作成。注文しておいた実験用モーターも届いた。85mm角サイズになると日本製は高価なので実験用に気軽に買うわけにはいかない。YahooチャイナモールにはCNC関連の商品がかなり多い。カテゴリの分類や検索機能の出来が悪いのでどこにあるのかが分かり難いのが難点。NC関連は「パソコン周辺機器->IC、モーター」の中にある。ギヤ付きのモーターも日本国内価格と比べてずっと安いのでロボット模型の部品を探すのにも良さそうだ。大体10日で日本に届く。

R0013851.jpg

Press-n-Peelで変換基板を作る

R0013865.jpg

中国製。中国からなので送料が¥2552かかった。箱の重さも含めて全部で7.5kg。送料込み¥16194。大きい方は約¥5700、小さい方は約¥1100と安い。

中国製のステッピングモータードライバー回路を見ると足で基板を挟むようにレイアウトしている物がある。こうすると大型の放熱器が取り付けやすい

R0013799.jpg

ブレッドボードでも動いた。

R0013891.jpg

中国製なので当てにならない情報。黒線なんて無いぞ。

R0013889.jpg

誤配線で抵抗が燃えた

R0013901.jpg

マイクロステップ駆動してもそんなに滑らかじゃ無い

2012-02-13

モーターと直列に抵抗を入れてモーターに流れる電流を見てみた。こんなもんか...

R0013905.jpg

モーターと直列に入れた0.5オーム抵抗

R0013906.jpg

マイクロステップ駆動波形

ご参考回路図。NFA,NFBに抵抗が並列で入っているのは0.2Ωといった低抵抗が必要になるため。1Ωなどを並列に入れて0.25Ωを作り出す。TQ1,TQ2はトルク設定なので、動作中に変更不要であれば無接続(内部でLowにプルダウンされている)でも良い。M1,M2,DCY1,DCY2のディップスイッチは実験用として付けてある。使用するモーターや負荷が決まってしまえばプルアップ/プルダウンするだけで良いので不要になる。

schstepper.png
中国製ステッピングモーターテスト回転
ファイル ファイルタイプ 添付ファイルの解説
mstepchina.wmv MOVIE マイクロステップ駆動。駆動方式はこれを見ても解らないけど...。3000ppsまで回るモーターだが電圧、電流等を気にせずに回る最高回転数は1000pps=300rpm程度。1000ppsより早く回したい場合は、電流、電圧、増速などを気にする必要がある。

開発専用機が壊れた。再起不能になってしまった感じ。BIOS設定画面すら出ない。部品が古くて最新型に流用できないのでそっくり買い換えた方が安上がりになりそう。3ヶ月くらいバックアップを取っていなかったのでディスクの中身を救出できないとダメージ大

R0013914.jpg

2012-02-16

開発機が直ったので両面基板にしてみた。Arduinoのシールド。サイズは50×56mm。ICは2個載っている。

R0014039.jpg
回路図&ボードレイアウト
ファイル ファイルタイプ 添付ファイルの解説
TB6560arduino.zip EAGLE EAGLE V4.16ファイル。製造していないので回路は間違っている可能性有り

2012-03-10

2カ所問題があったがarduinoステッピングモーターシールド完成。基板が10枚出来てしまったので自分用2枚を残して8枚を販売。以下購入者用情報

R0014179.jpg

基板問題点その1。ピンヘッダ穴が0.5mmずれている。矢印のピンヘッダ穴が実際は0.5mm左にあるのが正しい位置。市販品のarduinoを使用していれば問題にならないがarduinoもどきのユニバーサルピッチ基板用穴を使うと基板が僅かに斜めになる。たぶん見た目には解らない。

R0014174.jpg

arduinoデジタル出力13番ポート(LEDが繋がっている場所)が電源に繋がってしまっている。シルク印刷R4の下を通っているパターンをカットする。写真ではR4とLED2のシルク印刷の間でパターンをカット。

PICT2786.jpg

詳しくはデータシート参照
・dipスイッチの代わりの0Ω抵抗で代用可
・2回路載っているが1回路だけ実装して使用することも可能
・タクトスイッチはTB6560とは直接関係は無い
・実装されていないコンデンサはモーター電源のパスコン。強力なモーターでなければ不要
・基板のパターンが2mm程度なのでモーターに流せる電流は最大2A程度
・LEDは無くても動く
・モーター電源は基板裏面に端子有り。VMが+、PGNDがモーターGND

R0014185.jpg
回路図&ボードレイアウト
ファイル ファイルタイプ 添付ファイルの解説
tb6560sch.PNG PNG 回路図
tb6560brd.PNG PNG 基板レイアウト。部品番号では無く部品の値が入っているのでこれを見ながら半田付けすると良い
TB6560arduinoCORRECT.zip EAGLE 2点の問題点を修正したEAGLEファイル。現物とは異なる。
TB6560arduinoBUGARI.zip EAGLE 2点の問題点を修正していないEAGLEファイル。現物と同じ。
stepperSW.zip OTHER arduinoスケッチ
tb6560pcbard.wmv MOVIE arduinoスケッチを動かしているところ

2012-03-25

もう少し電流を流しやすい基板パターンを作った。これはキット化予定。モーターを回すキットはソフトをいじらないと実用になる物にならないのでUSB経由でプログラムを書き換えられるようにする。

R0014248.jpg

2012-03-27

液晶&ロータリーエンコーダ付き回路を作ってみた。
スイッチを押したときの動作はこんなところか
 ・回転方向:
   CW,CCW,停止
 ・回転速度
   RPM 1ステップ何msで動くかといったことでも良い
 ・回転量
   1000ステップ分回すといったこと
 ・待ち時間:
   動作完了後一定時待つ
   これは回転方向を停止とし回転速度と回転量で生成できるため専用のパラメータは不要
 ・順序処理:
   スイッチ1の動作が完了したら自動的にスイッチ2の動作を開始する
   部品としてスイッチ2が存在している必要は無い
   10回転右に回った後10回転分巻き戻しといった繰り返し動作はこの機能で実現できる
 ・繰り返し回数
   100回転CW方向に回って、それが終わったら即逆回転で100回転、それを10回繰り返す
   順序処理の繰り返しになる
 ・優先順位:
   繰り返しから強制的に抜けたいときにこれが必要
   SW1を押したときの動作を実行中は他のスイッチを押しても無効にしたり
   SW2は緊急停止スイッチなので全ての動作に優先するといったしくみ
 ・トルク:
   TB6560AHQの機能。トルク4段階設定可能。
   ステッピングモーターの保持トルクは大きいので停止中は電流を抑えてトルクを落とす

プログラムの中のパラメータだけ1つのヘッダファイルにまとめて

#define SW1_DIRECTION CCW // 回転方向
#define SW1_RPM 10.5 // 回転速度
#define SW1_ROTATION 1000 // 回転量
#define SW1_TIMES 10 // 10回繰り返し _NEXT と組み合わせないと意味が無い
#define SW1_PRIORITY 1 // 優先順位
#define SW1_TORQUE 100 // トルク
#define SW1_NEXT SW2 // 順序処理

とするか、液晶+ロータリーエンコーダで設定できるようにする。複数のモーターを協調動作させたいときは基板から電線を引き出しマイクロスイッチを付けてピタゴラスイッチ回路を組めば良い。エンコーダによる設定方式の欠点は部品代約¥1000の上昇。液晶ディスプレイ、エンコーダ、つまみEEPROMを使うので容量の大きいPICが必要。プログラムは1500行程度か?

R0014253.jpg

2012-03-29

大体できた。EEPROMの初期化がまだなのでもう少し大きくなる。大したことやってないんだけど... 企業で使う業務用プログラムでも核となる心臓部のコードはうんと小さい。9割はエラー処理やユーザーインターフェースだと思って良い。このプログラムは心臓部1割、後で読みやすくするための工夫が2割、ユーザーインターフェースが7割。エラー処理は皆無。エラーが発生しても対処方法が無いので、そもそもエラーが発生しないようにユーザーインターフェースで入力を拘束する。それでも小さなプログラムは意味のあるコードだけで出来ている。プログラムは大きくなるほど永久に実行されない部分があったり、使われる前に全体が捨てられるケースが多くなる。原因の多くは作る側の能力不足。完成した状態をイメージできないと使える物にならない。完成状態を作り手に的確にイメージさせることが出来るのはかなり優秀な依頼者。

R0014262.jpg

基板はFusionPCBに発注済み。オーダー番号は同時に購入した基板が複数あっても1つしか割り振られない。同サイズ、異枚数の基板を同時注文すると両者を区別できなくなる。FusionPCBのファイル名命名規則に無いがQTYを追加しておいた。たぶんこれで解るだろう。

R0014258.jpg

2012-03-31

もう一つ作った。これはRS422およびTTLレベルインターフェース付き。TTLレベルはモータードライバー直結。RS422を使う場合は送信側の基板を自分で作れる人で無いと使えない。自分用には3枚あれば良いので7枚は基板単体で販売する予定。これで3種になった
液晶付き回路:ハードもソフトもよくわからないがキットが作れる人
ソフトが書ける人:Arduinoシールド
ソフトもハードもいじれる人:この基板

R0014275.jpg

2012-04-14

1カ所穴サイズが間違っていた。LCD基板の取付穴だったのでドリルで追加工

R0014420.jpg

2012-04-17

Yahooチャイナモールで買ったモーターを回してみた。
ファイル ファイルタイプ 添付ファイルの解説
motordai.wmv MOVIE 大きいので振動もすごい。シーケンス動作が可能。

Yahooチャイナモールは閉店したようだ。5月となっているが閉店済み。本業のオークションを圧迫したか、不着事故の多発か?

R0014443.jpg

2012-04-18

プログラムほぼ完成
ファイル ファイルタイプ 添付ファイルの解説
stepperkansei.wmv MOVIE ステップ間隔10msで50ステップCW
ステップ間隔3msで150ステップCW
ステップ間隔5msで200ステップCCW
1秒間停止
これを2回繰り返し ....という設定

2012-04-20

流す電流を増やしたら誤動作。モーターを回転させると電源装置に逆流して電源電圧が上がる。負荷が高くなると症状は収まる。TB6560内部のFETが全部OFFになってモーターのコイルにたまった電力が逃げ場を失って暴れている感じ。FRDを追加したら誤動作しなくなった。基板は作り直し。最初に手を出してうまくいかなかったTB62209FGもこれが原因か?

R0014452.jpg

FRDを追加。FRDは巨大な物が多い。面実装品でもかなり大きめ。モーター電源GNDとA+、B+、A-、B-間に入れてある。電源プラス側にも入れて合計8本使うのが正しいがGND側だけで症状は出なくなった

R0014450.jpg

ドライバーの評価ボードにはダイオードは入っていないようだ。ドライバー内部にダイオードが入っているのだがたぶん速度が遅い。

R0014449.jpg

中国製(たぶん)のCNC基板にはダイオードが入っている。GND側にしか入っていないらしい。

2012-04-23

絶縁されている電源にノイズが載ってくるのでいろいろ実験。電源間にロジックアナライザを繋ぐとノイズが入っているのが解る。デジタルオシロでも1V近いスパイクノイズが入っているのか観測できる。たぶん1Vではなくもっと電圧は高いと思うがオシロの性能が低くてよくわからない。ドライバーを寝かしてレイアウトするとこのパスコンはとても入れにくい。ドライバーの中央が強電、両サイドが弱電というピン配置なので強電をぐるっと迂回した長いパターンになる。最短距離で繋ぐためには基板をくり抜きドライバーの上(足の出ていない方)にパスコンをレイアウトすると短距離で配線できる。海外製の基板は確かにそのようになっている。電流を余り流さないのであればドライバーを立てればパスコンが入れやすい。そうすると太い配線がやりにくくなる。

R0014469.jpg

さらにFRDを追加。モーター電源プラスとA+、B+、A-、B-間に入れた。あまり効果無い感じ。

R0014473.jpg

これは効果大。弱電側の6,20番ピン間にパスコンを入れる。

2012-04-27

最初に試してみたTB62209FGも動いた。原因はただのバグ。このドライバーのポイント
 ・CRピンのパターンは出来るだけ短く
  発振しているか否かはオシロスコープで観測できる
 ・5V電源のパスコンは出来るだけ最短距離で。0.1μFを入れておけば良い
 ・電流は最大定格まで流さないこと。1.2Aまでに抑える
1.8A設定で動かしたら壊れた。ドライバーの予備を全部使い切ったのでTB62209の実験ここで中断。

R0014480.jpg

1A以上流すとドライバーがかなり熱くなる

R0014481.jpg

パスコンは出来るだけドライバーの近くに入れる。無くても動いたが時々ノイズが入って誤動作している感じ。

TB62209
ファイル ファイルタイプ 添付ファイルの解説
tb62209.wmv MOVIE 4ビットマイクロステップ駆動。5V電源はpickit2から供給。

2012-05-03

バグ取りはほぼ完了。プログラムは約2000行になった。この状態で安定して動いている。TB6560AHQの回路上のポイントは
 ・OUT_A+,A-,B+,B-端子とPGND、VM間にFRDを入れる(合計8個)
  流す電流が小さければFRDは省略可能
 ・ロジックGND、ロジックPOWER(20番ピン)にパスコンを入れる
  0.1μF-50Vの積層セラミックコンデンサで良い
 ・電源への逆流を防ぐためにVMA,VMBにダイオードを入れる
  (VMA,VMBはショートさせるのでダイオードは1本)
の3点。これ以外はデータシート通り。放熱器はこれくらいのアルミ板を付けておけば十分。グリスは塗っていない。クリップで挟んであるだけ。

R0014523.jpg

2012-05-04

基板くりぬきバージョン。部品が届いてから基板の発注をかける。部品が届くのは5/14。何でこんなに納期長いんだろう?

R0014526.jpg

2012-05-06

TB62209の両面基板。放熱を考慮したパターンにしてある。サイズは40×50mm。白丸が必須接続。それ以外はMPUからも制御できるがDIPスイッチで設定できる。電源は複数有るが基板上で繋がっている。

R0014529.jpg

2012-05-12

部品が届いた。3AのFRD。でかい。

R0014541.jpg

2012-05-15

基板をくり抜くと放熱器が取り付けにくいのでパスコンの配線を長く出来ないか実験。電線で延長しても150mm程度までいける。

R0014563.jpg

巨大チャックで負荷をかける。消費電力20W。

R0014565.jpg

パスコンはそんなに最短距離で無くても大丈夫

FRDは無くても動いた。パスコンの方が重要。FRDは安全策のため入れておく。パスコンの取り回しも含めてレイアウトやり直し。

R0014566.jpg

FRDは大きさが間違っていた

R0014568.jpg

FRDを取り外して再実験

2012-05-16

レイアウト完成。電源パターンが太くなるように工夫したのでノイズにだいぶ強くなっているはず。部品の寸法が合わないと困るので部品が届いてから基板を発注。

R0014571.jpg

2012-05-18

パターンを印刷した物の上に部品を置いて寸法確認。基板が届くまで半月待つ。

R0014578.jpg

2012-06-03

基板が届いた

R0014732.jpg

2012-06-09

ArduinoからはCLKパルスだけ供給。白い電線がそれ。それ以外はHighかLowに固定。消費電力などを気にしなければCLKとCW/CCW(回転方向)だけをMPUから制御すればモーターが回る。Arduinoシールドより一回り小型。電流1.2A流し続けると基板の放熱パターンだけでは過熱する。数分なら問題ない。MPUが無いと動かないので自作派のための回路。

R0014765.jpg

2012-06-16

作り直した基板も組み立て完了

R0014837.jpg

2012-06-18

Arduinoシールドを2種作った

R0014842.jpg

2軸仕様

R0014843.jpg

1軸仕様 こちらは大電流流せる

2012-06-19

ノイズ対策はうまくいった。

R0014847.jpg

2012-07-05

秋月電子の抵抗はたぶん中国人がゴム印で抵抗値をスタンプしている。4.7Kの中に47Kが混ざっていた。4K7は4.7Kの意味。ロット番号が同じなので明らかに押し間違い。念のため抵抗値をはかってみたが4.7K。

R0014921.jpg

2012-07-08

Arduinoシールド2種基板到着

R0014929.jpg

2012-07-11

組み立てるのは簡単だかarduinoシールドなので説明書を作るのがかなり面倒。サンプルプログラムも必要になる。

R0014978.jpg