2017年9月16日土曜日

小型工作機CNC2418 その34(GRBL v1.1f レーザー TTL制御)

レーザーのTTL制御をやってみます。
CNC2418は、5.5Wのレーザー付きを購入しています。

結線して直ぐ終わるだろうと思ったのですが~
GRBL v1.1fのLaser Modeの
M4:Dynamic Laser Power Mode
が思いの外、難解な動きをするのであります。
動作を掴むのにえらく時間がかかってしまいました。
マーティーの性格も相まって、測定地獄にハマってしまったのです。

まずは、レーザーダイオードの両端の電圧から
S20 で Vop:3.6V(”LD"端子の電圧)
GNDは、左下の赤矢印
横でレーザーがでているので画面が青っぽいです。
レーザーのノーマル駆動(12V Direct PWM)と
TTL制御の違いを波形で見たいので
レーザーダイオードの代わりに
シリコンダイオードをダミーとして接続して
波形や特性を見ることにします。
レンズ外しておけばいいかもですがレーザーが怖いので。

CNC2418の5.5Wのレーザーダイオードの品番はわからないので
たまたま見つけた 日亜化学の定格2.3AのBlue Laser Diode
NDB7A75 のDatasheetを参考にします。
If=2.3AでVop 3.7~5.2Vなので
単純計算の中央値をとって Vop:4.45V
シリコンダイオードは、手元にあった富士電機のERD08M-15
1500V 5A TO3パッケージのダイオードです。
たぶん30年前に入手したものです。
5V 2A流れるとしても10W、
1個当り2Wにもなるのでこれ位のパッケージが必要です。
順方向電流電圧特性曲線から
Io=2.3A付近は、Vf≒0.95V 
4.45V÷095V=4.7倍
古いのでDatasheetはコピーのPDFしか落ちてないのです。
まずは、5個直列にして青色レーザーダイオードのダミーとします。
レーザードライブ基盤のLD端子に接続します。
ダイオード5個
S20 で Vf:4.2V(”LD"端子の電圧)
実レーザーダイオードは、Vop:3.6Vなので
ちょっと電圧が高過ぎますね~
ダイオードを1個ショートして
4個直列にします。
運良く丁度、Vf:3.6Vになりました。
これで実レーザーを照射せずに測定できるでしょう。
測定中の全景。
DC電流レンジがあるクランプメーターで電流も測ります。
まずは、TTL端子を使わないノーマル駆動(12V Direct PWM)
$32=0:Laser Mode OFF
S50 電圧(”LD"端子の電圧)
S50 電流(”LD"端子の電流)
もうこんなに流れているぞ?
ざっと 4V x 1.12A =4W も?
何と!今までS50で4Wも入力されていたのです。
効率50%として2W
効率40%として1.6Wのレーザー出力ということになります。
S100 電流
S200 電流
えっ!もう2A近いぞ!
S500  電圧
S500 電流
S200と変わらない?
ポカミスかと色々見直しますが間違っていません。
S1000 電圧
S1000 電流
う~ん、S500~S1000は、一定ですかあ?
1.91~1.93で変動していましたが1.93の撮影成功!
全然リニアじゃないですね~
S値での変化が非常に急激です。
S500辺りから電流IfはMAX状態です。
気を取り直して
では、TTL制御にします。
CNC2418付属のレーザードライブボードです。
TTL制御では、"12V"コネクタには、DC 12V
TTLに制御パルス(0 to 5Vのデジタル)をいれます。
これは、HIGH(5V)アクティブの信号でなくてはなりません。
TTL制御パルスには、
Power MOS-FETのGate信号を使います。
この信号は、ATmega328PのD11 15ピンから来ています。
いわくつきのWoodpeckerモドキ基板を使います。
GRBL v1.1f 2017-08-01版で
PWM周波数:7.8KHzにしています。
TTL制御のためのリード線を引き出します。
DC 12Vは、ここにリード線を直付けして取り出します。
Woodpeckerモドキの一つだけ良い所。
ヘッダーピンの”Zen”と”Yen”の間のピンに
ATmega328Pの15ピンのPWMドライブ信号 D11がでているのです。
その代わり、Zen端子が1つしかないのです。
DZT's storeの正規Woodpeckerは、ここは”Zen”になっています。
接続しました。
では、TTL制御の場合のレーザー両端電圧波形です。
シリコンダイオード4直列のダミーで測定しています。
$32=0:Laser Mode OFF
S10では電圧・電流ゼロです。
S20から
実レーザーダイオードでは、
S25~30でやっと発光し始めます。
S20 電流
すこ~し流れていますが
クランプメーターの誤差の範囲です。
たぶん0.02~0.05Aでしょう。
まだレーザー発振していません。
S200 電圧。
12V PWM駆動と違って、DC+パルスになっています。
下降スロープの所は、電圧から見て、レーザー発振しないはずです。
S200 電流
さっきと違って緩やかな立ち上がりです。
S500 電圧
 S500 電流
S900 電圧
S900 電流
S1000 電圧
Duty 100%になっています。
Vf:4.0Vかな。
S1000 電流
Vf:4.0V  Io:2.36A
これはダミーのシリコンダイオードですが
LDの効率50%とすると
4.0 x 2.36 ÷ 2 = 4.72W
実レーザーダイオードは、Vopがもう少し高いと思われます。
外側のラベルの定格5.5Wなのでこんなもんでしょう。
たぶん、ドライブ基板上のポテンションメーター(多回転VR)で
MAX電流が調整されているものと思われます。
表示は、5500MW
あちらでは、”m” と ”M” を区別しないのかな?
グラフを作ってみます。
入力パワーを見たいので、電圧は、これで測定します。
一応”TRUE RMS” 真の実効値がでるやつです。
電流はまたこれ、クランプタイプのハンディー電流計。
MASTECH MS2108(本体はMS2108A)
箱の裏に仕様が
"2108"と"2108A"では、 レンジが異なっています。
DC40Aレンジは、±2.0%+6とあります。
[REL]ボタンでゼロRESETしても
0.02A位ふらついています。
Max40Aレンジで2Aそこそこを測定するので
あまり精度は期待できません。平均値計測です。
Dutyが上の方では発熱で変化するので
印加5sec後の写真を撮って記録しました。
面倒なので一発撮りです。数回測って平均はしていません。
今まで使っていた”PWMされた12Vで直接ドライブ”していた
”12V Direct PWM”の線がDuty 10%以上でほとんど変化なし。
TTL制御の方は、比例直線に近いです。
電圧・電流特性はこんなんです。
どうやら12V Direct PWM駆動だと
DC-DC定電圧回路として動作しているようです。
一般的なレーザーダイオードの特性です。
上のグラフでIoが低い所は、LED発光かレーザー発振かわかりません。
出典:ROHM
回路図は見つかりませんが、
12V PWMは、"12V”コネクタに入ると
いきなり470μFのコンデンサで平滑されています。
(赤コネクタの上の電解コンデンサ)
もはや、レーザードライブ回路は、PWM幅を検知できないでしょう。
平滑後の電圧を感知して定電流ドライブしているわけでもないですね~。
12V Direct PWM駆動時の
”12V"端子の波形
S100
プローブ 10:1なので2V/divです。
S200
S500
もはやパルスはありません。
ということでようやく実レーザーで照射テストを始めたら
M4 Modeでは、S値に対してやたらとパワーが下がります。
なんか変です。
う~ん、また長くなりそうです。
ここから先は、TTL制御の検討というより
Laser Modeの詳細版になっています。

D11 15ピン信号のパルス幅を計測してみることにします。
S100 = Duty 10%の波形。
カーソルを1周期に合わせています。
0.128msec 7.772KHzとでています。
カーソルの分解能:0.001msecです。
USBだけ接続すれば、GRBLは動作し、Candleも動作します。
実際にはステッピングモーターは動きませんが
WoodpeckerのATmega328Pも、Candleも、動いているつもりなので
D11 15ピン信号のパルス幅を計測するには都合がいいです。
$32=1のLaser Mode/M4 Modeの時は、
動いる時だけレーザー照射するようになっています。
止まっていると15ピンのパルスはでません。
そこで、Step:Continuouslyにすると、
ジョグボタンを押している間は、Feedで指定した速度で移動しているので
15ピンからパルスを出してくれます。
例えば、この場合は、
ジョグボタンを押すと数秒でFeed:500に達し、そのまま動いてくれます。
実際には、ステッピングモーターは回らないので心配はいりません。
動作しているのと同じ状態で15ピンからPWMパルスが出ます。
その間にオシロで測定するわけです。
Feed欄には、自由に数値を入力できます。
実験のためF5000まで測定しようと思うので
$110=5000
$111=5000
にしておきます。
ステッピングモーターは回らないので大丈夫なのです。
$32=0:Laser Mode OFFでは、きれいな直線です。
$32=1:Laser Mode ONの
M3 Mode:Constant Laser Power Mode
でも同じ結果になります。
同じ線上に乗りました。
GRBL v1.1fのレーザーモードについてはこちらを
Laser Mode ON、M4:Dynamic Laser Power Modeの場合は、
Feed SpeedがF170より速いと
S値で指定したDutyまで広がらないのです。

その妙な動きを、まずは、動画で(これは普通の動き)
Laser Mode ON
M4:Dynamic Laser Power Mode
F100 S500
Step:Continuouslyでジョグボタンをクリックしたままにすると動き始め
直ぐにF100に達するのでDutyが広がって50%になり
クリックを離すと減速してDutyが狭まっていきます。
(ガチャっと言う音がクリック音です)
(2回やっています)
F100では、Laser Mode ON / OFFに関係なくこれと同じになります。
これが妙な動き
上のからF100→F1000にしただけです。
Laser Mode ON
M4:Dynamic Laser Power Mode
F1000 S500
ジョグボタンをクリックしたままにすると動き始め
Feedが速くなるにつれDutyが広がっていきますが
F1000に達しても50%にならず広がらなくなります。
S500なのに20%位までしか広がらないのです。
クリックを離すと減速してDutyが狭まっていきます。
なぜだかわかりません。
これがLaser ModeのM4 Modeの動きなのです。
では、測定データのグラフを!
【F値を固定、S値に対するDuty変化
(Laser Mode ON、M4:Dynamic Laser Power Mode)
F170までは、
Laser Mode ON / OFFに関係なく同じで、
S値÷10=Duty になります。(F100/F170の線)
Laser Mode ONのM3 Modeでも、F値に無関係でF100/F170の線です。
所が、F170超えると、M4:Dynamic Laser Power Modeでは、
同じS値に対してFeed Speedが速くなるほどDutyは小さくなるのです。
動作中のDutyの変動範囲は、
F100 M4 S1000では、0~100%ですが
F1000 M4 S1000では、0~42%
となるのです。
逆に、Max Duty50%にしたい場合は
F1000だとM4 S1200
という命令にしなければなりません。
しかも、S値のMAX $30=1000としていても、S1000以上が指定できるのです。
式を導き出してみます。(SQRT:
所定の[F値]で[Duty比]にしたい時の[S値]は、
S値 = Duty比 x{1000 x SQRT(F値 / 176)}
例えば、F500でMAX 50%にしたい場合は、
S = 0.5 x {1000 x SQRT(500 / 176)}= 843
Gcodeで $32=1 M4 S843 G1... F500 という具合になります。
【S値を固定、F値に対するDuty変化
(Laser Mode ON、M4:Dynamic Laser Power Mode)
上の実験でわかったように、Feed F170以上では、Feed速度でDutyが変わります。
これは、Sxxx命令固定して、指定Feed速度に達した時のMax Dutyです。
この線上を状態遷移するのではありません。
F1000のM4 S1000では、0~42%
F1000 M4 S500では、0~21%
の間でしかDutyが変化してくれないことを意味しています。
何故こうなのか?もはやマーティーの理解の域を超えています。
【S値を固定、F値に対するDuty変化】
上と同じですが、X軸(Feed Speed)対数にしてみました。
パワーの関係を見る時は、対数がいいです。
きれいなグラフができると楽しいですね~
グラフフェチなのだろうか?(^^ゞ
なぜか、
$30=1000で指定していても
S5400など1000位上の命令を受け付けてくれます。
実際、上のグラフの様に特性が変化するのです。
このS値について何かないかと
GRBL v1.1f ソースの[grbl]フォルダ内の全ての***.hファイルを覗きましたが
コレに関する設定はありません。

ということでやっと実照射テストに入れそうです。
この前やったこの図形です。
まずは、ノーマルの
12V Direct PWM
S50 F1000
今更ですが、”12V Direct PWM”とはマーティーが勝手に命名しています。
これで約4W(レーザーへの入力電力)
紙は厚み0.17mm(カレンダー紙)
先のグラフから12V Direct PWMのS50では、4W、
TTL制御のLaser Mode OFFの4Wは、S420になります。
TTL制御、Laser Mode OFF
S420 F1000
同じ位の焦げ感になりました。
ということは、ダミーのシリコンダイオードで作ったグラフが
実レーザーダイオードの特性に合っているということが言えます。
$32=1:Laser Mode ON
M3:Constant Laser Power Mode
Laser Mode OFFと同じなので
S420  F1000
$32=1:Laser Mode ON
M4:Dynamic Laser Power Modeでは、
前と同じMaxDuty:42%にしたいので
F100のS420は、F1000のS1000に相当するので
先の式、S値 = Duty比 x{1000 x SQRT(F値 / 176)}に当てはめ
S = 0.42 x {1000 x SQRT(1000 / 176)}= 1001
グラフからもS1000を読み取れます。
$32=1:Laser Mode ON
M4:Dynamic Laser Power Mode
S1000  F1000
大きな円弧や長い直線は、上とほぼ同等の焦げと見ていいのではないでしょうか?
星の角などでパワーが押さえられているのがよくわかります。
距離が短いのでF1000に達してなく上のより若干弱い感じもします。
苦労して導き出した先の式は今回の最大の収穫です!
時々、焦げてないのは何故か不明です。
次は、F150でいきます。

F1000→F150だと、単純比例ならS420→S63ですが
パワーがDuty比の2乗で効いてくるはずなので、Feed比のルートになるはずです。
420 x (150÷1000)=163
S420→S163 とします。でいいはずです。

$32=1:Laser Mode ON
M3:Constant Laser Power Mode
S163  F150

S420 F1000より少し弱いかな?
TTL制御は、DutyとPowerが比例直線に近いので、
このような計算で試行錯誤の時間をかなり短縮できると思います。
F170以下では、
M3 Mode と M4 Modeは、同じS値でいいはずです。
$32=1:Laser Mode ON
M4:Dynamic Laser Power Mode
S163  F150 
上と同等で、星の角など遅くなる所だけパワーが絞られているのがわかります。
でも、Laser Mode Onでは、照射しない時がありますね~
バグかな~?
途切れは、G0→G1に移る時に発生しています。
レーザーパワーが直ぐに立ち上がっていない感じもします。
v1.1f 2017-07-17版 → 2017-08-01版のリリースでも
G0→G1のバグ修正とあったので
まだ完全に治ってないのかもしれません。
$32=0:Laser Mode OFF
S40  F150
TTLのS163は、12V Direct PWMのS20弱になるので
これは、レーザードライブ回路が安定しないというか
S35でも焦げもしないので、LED発光の可能性もあります。
S40からやっと切れ始めます。
低S値では、LED発光領域からレーザー発振への閾値もあり
連続でも線形でもないのでこんなもんでしょう。
それにしても、Laser Mode OFFでは、照射ミスがないです。
G0→G1での切り替えをしないから当然といえばそうですが
Laser Mode OnでG0→G1の切り替わりが
うまく行っていないのは確かにあるようです。
ちょっと気になったので、電源ON時の状態を見てみると

これは怖いです!!!
Candle立ち上げてからUSB挿すと
Duty 100% 1.3A 5秒程、レーザーでます。

USB挿してからCandle立ち上げたり
WoodpeckerのRESETボタンを押すと
Duty 100% 1.3A 1秒程、レーザーでます。


動画で
Candle立ち上げてからUSB挿すと
Duty 100% 1.3A 5秒程、レーザーでます。
5秒間に80μsecのパルスが7発。
スピンドルでは回りませんが、
この間、2.5W程ものレーザー(入力電力)がでています。
USBとの通信が始まる時にDTR信号でRESETがかかるので
GRBLが再起動する時にD11 15ピンからパルスがでているのです。
その時にできた焦げ。
CNC2418を起動する時は、まだゴーグルしていなので
ステージに反射したりすると大変危険です。
TTL制御にした時は、
24Vのプラグは、最後に挿さないといけません。
WoodpeckerのGRBLが起動して、PCとCandleで接続が完了するまで
24Vを供給しないようにせんといかんですね~
途中のハードリセットも危険です。
Candle上のリセットボタンは、大丈夫です。

レーザードライブ基盤の12V入力にSWを付けて
本当に使う時までONしないようにしたいものです。

また、12V Direct PWM駆動の場合は、S6から発光します。
(S6では、LED動作でしょうが)
所がTTL制御の場合は、S25~30からしか発光してくれません。
そのため、焦点調整がやり難いのです。
マーティーの眼が乱視のためかもですが
上下1-2mm動かしても変化がわかり難いのです。
なので、焦点合わせの時だけ
12V Direct PWM駆動にするSWも欲しい所ですね~

0 件のコメント: