この記事は、NOVOSENSEのマイクロステップステッピングモータドライバーNSD8381の詳細なケーススタディです。ステッピングモータ制御とストール検出の実装プロセスを説明し、エンジニアがNSD8381を使用してステッピングモータの動作制御とストール検出を行うための実践的なスキルを短期間で構築できるようサポートします。
1.ステッピングモータドライバーチップNSD8381のご紹介
NSD8381は、NOVOSENSEが新発表した車載グレードの高集積2相バイポーラステッピングモータドライバーです。自動車のヘッドライトステッパーコントロール (ADB/AFS)、HUD 位置調整モーター、熱管理システムバルブにおけるステッパーモータおよびBDCモータドライブなどに広く使用できます。
NSD8381は、最大1.35Aのフルスケール電流をサポートし、電流チョッパー調整、内部最大1/32 マイクロステップコンバータ、およびステッピングモータのスムーズな動作を可能にする複数の減衰モードオプションを備えています。バス低電圧保護(VSUV)、過電流保護(OCP)、温度アラーム(OTW/UTW)、および過熱保護(OTSD)を搭載し、出力負荷の開回路診断と過電流保護も対応します。さらに、NSD8381はストール検出機能を統合されており、ストール障害出力に使用できます。
2. NSD8381によるステッピングモータ制御の構成とテストケース
1) NSD8381のSPIフレーム構造
1. SDI入力フレームは24ビットで構成され、次のような構造になっています。
• 2ビット動作コマンドC1/C0、00は書き込み動作、01は読み出し動作、10 は読み出し動作を表す
• 6ビットのレジスタアドレス
• 16ビットデータ、ビット15~ビット1データ、ビット0の奇数パリティ ビットが含む
表 1: SPI 入力フレーム構造
2. SDOの出力フレームは24ビットで構成され、次のような構造になります。
• 8ビットのグローバルステータスバイト、戻されたグローバルステータスを表示し、故障およびアラームの場合、対応するビットが故障ステータスをフィードバックする
• 16ビットの戻りデータ、ビット15~ビット1までのデータとビット0の奇数パリティビットが含む
表 2: SPI 出力フレーム構造
2) NSD8381 ステッピングモータモードの動作フローチャート
図 1: ステッピング モータの動作フローチャート
3) NSD8381ステッピングモータテストのハードウェア構成とソフトウェア設定
ハードウェア: NSD8381デモボード、ステッピングモータ、12V DC電源、ホストコンピュータに接続されたUSB-TTLガジェット、および信号発生器1台
SPI レジスタ設定:
CONFIG_6: 0x081013----ステッピングモータ電流サイズを設定します (ホールド: 50mA; フル 571mA)
CONFIG_4: 0x060841----電流変調周波数20k、スルーレート10V/us、フィルタ時間2us、電流の緩やかな減衰を設定します
注意事項: ここではデフォルトのスルーレートである10v/usが使用されています。アプリケーションではスルーレートを速くすることを薦めます。そうすると、デッドタイムも減少します。速度を速くすると、比較的大きな電流が流れる動作シナリオでは、チップの消費電力に明らかな利点があります。たとえば、CONFIG_4: 0x060A40、----電流変調周波数 20k、スルーレート 70V/us、フィルタ時間 2us、電流低速減衰を設定できます。
CONFIG_1: 0x030428----CTRLxを設定します(デフォルト設定ではステッピングモータモードを使用します)
CONFIG_3: 0x058000----出力を有効にし、マイクロステップを設定します (1/16 マイクロステップ)
4) NSD8381 ステッピングモータのテスト波形
試験条件:1/16マイクロステップ、フルスケール電流571mA、電流変調周波数20kHz、電流変調フィルタ時間2us、STEPパルス1kHz
1. 低速減衰モードのテスト波形
図 2: ステッピングモータ巻線の電流波形
図 3: ステッピングモータ巻線の電流波形の減衰波形
2. ミックスディケイモードテスト波形
図 4: ステッピング モーター巻線の電流波形
図 5: ステッピングモーター巻線の電流波形の減衰波形
3. 自動減衰モードのテスト波形
図 6: ステッピングモータ巻線の電流波形
図 7: ステッピングモータ巻線の電流波形の減衰波形
3つの波形を比較すると、測定された現象は次のように要約されます:Slow Decayモードと Auto Decay モードでは、電流の立ち上がり減衰波形が比較的緩やかで、正弦波のピーク部分のバリが小さくなり、モータ音が比較的小さくなります。ミックスディケイ電流が上昇し、ディケイ波形が2つに分かれ、正弦波のピーク部分のバリが大きくなり、モータ動作音が比較的大きくなります。実際のアプリケーションでは、デバッグ減衰モードに応じてモータの適切な動作状態を取得できます。
3. NSD8381 はステッピングモータ制御ストール検出に使用
1) ストール検出の原理
図8は、ステッピングモータ巻線相当のモデルです。モータが正常に回転している場合、モータ巻線の両側の電圧Vmotorは等式1で求められます。モータの逆起電力BEMFは、コイルの巻き数をN、磁界の強さをB、モータの磁界で囲まれる面積をA、モータの回転角速度をwとすると、等式2で求められます。
等式1から、モーターに流れる電流がゼロのとき、モータ巻線の両側の電圧は BEMF、つまり逆起電力電圧であることがわかります。等式2から、逆起電力電圧はモータの角速度に比例することがわかります。モータが停止すると速度はゼロとなり、このときの逆起電力は理論的にはゼロになります。したがって、巻線電流がゼロのときの巻線電圧を検出することで逆起電力を検出することができます。
等式1
等式2
図 8: ステッピングモータ巻線相当のモデル
2) ストール検出手順
図 9: NSD8381 ストール検出プロセス
ストール検出プロセスの注意点:
1. アプリケーションに正転と逆転が含まれる場合、モータが正転と逆転のときにそれぞれ手順1~6を実行し、最高値と最低値を記録する必要があります。CVLLAの値は、正転、逆転のロックローター値より大きく、正転、逆転の逆起電力値よりは十分小さく設定してください。
2. CV_DELAY 設定: 図10を例にとると、CV_DELAY時間は図の△Xより大きくしなければなりません。逆起電力のサンプリングポイントが図の平坦な部分、つまり△X以降のコイル電流がゼロになる部分であるように確保し、正確な収集値が得られます。図10は、△X =108us を示しており、内部 PWM の周波数は 20kHz(50us)であり、この波形のCV_DELAY 値は3より大きい、つまり 3×50=150us より大きい必要があります。もう1つの注意点は、モータが非常に高速で回転する場合、CV_DELAY を0になるように直接設計できることです。このとき、ADCのサンプリング ポイントはゼロ電流の終点になります。
図 10: 正転時の逆起電力波形
3. CVA、CVB、CVC、CVD の値を読み込んで CVLLA、CVLLBを設計する場合、レジスタのビットを ビット1~ ビット10に設定します。電圧値を変換する場合は1ビットシフトする必要があることにご注意ください。
3) ステッピングモーターストール検出例
ステッピングモータ1: ステップ周波数2kHz、変調周波数20kHz、正転時の OUTA1とOUTA2 間の逆起電力は3.2Vです、図 11 にように示します。モータがストールされた場合、図12に示すように、OUTA1と OUTA2間の逆起電力は0.2Vになります。
レジスタCONFIG_5はレジスタ0x078E00(CV_DELAY=7)として設定されます。これは、図 11 に従って350usとして計算され、CV_DELAY の遅延サンプリング ポイントを満たします。CVLLA設定は0x0E0027 (0.52V)です。モータがストールされた場合、FUNCTION_ERRがセットされ、STA_1が読み戻され、STALL が 1に設定されることが検出できます。
図 11: モータ1が正常に回転する場合のOUTA1とOUTA2の間の波形
図 12: モータ1がストールされた場合のOUTA1およびOUTA2の波形
ステッピングモータ2: ステップ周波数1.65kHz、変調周波数20kHz、正転時のOUTA1およびOUTA2の逆起電力は11.5Vです、図13にように示します。モータがストールされた場合、図14に示すように、OUTA1とOUTA2間の逆起電力は1.9Vになります。
レジスタCONFIG_5は、レジスタ0x078001(CV_DELAY=0)がゼロ電流終了位置でサンプリングするように設定するようにしています。CVLLA設定は0x0E00DB (2.98V)です。モータがストールされた場合、FUNCTION_ERRがセットされ、STA_1が読み戻され、STALLが1に設定されることが検出できます。
図13: モータ2が正常に回転する場合のOUTA1とOUTA2 間の波形
図14: モータ2が正常にストールされていた場合のOUTA1とOUTA2間の波形