24
LM628/LM629 高精度モーションコントロール IC 1 © National Semiconductor Corporation Printed in Japan NSJ 3/2000 November 1999 TRI-STATE ® はナショナル セミコンダクター社の登録商標です。 LM628/LM629 高精度モーションコントロール IC 概要 LM628/LM629 DC サーボモータ、ブラシレス DC サーボモータ、 そしてその他のサーボ・メカニズム用の閉ループ制御モーション・コン トロール・プロセッサです。これらのデバイスは内部に位置、速度制御 用の 32 ビット・プロセッサを持っており、ホストコンピュータとのイ ンタフェースによりリアルタイムに高精度のデジタル位置決め制御が 可能です。モータのコントロールはデバイス内部のユーザコマンド・ シーケンサに外部のホスト・コンピュータからコマンドを指定すること によって行われます。LM628/LM629 とも、モータの回転数検出用と してインクリメンタル・エンコーダを使用するように設計されており、 エンコーダ入力を備えております。 LM6288 ビットのパラレル出力 を備えており、 8 ビットDAC、または12 ビットDAC を駆動できます。 したがって、 LM628でシステムを構成する場合、モータとコンピュー タの他に DAC とパワーアンプが必要となります。LM629 8 ビット PWM出力を備えており、 H- スイッチを直接駆動できます。その他 の機能、特性はLM628 と同じです。チップのプロセスはNMOS、パッ ケージは28 ピンモールド DIP24 ピン SOP LM629 のみ)です。両デ バイスとも最大クロック周波数が6MHz のバージョンと8MHz のバー ジョンが用意されています。なお、この両デバイスはSDA の協力によ り設計されたものです。 特長 ■位置、速度、加速度のレジスタが 32 ビット ■ プログラム可能なサンプリング周期 ■ プログラム可能な 16 ビット係数のデジタル PID フィルタ 8 ビット、あるいは12 ビットDAC 用出力(LM6288 ビット・サイン/ マグニチュード PWM出力(LM629■ 台形速度軌跡ジェネレータを内蔵 ■速度、目標位置、フィルタのパラメータはモータ動作中に変更可能 ■ 位置モードと速度モードの2 つの動作モード ■ ホストへの割り込みがリアルタイムでプログラム可能 8 ビット・パラレル非同期のホスト・インタフェース ■矩形パルス入力のインクリメンタル・エンコーダ・インタフェース (インデックス・パルス入力付き) 28ピン DIP パッケージおよび24 ピンSOP ピンパッケージ(LM629 のみ)が利用可 Note LM628/629 を使用して設計する際は、必ずアプリケーション ノート AN-693 および AN-706 を参照して下さい。

LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

  • Upload
    leliem

  • View
    253

  • Download
    7

Embed Size (px)

Citation preview

Page 1: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

LM628/LM

629 高精度モーションコントロール

IC

1© National Semiconductor Corporation Printed in Japan NSJ 3/2000

November 1999

TRI-STATE®はナショナル セミコンダクター社の登録商標です。

LM628/LM629高精度モーションコントロール IC

概要 LM628/LM629はDCサーボモータ、ブラシレスDCサーボモータ、そしてその他のサーボ・メカニズム用の閉ループ制御モーション・コントロール・プロセッサです。これらのデバイスは内部に位置、速度制御用の 32ビット・プロセッサを持っており、ホストコンピュータとのインタフェースによりリアルタイムに高精度のデジタル位置決め制御が可能です。モータのコントロールはデバイス内部のユーザコマンド・シーケンサに外部のホスト・コンピュータからコマンドを指定することによって行われます。LM628/LM629とも、モータの回転数検出用としてインクリメンタル・エンコーダを使用するように設計されており、エンコーダ入力を備えております。LM628は8ビットのパラレル出力を備えており、8ビットDAC、または 12ビットDACを駆動できます。したがって、LM628でシステムを構成する場合、モータとコンピュータの他にDACとパワーアンプが必要となります。LM629は 8ビットの PWM出力を備えており、H-スイッチを直接駆動できます。その他の機能、特性はLM628と同じです。チップのプロセスはNMOS、パッケージは28ピンモールドDIP、24ピン SOP(LM629のみ)です。両デバイスとも最大クロック周波数が6MHzのバージョンと8MHzのバージョンが用意されています。なお、この両デバイスはSDAの協力により設計されたものです。

特長 位置、速度、加速度のレジスタが 32ビット プログラム可能なサンプリング周期 プログラム可能な 16ビット係数のデジタル PIDフィルタ 8ビット、あるいは12ビットDAC用出力(LM628) 8ビット・サイン /マグニチュード PWM出力(LM629) 台形速度軌跡ジェネレータを内蔵 速度、目標位置、フィルタのパラメータはモータ動作中に変更可能 位置モードと速度モードの2つの動作モード ホストへの割り込みがリアルタイムでプログラム可能 8ビット・パラレル非同期のホスト・インタフェース 矩形パルス入力のインクリメンタル・エンコーダ・インタフェース(インデックス・パルス入力付き) 28ピンDIPパッケージおよび 24ピンSOPピンパッケージ(LM629

のみ)が利用可

Note:LM628/629を使用して設計する際は、必ずアプリケーションノートAN-693およびAN-706を参照して下さい。

Page 2: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

2http://www.national.com

LM62

8/LM

629 ピン配置図

Page 3: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

3 http://www.national.com

LM628/LM

629

DC電気的特性 (VDDと TAは上記の動作範囲;fCLK= 6MHz)

絶対最大定格(Note 1)

本データシートには軍用・航空宇宙用の規格は記載されていません。関連する電気的信頼性試験方法の規格を参照下さい。

各ピンの電圧(GNDを基準) - 0.3V~+ 7.0V

保存温度範囲 - 65~+ 150リード温度 28ピン・デュアル・インライン パッケージ(ハンダ付け、4秒) 260 24ピン表面実装 パッケージ(ハンダ付け、10秒) 300最大消費電力(TA≦ 85、Note 2) 605mW

ESD耐圧(CZAP=120pF、RZAP=1.5k) 2000V

動作定格

動作温度範囲 - 40<TA<+ 85クロック周波数 LM628N-6、LM629N-6、 LM629M-6 1.0MHz< fCLK< 6.0MHz

 LM628N-8、LM629N-8、 LM629M-8 1.0MHz< fCLK< 8.0MHz

電源電圧(VDD) 4.5V<VDD< 5.5V

AC電気的特性 (VDDとTAは上記の動作範囲;fCLK=6MHz;CLOAD=50pF:入力試験信号 tr= tf= 10ns)

Page 4: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

4http://www.national.com

LM62

8/LM

629

Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を超えて動作させる場合、DC、およびAC電気特性のスペックは適用されません。

Note 2: 70以上の周囲温度で動作させる場合、デバイスは、最大接合部温度を超えないように保護しなければなりません。デバイスをプリント基板に実装する時は、リードを囲む 3インチ以上の銅エリア(グランド・プレーン等)にハンダ付けします。28ピンDIP(N)と24ピンSO(M)は銅のリードフレームをプラスチックでモールドしています。ダイから発生した熱は、リードフレームからプリント基板の銅パターンへと逃げます。銅パターンはヒートシンクとして働きます。片面基板より、両面又は多層基板の方がより良い放熱特性を持ちます。

Note 3: ビジービットを読み出すためには、ステイタスバイトが最初に読み出されなければなりません。ビジービットの読み出し時間は、ビジービットをセットするためにチップが必要とする時間よりもはるかに長いため、実際にビジービット・ディレイを測定することは不可能です。ビジービットは、ユーザがそれを読み出すとすぐに有効になることに対して保証されます。

AC電気的特性(つづき) (VDDとTAは上記の動作範囲;fCLK=6MHz;CLOAD=50pF:入力試験信号 tr= tf= 10ns)

Page 5: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

5 http://www.national.com

LM628/LM

629AC電気的特性(つづき)

Page 6: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

6http://www.national.com

LM62

8/LM

629 AC電気的特性(つづき)

Page 7: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

7 http://www.national.com

LM628/LM

629

端子説明(ピン配置図を参照)

24ピン SOPのピン番号をカッコ内に示します。

ピン1(17):インデックス(IN)入力:エンコーダからのインデックス・パルスを受けます。使用しない場合は、“HIGH”レベルに吊っておきます。ピン1、2、3がすべて“LOW”の場合にインデックス位置が読み込まれます。ピン 2、3(18、19):エンコーダ信号(A、B)入力:インクリメンタル・エンコーダからの 2相矩形信号を受けます。モータが正回転しているとき、ピン 2の信号はピン3の信号よりも 90º進みます。これらの信号は 8クロックに対応したエンコーダ出力です。(Figure 9参照)。エンコーダの矩形信号を逓倍することによって4倍の分解能が得られるため、エンコーダの状態を確定する周波数は最大1MHz(fCLK= 8.0MHz

の場合)、あるいは750KHz(fCLK=6.0MHzの場合)になります。他のクロック周波数では、エンコーダの信号は各状態で最小8クロックに対応します。ピン 4~11(20~24、2~4):ホストI/Oポート(D0~D7):ホストコンピュータ /プロセッサと接続される双方向性データポートです。LM628へのコマンドとデータの書き込み、LM628からのステイタスバ

イトとデータの読み出し等のために使われます。これらはCS(ピン

12)、PS(ピン 16)、RD(ピン13)、そしてWR(ピン15)によって実行されます。

ピン 12(5):チップセレクト(CS):書き込み、あるいは読み出しを選択します。

ピン 13(6):リード(RD):ステイタスとデータを読み出します。ピン 14(7):グランド(GND):グランド・ピン

ピン 15(8):ライト(WR)入力:コマンドとデータを書き込みます。

ピン16(9):ポートセレクト(RS)入力:コマンドポート、あるいはデータポートを選択します。このピンを“LOW”にすればコマンドポートが、“HIGH”にすればデータポートが選択されます。また、このピンによって以下のモードが可能となります。1. コマンドがコマンドポートに書き込まれます(ピン 16“LOW”)。2. ステイタスバイトがコマンドポートから読み出されます(ピン 16

“LOW”)。3. データがデータポートによって書き込まれ、そして読み出されます(ピン 16“HIGH”)。

ピン17(10):ホストインタラプト(HI)出力:割り込み状態が発生したホストコンピュータに(ホストインタラプト・サービス・ルーチンによって)、“HIGH”でアクティブになる信号がアラートをかけます。ピン18~ 25:DACポート(DAC0~DAC7):3種類の異なるモードで使われる出力です。

1. LM628(8ビット出力モード);DACへの出力ラッチデータ。MSBはピン 18、LSBはピン 25。

2. LM628(12ビット出力モード):マルチプレックス6ビット・ワードの出力が2つあります。下位ワードが最初に出力されます。MSBはピン 18、LSBはピン 23です。つまり、下位ワードに対し、ピン 24は“LOW”になります。ピン25の信号の立ち上がりエッジは出力データをストローブするために使われます。Figure 8にマルチプレックス信号のタイミングを示します。

3. LM629(サイン /マグニチュード出力):PWMサイン信号がピン18

(ピン 11)に、PWMマグニチュード信号がピン19(ピン 13)に出力されます。LM629ではピン20~25までは使用されません。Figure 11

にPWM出力信号のフォーマットを示します。ピン26(14):クロック(CLK):6MHz(あるいは8MHz)のシステム・クロックを受けます。

ピン27(15):リセット(RST):このピンは“LOW”でアクティブになり、立ち上がりエッジでトリガされ、LM628の内部回路を以下のようにリセットします。なお、リセットパルスは少なくとも 8クロックの間は“LOW”になります。1. フィルタ係数と軌跡パラメータがゼロにされます。2. 位置エラー・スレッショルドを最大値(7FFF Hex)にセットし、コマンドLPEIを実行します。

3. インタラプト・コマンド SBPAと SBPRがマスクされます(実行不能)。

4. 他の5つのインタラプト・コマンドがマスクを解除されます(実行可能)。

5. 現在位置をゼロ、あるいは“HOME”位置にイニシャライズします。6. サンプリング周期を2048/fCLK、あるいは256µS(8MHzの場合)にセットします。

7. DACポートが、12ビットDACを“ゼロ”にするため、800Hexと出力します。そして8ビットDACを“ゼロ”にするため、出力は80Hex

に戻ります。

AC電気的特性(つづき)

Page 8: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

8http://www.national.com

LM62

8/LM

629 端子説明(ピン配置図を参照)(つづき)

 LM628のリセットピンがリリースされると、ただちにステイタスポートは‘00’を読み出されます。そしてリセットが終了するとステイタスワードはHex‘84’、あるいは‘C4’に1.5ms以内に変わります。しかし、もしステイタスワードが 1.5ms以内でHex‘00’からHex‘84’、あるいは‘C4’に変化しないときには、ユーザはもう一度リセットを実行し、上記のステップを繰り返します。リセットが適切に実行され

たことを確実にするために、RSTIコマンドを実行します。チップのリセットが確実に実行されれば、ステイタスバイトはHex‘84’、あるいは‘C4’からHex‘80’あるいは‘C0’に変わります。こう変化しないときには、ユーザはもう一度リセットを実行し、上記のステップを繰り返します。ピン28(16):電源電圧(VDD):+ 5Vを供給します。

位置範囲

速度範囲

加速度範囲

モータドライブ出力

動作モード

-1,073,741,824~1,073,741,823カウント

0~1,073,741,823/216カウント/サンプル(0~16,383カウント/サンプル)分解能1/216カウント/サンプル/サンプル

0~1,073,741,825/216カウント/サンプル/サンプル(0~16,383カウント/サンプル/サンプル)分解能1/216カウント/サンプル/サンプル

LM628:8ビットDAC用、あるいは12ビットDAC用のマルチプレックス出力LM629:8ビットPWM サイン/マグニチュード出力

位置および速度

1

動作原理

基本構成 LM628を使用したサーボシステムの代表的なシステム・ブロック・ダイアグラムをFigure 1に示します。台形速度プロファイルとデジタル補償フィルタのプログラムを容易にするため、ホストプロセッサは I/O

ポートを通じて LM628とインタフェースされます。LM628のDAC

出力はD/Aコンバータに入り、その出力はパワーアンプに入り、パワーアンプがモータをドライブします。クローズド・ループ位置サーボシステムのフィードバックとして、LM628ではインクリメンタル・エンコーダを使用します。台形速度プロファイル・ジェネレータ(Trapezoi-

dal Velocity Profile Generator)は位置モード、あるいは速度モードのどちらかに必要な軌跡(Trajectory)を計算します。この計算において、LM628は設定位置(プロファイル・ジェネレータ位置)から実際の位置(フィードバック位置)を減算します。これによって生じる位置エラーは、モータを設定位置までドライブするためのデジタル・フィルタによって処理されます。 Table 1にLM628/LM629によって得られる基本性能を示します。

位置フィードバック・インタフェース LM628はインクリメンタル・エンコーダを使用して、モータとインタフェースされます。このために 3つの入力を備えています。2つは矩形信号入力で、1つはインデックス・パルス入力です。矩形信号はモー

タの絶対位置をトレースし続けるために使われます。ロジック信号のトランジションが矩形入力の1つに入るたびに、LM628内部の位置レジスタはそれに応じて加算、あるいは減算されます。これによってエンコーダ自身の分解能が得られます。Figure 9を参照してください。各々のエンコーダ信号入力はLM628のクロックと同期しています。 もう 1つのインデックス・パルス出力は、1回転ごとにロジック“LOW”状態になるもので、いくつかのエンコーダがこの出力をもっています。ユーザがインデックス出力を使えるようにLM628をプログラムした場合、すべて(3つ)のエンコーダ入力がロジック“LOW”になると、LM628はそのときのモータの絶対位置を専用レジスタ(インデックス・レジスタ)に記録します。 エンコーダがインデックス出力をもっていない場合、LM628のインデックス入力はモータの“HOME”位置を記録するために使われます。この場合、一般的に、モータはインデックス入力でロジック“LOW”レベルを発生するように配置されたスイッチを閉じます。そしてLM628

はインデックス・レジスタにモータ位置を記録し、ホストプロセッサにアラート(割り込み)します。この方法でインデックス入力を使用するとき、モータのシャフトが回転している間は、インデックス入力がロジック“LOW”にならないようにしなければなりません。

Page 9: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

9 http://www.national.com

LM628/LM

629

速度プロファイル(軌跡)ジェネレータ 台形速度プロファイル・ジェネレータは、時間ごとの目標モータ位置を計算します。位置モードにおいてはホストプロセッサは加速、最大速度そして最終位置を決定します。LM628がこれらのパラメータを使用することによって、モータが最大速度に達するまで決められた加速度で動作します。あるいはモータが決められた最終位置で停止するために、減速し始めるまで動作します。この場合の減速度は加速度と同じです。動いている間はいかなる時点でも最大速度と(あるいは)目標位置は変化しています。つまり、モータは加速あるいは減速しているのです。Figure 10に2つの代表的な台形速度プロファイルを示します。Figure 10(a)は簡単な台形ですが、Figure 10(b)は、モータが動いている間に速度と位置が、異なる時点で変化する場合のプロファイルの例を示しています。

 速度モードにおいては、モータは決められた加速度で決められた速度に達するまで加速します。そして、停止命令が出されるまでその速度を維持します。次に、一定速度で目標位置に近づきます。もし、速度モードの間に動作を妨げるものがなければ、長期平均速度は一定になります。モータが決められた速度を維持できない場合(例えばロータがロックされたような場合)、目標位置は離れ続けてしまい、その結果、大きな位置エラーを生じることになります。もし、この状態が改善されない場合、そしてモータを妨げる力が依然として加わっている場合は、(まだ達していない)目標位置に追いつくため、モータは非常に高速に達します。この状態は、コマンドLPEIとLPESを使うことによって、簡単に検出されます。

動作原理(つづき)

フィードバック・デバイス

制御アルゴリズム

サンプル周期

インクリメンタル・エンコーダ(矩形信号、インデックスパルス入力付)

Proportional

微分項:2,048/fCLK~(2,048*256)fCLKまで2,048/fCLKのステップでプログラマブル(8MHzクロックで256µs~65,536µs)比例項と積分項:2,048/fCLK

Integral Derivative(PID)(積分範囲は可変)

1 (Continued)

Page 10: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

10http://www.national.com

LM62

8/LM

629

 すべての軌跡パラメータは32ビットです。位置はその軌跡に印された計算値の総量になります。加速度と速度は16ビットですが、正整数部のみで16ビットをもっています。速度の整数部はモータが回転する際のサンプリング周期ごとのカウント数を表しています。分数部はサンプリング周期毎の 1カウント以下の追加カウントを示します。LM628の位置分解能が正数カウントで決まってしまうのに対し、平均速度分解能は分数カウントによって増加します。加速度についても速度と同様です。各々のサンプリング周期ごとにコマンドによって指定された加速度は、(コマンド速度に達しない限り)新たに速度を発生させるために現在の速度が加えられます。 以下に示すように各パラメータを設定します。例として、500ラインのシャフト・エンコーダを使用し、モータ回転が600rpmに達するまで加速度(r/s/s)を設定し、スタートから正確に100回転の位置で停止すべく、減速を始めるように設定します。この場合の各パラメータは以下のように計算されます。

P=目標位置(単位=エンコーダのカウント数)とし、R=エンコーダの分解能× 4(システムの分解能)とすると、R= 500×4= 2000

∴ P=R×希望する回転数P= 2000× 100= 200,000カウント(ロードする値)Hexでコーディングすると、P= 00030D40(LM628に書き込まれるHexコード)V=速度(単位=カウント /サンプル)とし、T=サンプル時間(秒)= 341µS(6MHzクロックの場合)とし、C=変換ファクタ数=1分 /60秒とすると、∴V=R× T×C×希望する回転数(rpm)V= 2000× 341E-6× 1/60× 600rpm

V= 6.82カウント /サンプルスケーリングしてV= 6.82× 65,536=446,955.52

V= 446,956(ロードする値)HexでコーディングするとV= 0006D1EC(LM628に書き込まれるHexコード)となるA=加速度(単位=カウント /サンプル /サンプル)とすると、∴A=R× T× T×希望する加速度(rev/sec/sec)A= 2000× 341E-6× 341E- 6× 1rev/sec/sec

A= 2.33E-4カウント /サンプル /サンプルスケーリングしてA= 2.33E-4×65,536= 15.24

丸めてA= 15(ロードする値)HexでコーディングするとA= 0000000F(LM628に書き込まれるHexコード) 上記の位置、速度そして加速度の値はLM628にロードできるようにバイナリコードに変換されます。速度と加速度の値は入力データの正数 /分数部を調整するために、65536がかけられます。これらの値がスケーリングされた後、分数部は忠実にロードされません。というのは、バイナリに変換するため、データを丸めなければならないからです。システム分解能における“4”の増加ファクタは矩形エンコーダ信号をデコードするために使われる方法から得られたものです(Figure 9参照)。

PID補償フィルタ LM628にはコントロール・ループを補償するために、デジタル Pro-

portional Integral Derivative (PID)フィルタが使われています。[位置エラー+位置エラーの積分+位置エラーの微分]に比例する補償力をモータに加えることによって、目標位置を保ちます。以下の離散時間方程式はLM628で実行される制御内容を示しています。

(1)

 ここでu(n)はサンプル時間nにおけるモータの制御信号出力です。e(n)はサンプル時間nにおける位置エラーです。n'は微分サンプリング・レートにおけるサンプリングを示します。kp、kiそして kdはユーザによってロードされる離散時間フィルタのパラメータです。 第一項は正比例項で、フックの法則に従うスプリングのように、位置エラーに比例する補償力を表します。第二項は積分項で、時間とともに増加する補償力を表します。これは、静的位置エラーをゼロにします。しかし、もし一定のトルクをロードする場合、モータはゼロ位置エラーを発生します。 第三項は微分項で、位置エラーの変化率に比例する力を表します。これは、(自動車のショック・アブソーバのような)ダンピングの効いたスプリングと大型システムにおいて、粘性のあるダンピングとして働きます。微分項に関連したサンプリング周期はユーザが選択できます。この機能によって、LM628は、連続した微分の適切な近似計算に基づく、慣性負荷(システムの機械的時定数)の広帯域制御を可能にしています。一般に、長いサンプリング周期は低速度制御に適しています。 動作中、フィルタのアルゴリズムはループ・サミング・ジャンクションから16ビットのエラー信号を受け取ります。このエラー信号は、正常な動作を確保するために16ビットで飽和します。エラー信号はフィルタ係数kpで乗算され、さらに前回のエラー累積分に加算され(積分信号の生成)、“微分”サンプリング周期の選択で決まる一定速度でその加算分から前回のエラー分が減算されます(微分信号の生成)。フィルタの乗算は、すべて16ビット動作で行われ、その積の下位 16ビットだけを使用します。 積分信号は24ビットに維持されますが、上位 16ビットだけが使用されます。このスケーリング手法により、フィルタ係数ki値の使用範囲が広がり(より非センシティブになり)ます。16ビットは8ポジションに右シフトされ、フィルタ係数kiで乗算され、 モータ制御出力項を形成します。この積の絶対マグニチュード(振幅)は係数 ilと比較され、より小さな適切なサイン(方向)付きの振幅によってモータ制御信号が生成されます。 微分信号は、各“微分”サンプリング周期ごとに係数kdにより乗算されます。この積はユーザ選択の“微分”サンプリング周期から独立に、各サンプリング周期ごとにモータ制御出力を生成します。 kp、一定の ki、および kdの各積項が加算されて、16ビットの数量が形成されます。出力モード(ワードサイズ)に応じて、上位8ビットあるいは上位12ビットのいずれかがモータ制御出力信号になります。

動作原理(つづき)

Page 11: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

11 http://www.national.com

LM628/LM

629

LM628 リード /ライト・オペレーション ホストプロセッサは、ポート・セレクト(PS)入力(ピン16)がロジッ

ク“LOW”のとき、ホスト I/Oポートを通ってLM628にコマンドを書き込みます。希望のコマンドコードはパラレル・ポート・ラインに入り、

ライト(WR)入力がストローブされます。コマンドバイトは、WR入力の立ち上がりエッジでLM628の中へラッチされます。コマンドバイトを書き込むとき、まず最初にステイタスバイトを読み出す必要があります。そして“ビジービット”(ビット0)と呼ばれるフラッグの状態をチェックします。もしビジービットがロジック“HIGH”のときは、コマンドは書き込まれません。ビジービットは100µs以上の時間は不可で、15µs~ 25µsが標準です。

 読み出しの場合、ホストプロセッサは書き込みの場合と同様にPS(ピン 16)が“LOW”になったとき、リード(RD)入力(ピン13)をス

トローブし、ステイタスバイトを読み出します。ステイタスの情報はRDが“LOW”である限り残ります。 LM628へデータを書き込む、そしてLM628からデータを読み出す

ためには(コマンドを書き、ステイタスを読むためには)、PS(ピン16)をロジック“HIGH”にします。これらの書き込み、および読み出しは2バイトワードの整数値(1~7)です。それぞれの最初のバイトは上

位バイトです。このバイトは、ライト(WR)、あるいはリード(RD)ストローブが必要です。データワード(ペア・バイト)を伝送するとき、ステイタスバイトを最初に読み出し、ビジービットの状態をチェックする必要があります。ビジービットがロジック“LOW”のとき、ユーザは 1つのデータワードから成る2つのバイトを順に伝送することができますが、ビジービットが次のペア・バイトを伝送する前に(マルチプル・ワードを伝送するときに)、再度ロジック“LOW”になっている

動作原理(つづき)

かチェックしなければなりません。データ伝送はLM628の(重ね合わされていない)内部割り込み条件を通って完了となります。LM628がデータ伝送(あるいはコマンドバイト)のため割り込みされていないとき、ビジービットはホストプロセッサにその状態を知らせます。もしビジービットが“HIGH”のときコマンドが書かれても、そのコマンドは無効となります。 コマンドバイトを書き込む、あるいはデータの 2番目のバイトを読み出し /書き込みした後に、ビジービットは直ちに“HIGH”になります(Figure 5~ 7参照)。

モータ出力 LM628のDAC出力ポートは、ラッチド 8ビット・パラレル出力、あるいはマルチプレックス12ビット出力のどちらでも使えます。8ビット出力として使う場合にはフロー・スルー(入力がラッチされていない)D/Aコンバータを直接接続できます。12ビット出力は、入力がラッチされている12ビットD/Aコンバータと外部の6ビット・ラッチを使って簡単にデマルチプレックスされます。DAC出力データはオフセット・バイナリ・コードです。つまり、8ビットでゼロは80Hex、12ビットでゼロは800Hexです。これら以下の値ではモータに負のトルク、以上の値ではモータに正のトルクを与えます。12ビット出力として使用する場合、LM628は、デマルチプレックス・プロセスを制御するための信号を備えています(Figure 8参照)。 LM629は8ビット、PWMのサインとマグニチュード出力信号を備え、スイッチ式のモータドライブ・アンプを直接ドライブできます。Figure 11にPWMマグニチュード出力信号のフォーマットを示します。

Page 12: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

12http://www.national.com

LM62

8/LM

629

ユーザ・コマンド・セット

概要 このパラグラフではLM628のユーザ・コマンド・セットについて説明します。いくつかのコマンドは単独で使えますが、それ以外はデータを必要とします。例えば、コマンドSTT(STarT動作)はデータを必要としませんが、コマンドLFIL(Load FILter パラメータ)はデータ(微分項のサンプリング周期と(あるいは)フィルタ・パラメータ)が必要です。 コマンドは機能ごとに分かれています。つまり、イニシャライズ、割り込み制御、フィルタ制御、軌跡制御、そしてデータ・レポートです。これらのコマンドはTable 2にリストされており、以下のパラグラフで説明します。ここで各コマンドの名称に沿って、そのコマンド・バイト・コード、読み出し/書き込みする場合のデータ・バイトの必要数、そしてモータ動作中にそのコマンドが実行できるか否かのコメントが記述されています。

イニシャライゼーション・コマンド 以下の 4コマンドはシステムを初期設定するために使われます。

RESET COMMAND:RESET the LM628 コマンド・コード: 00 Hex

 データバイト: 無 モータ動作中のコマンドの実行:可能 このコマンド(とピン27のハードウェア・リセット入力)は、以下のデータをゼロにするだけです。つまり、フィルタ・パラメータとその入力バッファ、軌跡パラメータとその入力バッファ、そしてモータ制御出力です。モータ制御出力がゼロのとき、オフセット・バイナリ・コードでスケールは半分になります(つまり、8ビット出力モードでは80Hex、12ビット出力モードでは 800Hexです)。リセットの間、DAC

ポートは12ビットDACを“ゼロ”にするため800Hexを出力し、8ビットDACをゼロにするため80Hexを出力します。このコマンドは、また

割り込みをマスクするコマンドMSKIの 6ビットデータのうち 5ビットを(マスクしないように)クリアします。ここでSBPA/SBPR割り込み(ブレークポイント・インタラプト)のみがマスクされます。その他に、このコマンドは出力ポートのサイズを8ビットに設定し、現在の絶対位置を“HOME”として定義します。いかなる時でも実行されるこのリセットは1.5ms以内で完了します。コマンド PORT8とコマンドPORT12も参照してください。

PORT8 COMMAND:Set Output PORT Size to 8 Bits コマンドコード: 05 Hex

 データバイト: 無 モータ動作中のコマンドの実行:不可能 LM628のデフォールト出力(コマンドによって指定されないときの出力)のポートサイズは 8ビットです。つまり、8ビットDACを使用するとき、PORT8コマンドを実行する必要はありません。12ビットDACを使用するときは、このコマンドを実行してはいけません。もしそうしたときは、モータの動作が不定、かつ予測のつかないものとなります。LM629、つまり LM628の PWM出力バージョンを使用する場合は、8ビット出力ポートサイズを選択します。

PORT12 COMMAND:Set Output PORT Size to 12 Bits コマンド・コード: 06 Hex

 データバイト: 無 モータ動作中のコマンドの実行:不可能 12ビットDACが使われるとき、コマンドPORT12は、始動プロセスの初期に実行されなければなりません。このコマンドの使用はシステム・ハードウェアによって必然的に決定されるため、ユーザは後でこのコマンドを使用することだけはあらかじめ知ることになります。もしRESETコマンドが発行されるならば(8ビット出力がデフォルト出力として選択されるため)、コマンドPORT12は直ちに実行されなければなりません。このコマンドは、8ビットDAC、またはLM629を使用するときには使用してはなりません。

動作原理(つづき)

Note 4: コマンドはモータ動作中に実行可能Note 5: コマンドはモータ動作中に実行不可Note 6: 加速度が変わらなければ、コマンドはモータ動作中に実行可能Note 7: コマンドポートからのステイタスバイトの読み出しは、ハードウェアによってサポートされているので、コマンドはコードを必要と

しません。

Page 13: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

13 http://www.national.com

LM628/LM

629イニシャライゼーション・コマンド(つづき)

DFH COMMAND:DeFine Home コマンド・コード: 02 Hex

 データバイト: 無 モータ動作中のコマンドの実行: 可能 このコマンドは現在位置を“HOME”あるいは絶対位置ゼロ(0)に設定します。もしDFHコマンドがモータ動作中に実行されると、STT

コマンドが実行されない限りは、動いているモータの停止位置は変わりません。

割り込み制御コマンド 以下の7つのユーザ・コマンドは、ホストコンピュータに割り込みするために使われる条件と関係があります。ピン17によってホストコンピュータに実際に割り込みするための条件としては、コマンドMSKI

と関連する割り込みマスクデータの中の相当するビットを、ロジック“HIGH”(マスクされない状態)にすることが必要です。 すべての割り込みの役割は、ステイタスバイトを読み出し、調べて、それをホスト・コンピュータに知らせることです。コマンドMSKIによって、すべての割り込みがマスクされない状態にあったとしても(割り込み可能であったとしても)、それぞれの割り込み条件の状態はステイタスバイトの中に現されています。この特長によって、割り込みを実行するのとは反対に、LM628はステイタス情報をポーリングすることが可能となります。

SIP COMMAND:Set Index Position コマンド・コード: 03 Hex

 データバイト: 無 モータ動作中のコマンドの実行:可能 このコマンドが実行されると、次のインデックス・パルス入力は絶対位置に相当し、その位置はインデックス・レジスタに記録されます。そして、ステイタスバイトのビット 3は“HIGH”にセットされます。エンコーダ位相入力とインデックス・パルス入力の双方が“LOW”になるとき、この位置が記録されます。ユーザは、インデックス・パルスを持った“HOME”位置(コマンドDFHを参照)の精度をより高めるために、このレジスタを読み出すことができます(コマンドRDIPを参照)。インデックス・パルスが発生したことを知らせるために、ユーザは LM628がホストコンピュータに割り込みするように設定することができます。コマンドMSKIとコマンドRSTIを参照してください。

LPEI COMMAND:Load Position Error for Interrupt コマンド・コード: 1B Hex

 データバイト: 2

 データ範囲: 0000~ 7FFF Hex

 モータ動作中のコマンドの実行:可能 (ループ・サミング・ジャンクションの出力における)過大な位置エラーは、重大なシステム上の問題を示しています。例えば、ロータの停止のようなことです。LPEIの機能は、位置エラーを検出するために、入力にスレッショルドを設定します。位置エラーの絶対値がスレッショルドを超えたときエラーが検出されます。このスレッショルドは“HIGH”にセットされたステイタスバイトのビット 5に現れます。もし、位置エラーが大きすぎてモータを停止させたい場合、コマンドLPESを使用してください。コマンドLPEIによってスレッショルド・データが書き込まれる順番は上位バイトからです。過大な位置エラーが発生したことを知らせるために、ユーザはLM628がホストコンピュータに割り込みするように設定することができます。コマンドMSKIとコマンド RSTIを参照してください。

LPES COMMAND:Load Position Error for Stopping コマンド・コード: 1A Hex

 データバイト: 2

 データ範囲: 0000~ 7FFF Hex

 モータ動作中のコマンドの実行: 可能 LPESの機能は基本的にLPEIと同じですが、過大な位置エラーを検出したときに、モータを停止させる機能が付け加えられています。このとき、モータのドライバは実際オフせず、オフセット・バイナリにおいてゼロになるように、ハーフ・スケールに設定されます。LPEIと同様に、ステイタスバイトのビット 5が“HIGH”にセットされます。コマンドLPESによってスレッショルド・データが書き込まれる順番は上位バイトからです。過大な位置エラーが発生したことを知らせるために、ユーザはLM628がホストコンピュータに割り込みするように設定することができます。コマンドMSKIとコマンドRSTIを参照してください。

SBPA COMMAND: コマンド・コード: 20 Hex

 データバイト: 4

 データ範囲: C0000000~ 3FFFFFFF Hex

 モータ動作中のコマンドの実行:可能 このコマンドは絶対位置に関して、限界点を設定します。限界点に達したとき、ステイタスバイトのビット 6が“HIGH”にセットされます。この機能は軌跡と(あるいは)フィルタパラメータの信号をアップデートするのに使用されます。位置に達したことを知らせるために、ユーザはLM628がホストコンピュータに割り込みするように設定することができます。コマンドMSKIとコマンドRSTIを参照してください。

SBPR COMMAND: コマンド・コード: 21 Hex

 データバイト: 4

 データ範囲: 説明を参照 モータ動作中のコマンドの実行:可能 このコマンドは相対位置に関して、限界点を設定します。コマンドSBPAと同様に、限界点位置(目標位置に対する相対的な現在位置)に達したとき、ステイタスバイトのビット 6が“HIGH”にセットされます。つまり、この相対的限界点の入力値がシステムの絶対位置範囲内(C0000000~ 3FFFFFFFHex)にある目標位置に加えられたとき上記のようになります。この機能は軌跡と(あるいは)フィルタパラメータの信号をアップデートするのに使用されます。限界点位置に達したことを知らせるために、ユーザはLM628がホストコンピュータに割り込みするように設定することができます。コマンドMSKIとコマンドRSTI

を参照してください。

MSKI COMMAND:MaSK Interrupt コマンド・コード: 1C Hex

 データバイト: 2

 データ範囲: 説明を参照 モータ動作中のコマンドの実行:可能 このコマンドはホストコンピュータに起こり得る、割り込み条件をユーザに決定させるものです。ステイタスバイトのビット1~ 6はホスト割り込みする可能性のある6種類の条件を示しています。割り込みが発生すると、続いてホストコンピュータは、発生した状態を認識するためにステイタスバイトを読み出します。 次に、MSKIコンピュータは2データバイトによって直ちにフォローされることに注意してください。2番目の(下位)バイトのビット 1~6は、各々の割り込みのマスクされた、あるいはマスクされない状態を決定します。この6ビット・フィールドのどれかがゼロになれば、相当する割り込み条件をマスクします。つまり、いかなるビットも割り込みが可能です。このとき、2バイトからなる他のビットには何ら影響はありません。このマスクはホスト割り込み過程のみをコントロールします。つまり、ステイタスバイトを読み出すことは、マスクバイトとは関係のない実際の条件を知るためのものです。Table 3を参照してください。

Page 14: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

14http://www.national.com

LM62

8/LM

629 割り込み制御コマンド(つづき)

RSTI COMMAND:ReSeT Interrupts コマンド・コード: 1D Hex

 データバイト: 2

 データ範囲: 説明を参照 モータ動作中のコマンドの実行:可能 Table 3の割り込み条件のうち、1つの割り込みが発生したとき、コマンド RSTIはステイタスバイト中の割り込みされているフラッグ・ビットをリセットします。それらを同時にリセットすれば、ユーザによってプログラムされた順序にしたがって、それらを同時にホストコンピュータに処理させることができます。MSKI コマンドと同様に、2

番目の(下位)バイトのビット1~6は、Table 3に示されている割り込み状態に一致します。また、RDSTAT コマンドも参照してください。この6ビット・フィールドのどれかがゼロになれば、相当する割り込み条件をリセットします。残りのビットには何ら影響はありません。

フィルタ制御コマンド ここでは 2つのユーザコマンドが用意されています。どちらも、微分項のサンプリング周期を設定するためのものです。その目的は、システムを調整するために、そしてこれらのシステム変更のタイミングを制御するために、フィルタのパラメータを調整することです。

LFIL COMMAND:Load FILter Parameters コマンド・コード: 1E Hex

 データバイト: 2~ 10

 データ範囲:  フィルタ制御 ワード説明を参照  フィルタ系数 0000~ 7FFF Hex(正のみ)  積分範囲 0000~ 7FFF Hex(正のみ) モータ動作中のコマンドの実行:可能 ループ補償を制御するためにLM628に書き込まれるフィルタ・パラメータ(係数)は、kp、ki、kdとil(Integration Limit) です。Integration Limit

(積分範囲)il は積分項

(Eq. 1を参照)が、ユーザが設定した最大値と等しいか、あるいは小さい値になるように制限するものです。つまり、この範囲は積分を最小にするものであり、あるいは“WIND-UP”(モータの全体動作のオーバーシュートによる影響)をリセットするものです。正のみの入力値は積分項の絶対値に相当します。つまり、積分項の値が ilを超えるとき、(固有の Signを持った)ilの値は、微積分の値に置き代わります。

 微分項のサンプリング周期はこのコマンドによってプログラム可能です。コマンドコードを書き込んだ後、その最初の2つのデータバイトは微分項のサンプリング周期を規定します。そして、4つのフィルタ・パラメータのうちどれか(1つあるいは複数)が、入ってるデータバイトによって書き込まれることになります。書き込まれる順は上位バイトからです。このように2つのデータバイトは、その種類と数量の情報をLM628に伝達するフィルタ制御ワードによって構成されています。Table 4を参照してください。

 ビット8~ 15は微分項のサンプリング周期を選択するものです。Table 5を参照してください。ユーザは、フィルタ制御コマンドが連続して書き込まれている間に、これらのビットを一部的にSAVEして、かつRestoreしなければなりません。 フィルタ制御ワードのビット4~ 7は使われません。 ビット0~ 3は、書き込まれる直前のフィルタ・パラメータ・ワードをその数を問わずLM628に通知します。ここで、ユーザはフィルタ・パラメータのうち、いくつをアップデートするか(あるいはしないか)という選択をします。この選択は、フィルタ制御ワードに一致するビット位置において、ロジック信号によって行われます。 決められたデータバイトと直ちにそれに続くフィルタ制御ワードは16ビットワードを構成するペアとして書き込まれます。LM628へ送るデータワードの順序は、フィルタ制御ワード説明にあるように下向きの順序になります。例えば、kpから始まりki、kd、ilの順序になります。各々のワードの順序は上位バイトから始まります。ワード(2バイト)を書き込む前に、読み込むべきステイタスバイトのビジービットをチェックする必要があります。必要なデータは上記に述べた操作によって、ダブルバッファ構成の最初のバッファに書き込まれます。つまり、UDFコマンドが実行されるまで、データは2番目の(動作している)レジスタに伝送されません。このことによってLM628を有利に使うことができます。つまり、ユーザは実際に使用する前に大量なデータを入力することができます。この簡単なパイプライン効果によってホスト・コンピュータのデータ通信における障害を和らげることができるとともに、同期式多軸制御システムをより簡単につくることができます。

Page 15: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

15 http://www.national.com

LM628/LM

629フィルタ制御コマンド(つづき)

UDF Command:UpDate Filter コマンド・コード: 04 Hex

 データバイト: 無 モータ動作中のコマンドの実行:可能 UDFコマンドはフィルタ・パラメータとLFILコマンドによってプログラムされたものの特性をアップデートするために使用します。いくつかの、あるいはすべてのパラメータ(微分項、kp、ki、kd、il)は適切なコマンドによって変更可能ですが、フィルタのアップデートは不安定な現像あるいはスプリアスを減らすための計算と同期しています。

軌跡制御コマンド 以下の2つのユーザコマンドは軌跡制御パラメータ(位置、速度、加速度)、動作モード(位置あるいは速度)そして方向(速度モードのみ)を設定するために使われます。これらは、希望するモータ動作を設定するため、あるいはマニュアル停止モードを選択するために必要です。また、これらのシステムの変化するタイミングを制御するために必要です。

LTRJ COMMAND:Load TRaJectory Parameters コマンド・コード: 1F Hex

 データバイト: 2~14

 データ範囲:  軌跡制御ワード: 説明を参照  位置: C0000000~ 3FFFFFFF Hex

  速度: 00000000~ 3FFFFFFF Hex(正のみ)  加速度: 00000000~ 3FFFFFFF Hex(正のみ) モータ動作中のコマンドの実行:説明を参照

 モータ動作を制御するために LM628に書き込まれる軌跡制御パラメータは、加速度、速度そして位置です。それに加えて、これら3パラメータが絶対入力であろうとそれに関する指示はこのコマンドによってプログラム可能です。同様に、速度モードの選択と方向、マニュアル停止モードの選択と実行、これらもこのコマンドによってプログラム可能です。このコマンドコードを書き込んだ後、最初の2データバイトはパラメータの変化を規定します。書き込まれる順は上位バイトからです。このように 2つのデータバイトはその種類と数量の情報をLM628に伝達する軌跡制御ワードによって構成されています。Table 6

を参照してください。

 

Note 8: 記載の各サンプリング周期は8.0MHzのクロック周波数動作時のものです。256µsは2048/8MHzに相当します。他のクロック周波数の場合は、サンプリング周期のスケーリングが必要です。

ビット12は速度モードのとき、モータの方向を設定します。このビットをロジック1にセットすれば正方向になります。このビットは位置モードのときには機能しません。 ビット11は、LM628を速度モード(ビット11-ロジック1)、あるいは位置モード(ビット11-ロジック 0)に設定します。 ビット8~ 10はモータを停止する方法を選択するために使われます。つまり、モータドライブ出力をターンオフする(モータにゼロドライブを与えるためオフセット・バイナリコードを出力する)ことによってモータを停止させます。ビット 9はモータを突然停止させる方法が設定されます(最大加速度において、現在位置に等しくなるような目標位置を設定します)。そしてビット 10はユーザがプログラムした現在の加速度を利用して、モータをスムーズに停止させる方法を設定します(普通のモータ停止)。ビット8~10は排他的に使用すべきで、いかなる場合でも 1つのビットのみがロジック 1になるべきです。

Page 16: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

16http://www.national.com

LM62

8/LM

629 軌跡制御コマンド(つづき)

 ビット 0~ 5は、書き込まれる直前の軌跡制御パラメータをその数を問わずLM628に通知します。また、ビット 0~5は割り込みされるべきデータを、それが絶対的に割り込みされるのか、相対的に割り込みされるのかを問わずLM628に通知します。ここで、ユーザは軌跡パラメータのうち、いくつをアップデートするか(あるいはしないか)を選択します。この選択は、一致するビット位置に置いて、それをロジック 1にセットすることで行われます。パラメータはモータが動作していても変更可能です。しかし、もし加速度が変更されたとき、LM628

が現在の動作を完了しない限り、あるいはマニュアル停止させられない限り、次に述べる STTコマンドは機能しません。 指定したデータバイトと直ちに続く軌跡制御ワードは、16ビット構成のペアに書き込まれます。各々のデータ項目(パラメータ)には2つの16ビットワードが必要です。また、ワードとバイトの順序は上位から下位の順になっています。LM628に送るパラメータの順序は、上記の軌跡制御ワードにあるようにビット位置をカウントダウンする方向です。例えば、加速度から始まり、速度、位置と続きます。 加速度と速度は 32ビット(正のみ)精度ですが、範囲は0(00000000

Hex)~ 230- 1(3FFFFFFF Hex)です。両方とも下位 16ビットは、分数データとして丸められます。従って、これらのパラメータの下位整数データは、(0~31のビットのうち)ビット16です。計算された速度をコード化するために、例えば、希望速度(カウント /サンプル周期)に 65,536をかけて、最後にバイナリコードに変換します。加速度の単位はカウント /カウント /サンプルです。位置は 32ビット整数ですが、その範囲は- 230(C0000000 Hex)~230- 1 (3FFFFFFF Hex)です。 上記に述べた操作によって、必要なデータはダブルバッファ構成の最初のバッファに書き込まれます。つまり、STTコマンドが実行されるまで、データは2番目の(動作している)レジスタに伝送されません。これは有利な点です。というのは、ユーザが実際に使用する前に大量のデータを入力することができるからです。この簡単なパイプライン効果によって、ホストコンピュータのデータ通信における障害を和らげることができるとともに同期式多軸制御システムをより簡単に作ることができます。

STT COMMAND:STarT Motion Control コマンド・コード: 01 Hex

 データバイト: 無 モータ動作中のコマンドの実行:加速度が変わらなければ可能 STTコマンドは、希望する軌跡とLTRJコマンドによってプログラムされる軌跡のスペックを実行するために使われます。多軸制御の同期(1サンプル周期以内)をとるためには、各々の(そしてすべての)軸のために必要な軌跡パラメータをロードし、そして同時に、すべての軸に単独のSTTコマンドを実行します。このコマンドは、ある条件下を除いていつでも実行可能です。その禁止条件とは、加速度が変化して、かつ軌跡が完了していない場合、あるいは加速度が変化して、かつモータがマニュアル停止していない場合です。もしSTTコマンドがモータ動作中に実行され、かつ加速度が変化しているような場合は、コマンド・エラーの割り込みが発生し、このコマンドは無効となります。

データ・レポーティング・コマンド

 以下の7つのユーザコマンドはLM628の内部レジスタからデータを得るために使用します。ステイタス、位置、速度の情報が伝送されます。RDSTATを除いて、最初にコマンドポートに一致するコマンドを書き込んだ後、このデータがLM628のデータポートから読み出されます。

RDSTAT COMMAND:ReaD STATus Byte コマンド・コード: 無 読み出しバイト: 1

 データ範囲: 説明を参照 モータ動作中のコマンドの実行:可能 RDSTATコマンドは、本来コマンドではありませんが、他のコマンドとともにここに載せています。というのは、ホストコンピュータとの通信を制御するのに常に使われるからです。このコマンドには、自己識別コードがありません。つまり、コマンドは直接ハードウェアによってサポートされ、いつでも実行可能です。ステイタスを読み出す

1つのバイトは、CS、PS、RDをすべてロジック“ゼロ”にセットすることによって選択されます。Table 7を参照してください。

 ビット7はモータオフ・フラッグで、(出力がオフセット・バイナリコードにおいてゼロになるようなハーフスケールにおいて)モータドライブ出力をオフします。以下の条件のいずれかによってモータは回転を止めます。つまり、パワーアップ・リセット、コマンドRESET過度のエラー(コマンドLPESが実行されているとき)、あるいはモータのマニュアル停止のためにコマンドLTRJが使われた場合などです。 マニュアル・モータオフ・ストップするために、コマンドLTRJとともにビット7がセットされたとしても、コマンドSTTがモータ停止時に実行されない限り、ビット 7は実際に機能しないことに注意してください。上記以外の条件において、ビット 7はコマンドSTTによってクリアされます。 ビット 6は、限界点に達したときのフラッグで、位置がコマンドSBPA、あるいはSBPRによってロードされた限界点を越えたとき、ビット6はロジック1にセットされます。このフラッグは、ステイタスをマスクするホストインタラプトとは別の機能で、ビット 6はコマンドRSTIによってクリアされます。 ビット5は過度の位置エラー発生時の割り込みフラッグで、位置エラーの割り込み条件を満たすときに、ロジック1にセットされます。エラーが、コマンド LPEI、あるいはLPESによってロードされたスレッショルドを超えたとき、このフラッグは発生します。このフラッグはステイタスをマスクするホストインタラプトとは別の機能で、ビット5はコマンド RSTIによってクリアされます。 ビット4は、ラップアラウンド・フラッグで、数値の“ラップアラウンド”が発生したとき、ロジック1にセットされます。“ラップアラウンド”とは位置データがLM628の位置アドレス空間を超えることを意味し、速度モードの間に起こります。ラップアラウンドが発生したとき、位置情報はエラーの中にあり、ユーザはこのインタラプトによって正確な位置データを確認することができます。このフラッグはステイタスをマスクするホストインタラプトとは別の機能で、ビット 4はコマンドRSTIによってクリアされます。 ビット3は、インデックス・パルスの後に出る割り込みフラッグで、(コマンド SIPが実行されて)インデックス・パルスが発生したときロジック1にセットされます。そして、インデックス位置レジスタがアップデートされたことを示します。このフラッグは、ステイタスをマスクするホストインタラプトとは別の機能で、ビット3はコマンドRSTI

によってクリアされます。

Page 17: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

17 http://www.national.com

LM628/LM

629データ・レポーティング・コマンド(つづき)

 ビット2は軌跡終了時の割り込みフラッグで、LTRJコマンドによってプログラムされ、かつSTTコマンドによってイニシャライズされた軌跡が最終点に達したとき、ロジック 1にセットされます。オーバーシュート、あるいは(モータの能力を超えて速度を設定するような)限界条件のため、モータがまだ最終指定位置にいないことがあります。このビットは信号レジスタのビット7とビット10の“OR”そのものです。次のコマンドRDSIGSを参照してください。このフラッグは、ステイタスをマスクするホストインタラプトとは別の機能です。ビット2

はコマンド RSTIによってクリアされます。 ビット1はコマンドエラー割り込みフラッグで、書き込みが適切(あるいは不適切)だった場合で、ユーザがデータを読み出そうとしたときに、ロジック1にセットされます。このフラッグは、ステイタスをマスクするホストインタラプトとは別の機能です。ビット 1はコマンドRSTIによってクリアされます。 ビット0はビジーフラッグで、データの書き込みと読み出しの前にステイタスが“Busy”か“Ready”かを確認するために(ホストコンピュータのプログラムを使って)ユーザがしばしばテストするために使います。このような書き込みと読み出しは、ビット0がロジック・ゼロ(ビジーではない状態)のとき実行されます。ビジービットが“HIGH”のとき、いかなるコマンド、あるいはデータの書き込みも無効となります。データの読み出しについては、ビジービットが“HIGH”のとき、現在の I/Oポート・バッファの中身を読み出すのであって、ホストコンピュータによって計算された予測値を読むのではありません。このような(ビジービットが“HIGH”のときの)読み出しや書き込みは、コマンドエラー割り込みを生じません。

RDSIGS COMMAND:ReaD SIGnalS Resister コマンド・コード: 0C Hex

 データバイト: 2

 データ範囲: 説明を参照 モータ動作中のコマンドの実行:可能 LM628の内部信号レジスタは、このコマンドを使用して読み出すことができます。読み出す順は上位バイトからです。(0を除いた)このレジスタの2番目のバイトはステイタスバイトを繰り返したものです。Table 8を参照してください。

 ビット 15はホスト割り込みフラッグで、ホストインタラプト出力(ピン17)がロジック1になったときに、ビット 15もロジック1にセットされます。ピン 17は、6つのホスト割り込み条件のどれかが発生したとき(もし、一致する割り込み条件がマスクされていないとき)、ロジック1にセットされます。ビット 15(とピン17)はコマンドRSTIによってクリアされます。 ビット14は加速度検出フラッグで、加速データがLM628に書き込まれたとき、ロジック1にセットされます。ビット 14はSTTコマンドによってクリアされます。 ビット13はUDF検出フラッグで、UDFコマンドが実行されたとき、ロジック1にセットされます。ビット13はそれがセットされているサンプリング周期の終わりでクリアされるため、この信号は大変短く、モニタリングにはあまり役に立ちません。 ビット12は正方向フラッグで、LM628が速度モードのとき役立ちます。このビットはモータの方向が正方向を示すときロジック 1にセットされ、“逆方向”ではロジック0になります。ビット12はコマンドLTRJ

によってセットされクリアされます。コマンドSTTが実行されない限り、ビット 12の実際のセットとクリアはなされません。 ビット11は速度モード・フラッグで、ユーザが(コマンド LTRJによって)速度モードを選択したことを示すためにロジック 1にセットされます。ビット11は(コマンドLTRJによって)位置モードが選択されたときにクリアされます。コマンドSTTが実行されない限り、ビット11の実際のセットとクリアは成されません。 ビット10はオン・ターゲット・フラッグで、軌跡ジェネレータが最後に実行された STTコマンドによる仕事を終えたときにロジック1にセットされます。ビット10は次のSTTコマンドによってクリアされます。 ビット9はエラーによるターンオフ・フラッグで、コマンドLPESが実行されたとき、ロジック1にセットされます。ビット 9はコマンドLPEIによってクリアされます。 ビット8は8ビット出力フラッグで、LM628がリセットされたとき、あるいはコマンドPORT8が実行されたとき、ロジック1にセットされます。ビット 8はコマンドPORT12によってクリアされます。 ビット0~7は、ビット0を除いてステイタスバイトを繰り返したものです。ビット0は次のインデックスを取り込むフラッグで、コマンドSIPが実行されたときロジック1にセットされます。つまり、次のインデックスパルスが発生しない限り、ビット 0は“0”のままです。

RDIP COMMAND:ReaD Index Position コマンド・コード: 09 Hex

 読み出しバイト: 4

 データ範囲: C0000000~ 3FFFFFFF Hex

 モータ動作中のコマンドの実行:可能 このコマンドは、インデックス・レジスタに記録された位置を読み取るものです。これによってシステムエラーをチェックすることができます。SIPコマンドがいつ実行されようとも、インクリメンタル・エンコーダの分解能(エンコーダ・ラインの4逓倍)によって得られる位置、つまり[新しいインデックス位置 - 以前のインデックス位置]は常に整数です。ホストコンピュータによる計算のためにRDIPコマンドを使用することによって、これらのデータを獲得することが容易になります。このコマンドはまた、HOME、あるいは他の特別な位置を確認/判別するためにも使われます。4バイトの読み取りは上位バイトから下位バイトの順です。

Page 18: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

18http://www.national.com

LM62

8/LM

629 データ・レポーティング・コマンド (つづき)

RDDP COMMAND:ReaD Desired Position コマンド・コード: 08 Hex

 読み出しバイト: 4

 データ範囲: C0000000~3FFFFFFF Hex

 モータ動作中のコマンドの実行: 可能 このコマンドは、プロファイル・ジェネレータの目標(現状)位置出力を読み取ります。これはループ・サミング・ジャンクションへの“セットポイント”入力です。4バイトの読み取りは上位バイトから下位バイトの順です。

RDRP COMMAND:ReaD Real Position コマンド・コード: 0A Hex

 読み出しバイト: 4

 データ範囲: C0000000~3FFFFFFF Hex

 モータ動作中のコマンドの実行:可能 このコマンドはモータの現在の実行位置を読み取ります。これはループ・サミング・ジャンクションへのフィードバック入力です。4バイトの読み取りは上位バイトから下位バイトの順です。

RDDV COMMAND:ReaD Desired Velocity コマンド・コード: 07 Hex

 読み出しバイト: 4

 データ範囲: C0000001~ 3FFFFFFF Hex

 モータ動作中のコマンドの実行: 可能 このコマンドは位置プロファイルを作り出すために使用する目標(瞬時)速度を読み取ります。読み取り順は上位バイトからです。結果として、下位の16ビットは小数点以下の速度を表します。したがって、それを整数速度値にするためには、得られた出力を 65,536(16ビットで割り算することが必要です。

RDRV COMMAND:ReaD Real Velocity コマンド・コード: 0B Hex

 読み出しバイト: 2

 データ範囲: C000~ 3FFF Hex、説明を参照 モータ動作中のコマンドの実行:可能 このコマンドはモータの実際(瞬時)の速度の整数部(上位2バイト)を読み取るものです。この値に65,536(216)がかけられます。これは、コマンドRDDVを実行することによって得られた結果と比較するため、あるいは入力値と比較するために必要なスケーリングを行っているのです。その結果、実際の速度には小数点以下はありません。読み取り順は上位バイトからです。

RDSUM COMMAND:ReaD Integration-Term SUMmation Value

 コマンド・コード: 0D Hex

 読み出しバイト: 2

 データ範囲: 00000Hex~±積分範囲の現在値 モータ動作中のコマンドの実行:可能 このコマンドは積分項がその積分を完了し、その値を読み取るものです。この値を読み取ることはシステムを最初に、あるいは広い範囲で調整するために有効です。

代表的なアプリケーション

LM628とホストコンピュータのハンドシェイク(割り込み)プログラム LM628とホストコンピュータのハンドシェイクについてのいくつかのワードはシステムプログラマにとって役に立つものです。上記のテキストの各部で指摘しているように、LM628とホストコンピュータのハンドシェイクには2つの方法があります。それは、ホストインタラプト出力による方法と割り込み条件のためにステイタスバイトをポーリングする方法です。ワイヤリングによる割り込み(ハードワイヤド・インタラプト)を使うとき、ステイタスバイトは割り込みを発生させる6種類の条件を規定するために読み出され、そして調べられます。 このハードワイヤド・インタラプトを使う場合、大変重要なことは、割り込みが発生したとき、ホストインタラプト・サービス・ルーチンが進行状態にあるコマンド・シーケンスとインタフェースしないことです。ホストインタラプト・サービス・ルーチンが実行中のコマンドシーケンスの真ん中にある間、もしそれがLM628へコマンドを発行するようなことがあれば、実行中のコマンドは中断され、アプリケーションに損傷を与えることになります。 この問題は2つの方法で解決できます。1つはもしハードワイヤド・インタラプトを使うときでも、割り込みがLM628のコマンド・シーケンスを発行する前にホストコンピュータでディセーブルされるようにすることです。そしてそれぞれのコマンド・シーケンスの前に再びイネーブルされます。もう1つの方法は、ハードワイヤド・インタラプトを使わず、“割り込み”状態のためにLM628のステイタスバイトを登録することです。ステイタスバイトは、割り込みがマスクされているかいないかにかかわらず、常に割り込み条件を持っています。

ホストコンピュータ/プロセッサとのインタフェース LM628は8ビット・パラレル・バスによってホストコンピュータ /プロセッサとインタフェースされます。Figure 12にインタフェースと最も簡単なシステムを示します。 Figure 12に見られるように、LM628はホストデータ、アドレス、コントロールラインとインタフェースしています。アドレスラインは

LM628のCS入力を作るためにデコードされます。ホストアドレスの

LSBはLM628のPS入力を直接ドライブします。Figure 12はまた、LM628

と接続される8ビットDACとLM12パワー・オペアンプについても示しています。

LM628とハイパフォーマンス・コントローラ(HPC)のインタフェース Figure 13に、NS社のHPCハイパフォーマンス・コントローラとイン

タフェースされるLM628を示しています。WRラインにつながっているディレィとロジック回路は(LM628で見られたように)、HPCのWrite

Data Hold Timeを長くするために使われます。時間を長くすることは効果的であり、これはWRパルスを早めに立ち上げることによってなさ

れます。なお、HPCのCK2出力クロックが得られることに注目してください。74HC245は、速いホストバスとインタフェースするとき必要な条件であるRead Data Hold Timeを短くするために使われます。

12ビットDACとのインタフェース Figure 14に、LM628と12ビットDACの使用例を示します。74LS378

HexゲートDフリップ・フロップとインバータは12ビット出力をデマルチプレックスします。DACのオフセット調整は、DACの直線性誤差と単調性誤差を最小にすることによってなされます。この調整には 2

つの方法があります。もし、DAC1210がソケットに差し込まれているならば、それから抜いてDACソケットのピン11とピン13の間に15kΩの抵抗を入れ、LF356のピン 6で0Vになるように 25kΩのポテンショメータを調整します。

Page 19: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

19 http://www.national.com

LM628/LM

629代表的なアプリケーション(つづき)

もし、DAC を抜くことができないときは、2つ目の方法としてDAC1210のすべての入力をコード・ゼロにします。これは適切にモータを動作させるためにコマンドによって LM628の出力を調整しますが、システムエンコーダからのフィードバックはありません。すべてのゼロ・コードが現れると、LF356のピン 6で0Vになるようにポットを調整します。

LM12パワーオペアンプの使用法 Figure 15に、LM12パワーオペアンプを使用したモータドライブ・アンプを示します。この回路はとても簡単で、30Vで8Aまで供給できます(LM12L/LM12CLを使用)。抵抗R1とR2の値は最大入力電圧で最大出力電圧を発するような利得を設定するために選定されます。例えば、2.2の利得にすれば、±10Vの入力電圧、± 30Vの電源電圧で、± 22V

の飽和出力が得られます。このアンプの利得は必要以上に高くしてはいけません。というのは、飽和したときにシステムが非直線になるためであり、そしてまた利得自体は LM628で制御できるからです。また、LM12は電流ドライバとしても使用できます。

PWMモータドライブ・インタフェース Figure 16に、小さなブラシ付きモータをドライブするためのスイッチモード・パワーアンプとして、LM18298デュアル・フルブリッジ・ドライバがLM629 PWM出力とインタフェースする方法を示します。

インクリメンタル・エンコーダ・インタフェース インクリメンタル(位置フィードバック)エンコーダ・インタフェースは3ライン入力から成ります。フェイズA(ピン2)、フェイズB(ピン3)、そしてインデックス(ピン 1)です。インンデックス・パルス出力は、すべてのエンコーダがもっているとは限りません。したがって、LM628ではインデックス・パルス出力をもっている、いないにかかわらず、どちらのエンコーダでも動作します。しかし、インデックス・パルスがない場合は(あるいは使わない場合にピン1を“HIGH”に吊っておく、この入力の代わりの入力がない場合は)、コマンドSIPとRDIPは無意味になります。 ガウシアン・ノイズのあるような使用環境では、いくつかの注意が必要です。もし、ノイズがエンコーダ入力(1入力、あるいは 2入力)に入って、そのノイズによってエンコーダ・トランジションまでその入力値を保てないような場合、LM628のデコーダ・ロジック回路はノイズを除去します。擬示矩形カウントや尾を引くエンコーダ・トランジションをもたらすノイズは適切なEMI設計によって除去しなければなりません。 簡単なデジタル“フィルタリング”は時として、耐ノイズ性能を下げることがあります(フィルタが除去できるよりも長いパルスノイズは常にあります)。そのうえ、いかなるノイズ・フィルタもデコーダのバンド幅を狭める働きをします。LM628ではデコーダが最大のバンド幅を得ることを重視して、あえてノイズフィルタを内蔵しておりません(簡単なフィルタでは問題を完全に解決できません)。大抵の場合、最も効果的な誘導ノイズ対策は平衡ライン・ドライバとエンコーダ入力にレシーバを使うことです。Figure 17に、DS26LS31とDS26LS32を使用した回路を示します。

Page 20: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

20http://www.national.com

LM62

8/LM

629 代表的なアプリケーション(つづき)

Page 21: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

21 http://www.national.com

LM628/LM

629代表的なアプリケーション(つづき)

Page 22: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

22http://www.national.com

LM62

8/LM

629 代表的なアプリケーション(つづき)

Page 23: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

23 http://www.national.com

LM628/LM

629外形寸法図 特記のない限り inches(millimeters)

Page 24: LM628/LM629 高精度モーションコントロール IC · PDF file 4 LM628/LM629 Note 1: 絶対最大定格を超える条件下では、デバイスは損傷を受けます。デバイスを動作定格を

LM62

8/LM

629 高精度モーションコントロール

IC

 本資料に掲載されているすべての回路の使用に起因する第三者の特許権その他の権利侵害に関して、弊社ではその責を負いません。また掲載内容は予告無く変更されることがありますのでご了承下さい。

生命維持装置への使用について 弊社の製品はナショナル セミコンダクター社の書面による許可なくしては、生命維持用の装置またはシステム内の重要な部品として使用することはできません。

1. 生命維持用の装置またはシステムとは(a)体内に外科的に使用されることを意図されたもの、または(b)生命を維持あるいは支持するものをいい、ラベルにより表示される使用法に従って適切に使用された場合に、これの不具合が使用者に身体的障害を与えると予想されるものをいいます。

2. 重要な部品とは、生命維持にかかわる装置またはシステム内のすべての部品をいい、これの不具合が生命維持用の装置またはシステムの不具合の原因となりそれらの安全性や機能に影響を及ぼすことが予想されるものをいいます。

ナショナル セミコンダクター ジャパン株式会社本 社/ 135-0042 東京都江東区木場 2-17-16 TEL.(03)5639-7300

製品に関するお問い合わせはカスタマ・レスポンス・センタのフリーダイヤルまでご連絡ください。

フリーダイヤル

0120-666-116

ちきゅうにやさしい

みどりをまもる

この紙は再生紙を使用しています

http://www.nsjk.co.jp/