Darkside(https対応しました)

2020年01月23日の記事

2020年1月23日(木) 21:44

ドライバー設計

 8ビットPICの中では貴重な16ビットPWMが使えるので、PIC16F1579 をデフォルト使用品に決めている。
 だが、16ビットではステッピングモーターの制御には分解能が不安だ。そこで、プリスケーラーの動的切り替えを視野に入れる。
 それとは別に、TB6600HG のフルステップと 1/8 ステップを動的に切り替える。両者を動因し、滑らかで広範囲なステッピング制御周波数を得たい。

 PIC16F1579 のPWMプリスケーラーは、PWM1CLKCON にて設定する。
 0x40 を代入すれば16分の1、0x70 なら128分の1、0 ならプリスケーラー無しだ。これらをPWM発信中に変更した場合、期待通りにPWM周波数が切り替わるのか?
 切り替え時にイレギュラーなパルス幅が発生する場合、ステッピング制御への悪影響はどの程度か?
 それらを調査せねばならない。しかし一応、ハード製作には影響しない。

 一方 TB6600HG に関しては、M2をGNDに落とし、M3をVreg にプルアップしておく。すると、M1をLにすればフルステップになり、Hにすれば 1/8 ステップになる。これらは動作中に切り替え可能であると、データーシートに記載されている。

 以上はステッピングモーターの回転速度に影響するが、もう1つの重要要素である電流。
 電流制限は、シャント抵抗と比較用電圧で行う。シャント抵抗に各相の電流を流し、発生した電位差を比較用電圧Vref と比較する。扱い易いよう、Vref は内部で3分の1にされて比較される。
 シャント抵抗に0.2Ωを取り付け、1.5Aに設定したい場合、電位差0.3Vとなる。その3倍の0.9Vを、Vref に与えれば良い。
 シャント抵抗は 0.11〜0.5 Ωの範囲でなければならず、Vref は 0.3〜1.95Vの範囲でなければならない。Vref はけっこう半端な電圧である。そこで、余り使わないPICのDAC出力を接続することを考えた。

 DACは分解能が5ビットしかない。しかし、大雑把な電流値を切り替えるような今回の用途には、充分使える。
 基準をVccにすると、5Vを32分割して出力できる。Vref の許容範囲には 2〜12 が入る。シャント0.2Ωで計算すると、2を設定すれば0.26Aぐらい。12を設定すれば3.125Aとなる。このていどの切り替えでも、固定電圧を与えるのに比べると遥かに融通が効くようになる。低速時は電流を小さくし、高速回転では電流ブースト。
 停止時や低速回転ではトルク過剰なので、ステッピングモーター制御ICには電流低下機能が当たり前。TB6600HG にも、独立してTQ端子がある。Lにすると、電流が30%に減る。両者の組み合わせで、充分な電流管理が可能になるだろう。

 こうして、PICのピンアサインを決定。LCDを接続する余地など無いので、ポートCの下位2ビットをI2Cに流用する。試験中は上位6ビットだけで旋回値を受け取り、正常に動きそうだとなったらLCDを外し8ビット全部を受け取りに活用する。

 ENCODE には、ステッピングモーターのエンコーダー出力を接続する。A相+だけで充分だろう。

written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL
Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4