JAJSL46A August 2022 – December 2022 DRV8452
PRODUCTION DATA
DRV8452 が SPI インターフェイスで動作しているときは、ストール検出をサポートします。
ステッパ・モーターでは、モーターの巻線電流、逆起電力、機械的トルク負荷の間に、図 7-43 のような明確な関係があります。モーターが無負荷の場合、逆起電力は巻線電流と 90°位相がずれています。与えられた巻線電流に対して、モーターの負荷がモーターの最大トルク能力に近づくと、逆起電力は巻線電流に対して位相が変化します。DRV8452 は、モーター電流の立ち上がりと立ち下がりの電流象限の間で、逆起電力の位相の変化を検出することで、モーターの過負荷ストール条件またはエンドオブライン・トラベルを検出できます。
ストール検出アルゴリズムは、次の場合にイネーブルになります。
デバイスが SPI インターフェイスで動作するようにプログラムされている場合 (MODE = 1)
減衰モードがスマート・チューン・リップル・コントロールとしてプログラムされている場合 (DECAY = 111b)
EN_STL が「1b」の場合
フォルト条件がない場合 (UVLO、OCP、OL、OTSD など)。
このアルゴリズムは、PWM オフ時間を監視することで立ち上がり電流象限と立ち下がり電流象限の逆起電力を比較し、TRQ_COUNT レジスタで表されるトルク・カウントと呼ばれるパラメータ値を生成します。この比較は、TRQ_COUNT がモーター電流、周囲温度、電源電圧に大きく依存しないような方法で行われます。モーターのストールは、ドライバがフルステップ・モードで動作している場合でも検出できます。
TRQ_COUNT は、最新の 4 つの電気的半サイクルの実行平均として計算されます。TRQ_COUNT レジスタは、電気的半サイクルごとに更新されます。更新された TRQ_COUNT は STALL_TH と比較され、ストール条件が検出されると、ストール・フォルトが通知され、電気的な半サイクルの電流ゼロ交差時にラッチされます。
モーターの負荷が軽い場合、TRQ_COUNT はゼロ以外の値になります。モーターがストール条件に近づくにつれて TRQ_COUNT はゼロに近づくため、これを使ってストール条件を検出できます。
TRQ_COUNT がストール・スレッショルド (STALL_TH レジスタで表されます) を下回ると、デバイスはストールを検出します。
SPI レジスタでは、STALL ビット、STL ビット、FAULT ビットは「1b」にラッチされます。
STL_REP ビットは、ストールの通知方法を制御します。
STL_REP ビットが「1b」の場合、ストールが検出されると nFAULT ピンは Low に駆動されます。
STEL_REP が「0b」の場合、ストールが検出されても nFAULT ピンは High のままを維持します。
ストール条件では、モーターのシャフトは回転しません。ストール条件が解消すると、モーターは再び回転を開始し、モーターは目標速度まで回転数を増加させます。CLR_FLT ビットと nSLEEP リセット・パルスのどちらかによって障害クリア・コマンドが発行されると、nFAULT は解放され、FAULT レジスタはクリアされます。
モーターのコイルの抵抗が大きいと、TRQ_COUNT が小さくなる場合があります。TRQ_SCALE ビットを使うと、小さい TRQ_COUNT 値を拡大し、その後の処理を簡単にできます。
最初に計算された TRQ_COUNT 値が 500 未満であり、かつ TRQ_SCALE ビットが「1b」の場合、レジスタの TRQ_COUNT 出力は 8 倍されます。
TRQ_SCALE ビットが「0b」の場合、TRQ_COUNT はアルゴリズムによる当初の計算値を維持します。
ストール・スレッショルドは、以下の 2 種類の方法で設定できます。
ユーザーは、すべての動作条件で TRQ_COUNT 出力の動作を観察することで、STALL_TH ビットを書き込むことができます。
このアルゴリズムは、以下で説明する自動ストール学習プロセスを使用してストール・スレッショルドを学習できます。
学習の前に、モーター速度が目標値に達していることを確認します。モーター速度の上昇または下降中は、ストール・スレッショルド学習を行わないでください。
STL_LRN ビットを「1b」に設定して、学習を開始します。
無負荷の状態でモーターを動作させます。
本ドライバが安定状態カウントを学習するように 32 電気的サイクルの間待機します。
モーターをストールさせます。
ドライバがストール・カウントを学習するよう、16 電気的サイクルの間待機します。
学習が成功すると、STL_LRN_OK ビットは「1b」になります。
ストール・スレッショルドは、定常カウントとストール・カウントの平均として計算され、STALL_TH レジスタに保存されます。
ストール・スレッショルドの設定方法に関するフローチャートを以下に示します。
モーター作動中またはストール中のトルク・カウントが不安定な場合、自動ストール学習プロセスが失敗する場合があります。例として、モーターのコイルの抵抗が大きい場合、モーターが非常に高速または低速で動作している場合、トルク・カウントが時間と共に大きく変化する場合、定常カウントとストール・カウントの差が小さい場合が挙げられます。このような場合は、自動ストール学習手法を使用しないことを推奨します。代わりに、動作条件の範囲全体にわたって定常カウントとトルク・カウントを慎重に検討し、定常カウントの最小値とストール・カウントの最大値の中間にスレッショルドを設定します。
ある速度で学習されたストールのスレッショルドは、別の速度ではうまく機能しない場合があります。モーター速度が ±10% 以上変化するたびにストール・スレッショルドを再学習させることを推奨します。
ストール検出アルゴリズムは、PWM オフ時間を変更する逆起電力に依存します。逆起電力は、モーター速度に正比例します。ストール検出を確実に動作させるには、十分な振幅の逆起電力を生成できるように、モーター速度を十分に高くする必要があります。モーター・コイルの抵抗値が大きい場合は、ストール検出の信頼性を高めるために、最小速度を上げる必要があります。
EN_OUT ビットまたは ENABLE ピンをトグルすることでデバイスがディセーブル・モード (H ブリッジ・ハイ・インピーダンス) からアクティブ・モードに移行した場合、または CLR_FLT を発行してデバイスがフォルトから回復した場合、ストール検出フォルトもフラグされる場合があります。これは、TRQ_CNT が STL_TH よりも大きい値に達するまでに時間がかかるためです。ストール・フォルトの結果、nFAULT は Low のままになる可能性があり (STL_REP = 1b の場合)、ストール・フォルトと nFAULT ピンを解放するには別の CLR_FLT が必要になります。これは、次の方法で防止できます。
アクティブ・モードをイネーブルにした後に、ストール検出をイネーブルにする (EN_OUT = 1b を書き込み、ENABLE = ロジック High にした後でのみ EN_STALL = 1b を書き込みます)
ブリッジがアクティブ・モードになった後、または CLR_FLT コマンドを発行して障害状態をクリアした後でのみ、STEP パルスを開始します。
電源電圧の低下、コイル抵抗の増加、モーターの高速動作が原因で電流レギュレーションが失われた場合、TRQ_COUNT が不安定になり、値が急激に高くなる可能性があるため、ストール検出の信頼性が十分でない状態で動作する可能性があります。コイル電流の波形を見ると、この状態を確認できます。コイル電流が標準的な正弦波波形になり、正弦波のピークが目的のフルスケール電流に到達すると、ストール検出は確実に動作します。高速または低電源電圧が原因で電流波形が三角波になる場合、ストール検出アルゴリズムは信頼性が十分でない状態で動作する可能性があります。
EN_STL=「1b」で、自動トルクもイネーブルの場合、モーターのストールが検出されると、コイル電流は ATQ_TRQ_MAX になります。
EN_STL=「0b」で、自動トルクがイネーブルの場合、モーターがストールするとコイル電流は ATQ_TRQ_MIN になります。