2019年3月9日土曜日

小型工作機CNC2418 その67(Stepping Motor Driver TB6560 机上検討)

TB6560のステッピングモータードライバボードが届きました!
久々のCNC2418ネタであります^^;

2個以上は、送料がかかるので、1個ずつ3回ポチりました。
US$ 4.73/個(5% OFF)

所が、セラーからメッセージが!
「$5以上の商品は、China Post Registered Air Mailを使いたいので
 送料を$1.3払ってくれ、送料無料も可能ですが追跡Noもなく遅いです」
3つで$1.3なのか、$1.3/個なのか、わからんし、やりとりも面倒なので、
「急がないので、送料無料ので1個ずつ別々に送っていいよ」と返していたのです。
意外に早く、2週間程で、大きな黄色の袋で3個一緒に届きました。
1個ずつ薄い発泡スポンジで包んで、まあまあの包装でした。
出しました!
ヒートシンク側
とても安心できるサイズです^^;
右下のDIP SW横の「HW-090」、ボードの品番なのだろうか?
上左:78M05
上右:74HC123(Monostable Multi Vibrator)何してるのかな~
後で回路図を探すことにします。
入力は、フォトカプラで絶縁されています。
EN:PC817・・・電源でよく見る汎用品。
CW:EL 4N35・・・出力がBCE、PC817より遅い感じ
 バイアス掛けて、見かけ感度を上げたりとかかな?
CLK:EL 6N137・・・出力NANDのデジタルタイプ。
 上2つより1000倍ほど高速応答、さすがにClock用だけあります。
 2回路入りの1つが使われています。
小耳に挟んでいたので、ヒートシンクを外してみると、見事に何もなし( ゚д゚)
これは気づかんです。HKさんありがとうございますm(_ _)m
後で3個ともシリコングリスを塗っておくことにします。
メインチップは、東芝 TB6560AHQという大きなパッケージです。
このPDF Datasheetを見ると、
ブリッジのMOS-FETは、Source/Sinkとも0.3Ω type @1.5A
一方、今使っているA4988は、320mΩ type @1.5A
1.5Aでは、同等性能ってこと???
最大定格:±3A と大きいです。
さて、回路図を探してみることにします。
ボードの「HW-090」で検索してもでてきませんね~
画像検索で探していると同じボードで
「BL-TB6560-V2.0」のシルクを見つけました!
これが正式品番のようです。
Google画像検索「bl-tb6560-v2.0 schematic」で見つけた回路図
ここからいただきましたm(_ _)m
ちと怪しげなサイトで
真っ白のページが開きますが、下の方に回路図があったのです!
サイト内のリンクはクリックしない方がよさそうです。
ちなみに、74HC123の右のロシア語、大事なことかも?
「Вывод 8 к цепи GND」「Вывод 16 к цепи +5V」のようで
訳すと「8pinをGNDへ繋ぐ」「16pinを+5Vへ繋ぐ」の意味でした^^;
さて、A4988とWoodpeckerボードの接続を比較していきます。
本家PololuのA4988の接続図です。
まずは、SLEEPとRESETの結線が気になります。
他の信号は、TB6560ボードと照らし合わせると、
STEP:CLK、DIR:CW、ENABLE:EN
出所:Pololu
CNC2418のコントロールボード(Woodpecker)側では、
RESETとSLEEPは接続されています。
A4988ボード内でSLEEPは、5VにPull-Upされています。
ここは、TB6560とは、接続不要です。
他の信号は、論理やClockエッジTriggerのRise/Fallとか気になります。

ここのAllegro Datasheetのよりも
こちらのサンケン電気のアプリケーションノートが日本語で詳しいてす。

< DIR(A4988)と CW(TB6560)>
・A4988  ・・・L:CCW、H:CW
・TB6560・・・L:CW、H:CCW(A4988と

< STEP(A4988)と CLK(TB6560)>
・A4988  ・・・立上りで状態遷移(シーケンス開始/切替)
・TB6560・・・立上りで状態遷移(A4988と同じ
 TQ1/TQ2は、74HC123により立下がりで変化させ
 直後の立上りで次のシーケンスに移る回路になっている。
 ***2019.3.17 修正***
 その後の「その71」の検討で、A4988とにした。
 理由は、立下がり⇒立上りの期間を短くするため。
 *************

< ENABLE(A4988)と EN(TB6560)>
・A4988  ・・・LOWでENABLE
・TB6560・・・HIGHでENABLE(A4988と
 共に入力ロジックは保持され、出力MOS-FETのみがON/OFFされる。

ENABLEの実際の動きが気になるので
マーティーのCNC2418のコントロールボードWoodpeckerの予備で確認します。
GRBL 1.1f Upgradeで失敗して、この時ATMega328交換したり、
コンデンサ不良修理とか、苦労して修理したGRBL 1.1fのボードです。
・ステッピングモーター静止時/Pause時・・・ENABLE:HIGH
・ステッピングモーター動作中      ・・・ENABLE:LOW
です。
$1=25 のデフォルトです。
$1(Step idle delay, milliseconds)の解説は、GitHubにここにあります。
$1=25 は、ENABLE:LOW ⇒ HIGH 時に25msec モーター電流を保持します。
つまり、25msec後、モーターはフリーになり
Microstepの保持位置が失われてFull Stepの位置に戻るのです。
マーティーのCNC2418は、200stepのモーター、台形ねじピッチ:4mmを
1/16 Microstep駆動しているので
最大でFull Stepの1step分、4 ÷ 200 = 0.02mmズレることになります。
0.02mm=20μmは、XY軸では、そう大したことないのですが
PCBの銅箔 35μm厚のパターンカットでは、半分以上になり
HeightMapを作った後、ゼロ調整してもズレるので
仕上がりに大きく影響すると思われるのです。
$1=255にすると、常にEN(ENABLE)有効にすることができます。
$25=255送信して、RESETしてテスターで確認すると、
停止時もPause時も、ENABLE:LOWのままです。
所が、静止時も100%のモーター電流になり続けるので
ドライバもモーターも発熱してしまい、簡単には解決できないのです。
上記の一連の問題は、YY氏に教えていただきましたm(_ _)m
TB6560には、「Stop Current」設定があり
DIP SWのS2で、静止時モーター電流を50%や20%に設定できるのです。
つまり、$1=255にしても、電流を最大電流の50%や20%に落とせるのです。
これが、TB6560を導入しようとする最大の理由です。
ということで
ENABLEは、倫理逆で接続して、$1=255で使用すればいいことになります。
先のTB6560の回路図の入力部をよく見ると
CW+、CLK+、EN+を共通でVccにして、
CW-、CLK-、EN-を制御すれば、
フォトカプラーでの論理は、変化しないことになります。
しかし、A4988とは、DIRとENABLE(この回路図ではCWとEN)は
論理を逆にしないといけないので、結線はこれにします。

***2019.3.17 修正***
その後の「その71」の検討で、A4988と逆にしたので、下の接続図が正しい。
理由は、立下がり⇒立上りの期間を短くするため。
*************

ステッピングモーターの結線は、最後にするとして
さて、こちらが、ボードのSwitch設定表です。
まず、ややこしいTQ1、TQ2から
東芝のDatasheetでは、この説明があります。
が、このTB6560ボードのTQ1、TQ2には、
74HC123:Mono Stable Multi Vibrator が繋がっています。
解り易いようにClock、TQ1、TQ2部分を抜き出しました。
ここのTIの74HC123 Datasheetに
The calculation for the pulse width is
tw= 0.45・RX・CX at VCC=5V とパルス幅の式があります。
R1:1MΩ、C1:0.1μFなので
 tw ≒ 0.45 x 1M x 0.1μ = 45msec
ですが、RetriggerbleなのでCLKが入力されている間は、twが延長され
74HC123の4pin出力は、CLK入力中(モーター動作中)は、ずっとLOWになります。
モーター静止時は、CLK入力がないので、約45msec後にHIGHになります。
CLKの立下がりで4pin出力がLOWになり、
その直後のCLKの立上りでTQ1、TQ2の状態が読み込まれます。
従って、CLK入力に同期して遅れることなくTQ1、TQ2が切り替わります。
TQ1とTQ2への外部入力なしでは、IC内部のプルダウン抵抗で、LOWです。
整理すると、このTQ1、TQ2の設定に対して
S1は、動作中の電流比を100%、75%切替
S2は、静止時の電流比を50%、20%に切替
という回路になっています。
S2は「Stop Current」という表示になっています。
それと、
SW1:0.33Ω、SW2:0.5Ω、SW3:1.2Ωの電流検出抵抗があります。
(全てOFFにすると電流を検出できないのでまずいでしょう)
S1=TQ1に接続されているので、OFF:100%、ON:75%
SW1~3とS1モーター動作中のPeak電流(Running Current)が設定されます。

TB6560のDatasheetの解説
 Peak Current:IOUT[A]=0.5[V] ÷ 電流検出抵抗[Ω]
をEXCELで計算してみました。
ボードのシルク表示の「0.5」の所は、「0.4」と見た方が無難のようです。
他は、大きくハズレてないです。
1.5~3は、ズレの大きい所で5%です。

モーター静止時(つまりCLK無しの時)は、少しややこしいです。
このTB6560ボードは、先の74HC123回路により、CLK入力無しでは、
TQ2:HIGHのまま、TQ1は、S1に依存せず、S2だけで決定されます。
S2だけで電流比が決まり、静止電流は、次の2つの表のようになります。
電流比は、シルク表示に対してではなく
SW1~SW3だけ(S1に無関係)で決まる電流値に対しての電流比になります。

S2:OFF 電流比:50%
S1位置に無関係でSW1~SW3で決まる電流値に対して50%になります。
S2:ON 電流比:20%
S1位置に無関係でSW1~SW3で決まる電流値に対して20%になります。
それでは、Switchの設定をします。
<Peak Current Selection>
電流設定は、A4988の様な半固定VRではなく、Switchなのです。
1.0Aにします。
・SW1:0
・SW2:1
・SW3:0
・S1   :0

<Stop Current>
これは、モーター静止時(Clock無しの時)の「電流比」設定です。
OFF:50%、ON:20% に電流が絞られます。
・S2:ON(20%)

<Excitation Mode> =Microstepのことです。
1/16にしたいので
・S3:0
・S4:1

<Decay Setting>
ここは、どれがいいのか、よくわかりません?
たぶん、電流波形を見て決めないといけないと思います。
取り敢えず、Normalモードにします。
・S5:0(DCY1)
・S6:0(DCY2)

東芝のDatasheetには、この表があり
更にP16~P23に
「MIXED DECAY MODEの電流波形と設定」の詳しい説明があるけど
動かしてみて波形見ながらじゃないと設定できない内容です。
設定しました!
SW1~3:↓ ↑ ↓ S1~6:↓ ↑ ↓ ↑ ↓ ↓ 
***2019.3.17 修正***
その後、その68その70その71の検討を経て
Switch設定は、XYZ軸、全部同じ、これに決定!
XYZ軸(Peak 1.0A、Stop 20%、1/16 Microstep、100% Decayモード)
SW1~3:↓ ↑ ↓  S1~6: ↓ ↑ ↓ ↑   
*************

さて、動作させる前に
先に動作確認されていらっしゃるYY氏の許可を得て
貴重な波形のスクリーンショットを載せておきます。
実は、YY氏の一連の話を聞いて、TB6560に飛びついたのであります!

これは、静止時電流比20% ⇒ 100%動作への遷移状態です。
・左半分・・・TQ1、TQ2ともLOWで20%の電流で静止状態
・右半分・・・CLK入力され、TQ1、TQ2ともHIGHになりモーター回転開始
一番下の紫色がTB6560のCLK(A4988のSTEP)です。
GRBLの加速設定に従い、紫色がだんだん濃くなっていって
ステッピングモーターの動き始めとともに、
電流比20%から100%に切り替わって行く所を捉えられています。
それにしても、RIGOLのオシロいいな~
出所:YY氏
電流比設定の表はこれです。
今度は、静止時トルク設定50%に変えた場合です。
・左側・・・TQ1:LOW、TQ2:HIGH 電流比50%の静止状態
・中央・・・TQ1:LOW、TQ2:LOW 電流比100%の動作状態
右側・・・静止状態に戻る
これもモーター動作開始と終了でCLKが薄くなっているのがわかります。
ん~ん、やっぱしRIGOLいい!
出所:YY氏
YY氏の経験談によりますと
CNC3040というモデルで
CLKパルスをCR平滑して、シュミットトリガ・インバーター通して
TQ1、TQ2を制御しているものがあったということで
CLKが入ってもすぐに切り替わらず、電流比の切替に遅れが生じて
極低速で動く時にトルクが足りずに脱調したり、角の曲がり角で脱調したり
酷い目に合われたということです。

ということで、これが動き始めを捉えた最も貴重なオシロショット!
先に回路分析したように、このTB6560ボードは、
74HC123でCLK立下がりで、TQ1、TQ2が切り替えることが分かってますが、
見事に1発目のパルスから、TQ1 TQ2とも切り替わっているのが確認できます。

TQ1、TQ2の状態は、CLKの立上りでシーケンスを切り替えるので
直前のCLKの立下がりでTQ1、TQ2を切り替えて、TB6560へ入力してるのです。
すばらし!
これで、懸念事項が払拭され、YY氏と2人でホットしたのであります(^o^)
出所:YY氏
ステッピングモーターの配線をします。
CNC2418のステッピングモーター:17HS1352-P4130をここで調べましたが、
 +A/2B:赤 (誤)
 -A/2A:青 (誤)
 +B/1A:緑
 -B/1B:黒
回転が逆でした(´-﹏-`;)
普通、「1A/1Bと±」と「2A/2Bと±」の組合せは、同じになるはずですね~
ちょっと考えれば気づくのですが、今頃...
これが正解(と思います)
 +A/2A:青
 -A/2B:赤
 +B/1A:緑
 -B/1B:黒
モーターケーブルは、予備ケーブルの残りを使って
電源は、A4988ソケットのJ5の1pin:12V、2pin:GNDから取ります。
半田付なしで配線完了です!


基本動作を確認!
CNC2418のX軸ステッピングモーターだけ、この配線に繋ぎ替えて
X軸だけ動くようにして、動作確認です!
・方向・・・OK
・距離・・・OK
取り敢えず、正常に動きました!

今現在、電流波形とDecayの関係に嵌ってしまっております。
まだまだ抜け出せそうになく、ブログのまとめには、時間かかりそうです。

2 件のコメント:

音屋 さんのコメント...

2418ネタ、お待ちしておりました!
モータードライバー差し替えるのですね。経過楽しみにしております。
僕はリミットスイッチ搭載作業で亀の歩みになっております。時間取れないわ作ったブラケットに不満で設計し直しだわ…
確定申告次期という事もあり、ブログ書くのもサボり中です。今日中には申告済ませて復活したい!

マーティーの工房日誌 さんのコメント...

音屋さん、こんいちは!
いつも真ん中ら辺でRESETかけるのでリミットSWは付けてないんです。
パーツはずっと前に買ってるんですが(-_-;)
TB6560は、ボードが大きめなので設定より取付の方が大変です。