UM2300 X-CUBE-SPN14STM32Cube用ステッピングモータードライバーソフトウェア拡張ユーザーマニュアル

導入
STM14Cube用のX-CUBE-SPN32拡張パッケージにより、ステッピングモーターの動作を完全に制御できます。
このソフトウェアを14つ以上のX-NUCLEO-IHM1A32拡張ボードと組み合わせると、互換性のあるSTMXNUMXNucleo開発ボードでXNUMXつ以上のステッピングモーターを制御できます。
STM32Cubeソフトウェアテクノロジーの上に構築されているため、さまざまなSTM32マイクロコントローラー間で簡単に移植できます。
ソフトウェアはとして付属していますamp401つのステッピングモーターの実装。 X-NUCLEO-IHM334A8拡張ボードが上部に取り付けられたNUCLEO-F030RE、NUCLEOF8R053、NUCLEO-F8R14、またはNUCLEO-L1RXNUMX開発ボードと互換性があります。
関連リンク
STM32Cubeエコシステムにアクセス web 詳細については、www.st.comのページをご覧ください。
頭字語と略語
表1.頭字語のリスト
|
頭字語 |
説明 |
| 翻訳 |
アプリケーションプログラミングインターフェース |
|
BSPS の |
ボードサポートパッケージ |
| CMSIS |
Cortex®マイクロコントローラーソフトウェアインターフェース規格 |
|
ハル |
ハードウェアアブストラクションレイヤー |
| IDE |
統合開発環境 |
|
導かれた |
発光ダイオード |
以上view
X-CUBE-SPN14ソフトウェアパッケージは、STM32Cubeの機能を拡張します。 その主な機能は次のとおりです。
- X-NUCLEO-IHM820A14拡張ボードに統合されたSTSPIN1(低電力ステッピングモータードライバー)デバイスを完全に管理するためのドライバーレイヤー
- デバイスパラメータの読み取りおよび書き込みモード、GPIO、PWMおよびIRQ構成、マイクロステッピング、方向位置、速度、加速、減速およびトルク制御、自動フルステップスイッチ管理。 高インピーダンスまたはホールドストップモードの選択、有効化およびスタンバイ管理
- 障害割り込み処理
- シングルステッピングモーター制御ampファイルアプリケーション
- STM32Cubeのおかげで、さまざまなMCUファミリ間で簡単に移植できます
- 無料でユーザーフレンドリーなライセンス条項
このソフトウェアは、次の方法で疑似レジスタとモーションコマンドを実装します。
- ステップクロックとボリュームの生成に使用されるタイマーの設定tageリファレンス
- 加速、減速、最小などのデバイスパラメータの管理。 と最大。 スピード、スピードプロでのポジションfile 境界、マークの位置、マイクロステッピングモード、方向、モーション状態など。
ソフトウェアは820つのSTSPINXNUMXデバイスを処理します。
ティックタイマーのパルスが終了するたびに、コールバックが実行され、モーターの動きを制御するステップクロックハンドラーが呼び出されます。
管理することによって:
- モーションステータス(たとえば、ターゲットの宛先でモーターを停止する)
- GPIOレベルによるモーターの方向
- マイクロステップでの相対的および絶対的なモーター位置
- ゼロ、正および負の加速を通る速度
速度は、ステップクロック周波数を変更することによって設定されます。オプションで、自動フルステップスイッチ機能が有効になっている場合のステップモードも変更されます。 ステップクロックに使用されるタイマーは、出力比較モードで構成されます。 周波数制御を実現するために、各ステップクロックハンドラ呼び出しで新しいキャプチャ比較レジスタ値が計算されます。
速度は、特定のマイクロステッピングモードのステップクロック周波数の線形関数であり、ソフトウェアによってフルステップから1/256ステップまで変更できます。
STSPIN820ドライバライブラリを使用するには、次の初期化関数を実行する必要があります。
- ブリッジを有効にし、障害ピンEN \ FAULT、専用MODE1を管理するために必要なGPIOを設定します。
MODE2およびMODE3ステップ選択ピン、モーター方向のDIRピン、減衰モードのDECAYピン
選択とスタンバイリセットピンSTBY \ RESET; - STCKピンとタイマーリファレンスボリュームの出力比較モードでタイマーを設定しますtageREFピンのPWMモードでの生成。
- stspin820_target_config.hからの値、または専用の初期化構造を使用してmain関数で定義された値を使用してドライバーパラメーターをロードします。
ドライバパラメータは、特定の関数を呼び出すことにより、初期化後に変更できます。 コールバック関数を記述して、それらを以下にアタッチすることもできます。 - 過電流または熱アラームが報告されたときに特定のアクションを実行するためのフラグ割り込みハンドラ
- ライブラリがエラーを報告したときに呼び出されるエラーハンドラー後続のモーションコマンドには、次のものがあります。
- BSP_MotorControl_Moveは、特定の方向に特定のステップ数を移動します
- BSP_MotorControl_GoTo、BSP_MotorControl_GoHome、BSP_MotorControl_GoMarkは、最短パスを使用して特定の位置に移動します
- BSP_MotorControl_CmdGoToDirは、特定の方向に特定の位置に移動します
- BSP_MotorControl_Runを無期限に実行します
スピードプロfile マイクロコントローラによって完全に処理されます。 モーターはBSP_MotorControl_SetMinSpeedの最低速度設定で動き始め、その後、各ステップで
BSP_MotorControl_SetAcceleration加速値。
モーションコマンドの目標位置が十分に遠い場合、モーターは次の方法で台形の動きを実行します。
- デバイスの加速パラメータで加速
- BSP_MotorControl_SetMaxSpeedの最高速度で安定したまま
- BSP_MotorControl_SetDecelerationによる減速
- 目的地に停車
目標位置が近すぎてモーターが最高速度に到達できない場合、モーターは次のような三角形の動きを実行します。 - 加速度
- 減速
- 目的地に停車
モーションコマンドは、減速パラメータまたはモーターを即座に停止するBSP_MotorControl_HardStopコマンドを使用して、BSP_MotorControl_SoftStopが速度を徐々に下げて、いつでも停止できます。 HIZ_MODE停止モードが以前に設定されている場合(BSP_MotorControl_SetStopMode)、モーターが停止すると、パワーブリッジは自動的に無効になります。
方向、速度、加速、減速は、モーターが停止しているとき、またはBSP_MotorControl_Runを介してモーションが要求されたときに変更できます。
前のコマンドが完了する前に新しいコマンドをブロックするために、BSP_MotorControl_WaitWhileActiveは、モーターが停止するまでプログラムの実行をロックします。
BSP_MotorControl_SelectStepModeは、ステップモードをフルステップから1/256ステップに変更できます。 ステップモードを変更すると、デバイスと現在の位置と速度がリセットされます。
建築
このソフトウェア拡張は、STM32Cubeアーキテクチャに完全に準拠しており、ステッピングモータードライバーを使用したアプリケーションの開発を可能にするために拡張されています。
図1.X-CUBE-SPN14ソフトウェアアーキテクチャ

このソフトウェアは、STM32マイクロコントローラー用のSTM32CubeHALハードウェア抽象化レイヤーに基づいています。 このパッケージは、モーターコントロール拡張ボード用のボードサポートパッケージ(BSP)とSTSPIN32低容量用のBSPコンポーネントドライバーでSTM820Cubeを拡張します。tageステッピングモータードライバー。
アプリケーションソフトウェアで使用されるソフトウェアレイヤーは次のとおりです。
- STM32Cube HALレイヤー: シンプルで汎用的なマルチインスタンスのAPIセット(アプリケーションプログラミングインターフェイス)
上位のアプリケーション、ライブラリ、スタックレイヤーと対話します。 これは、汎用APIと拡張APIベースで構成されています
ミドルウェア層など、その上に構築された層が特定のマイクロコントローラーユニット(MCU)ハードウェア構成を必要とせずに機能できるように、共通のアーキテクチャー上にあります。 この構造により、ライブラリコードの再利用性が向上し、他のデバイスへの容易な移植性が保証されます。
ボードサポートパッケージ(BSP)レイヤー:STM32Nucleoボードの周辺機器をサポートします。
MCU。 この限定されたAPIセットは、LEDやユーザーボタンなどの特定のボード固有の周辺機器にプログラミングインターフェイスを提供し、特定のボードバージョンを識別するのに役立ちます。 モーターコントロールBSPは、さまざまなモータードライバーコンポーネントのプログラミングインターフェイスを提供します。 これは、X-CUBE-SPN820ソフトウェアのSTSPIN14モータードライバーのBSPコンポーネントに関連付けられています。
フォルダ構造

ソフトウェアはXNUMXつのメインフォルダにあります。
- ドライバー、と:
- STM32Cube HAL file■STM32L0xx_HAL_Driver、STM32F0xx_HAL_Driver、STM32F3xx_HAL_Driver、またはSTM32F4xx_HAL_Driverサブフォルダー内。 これらは filesはSTM32Cubeフレームワークから直接取得され、モータードライバーを実行するために必要なもののみが含まれます。ampレ。
- CMSIS(Cortex®マイクロコントローラーソフトウェアインターフェイス規格)を備えたCMSISフォルダー、ARMのCortex-Mプロセッサーシリーズ用のベンダーに依存しないハードウェア抽象化レイヤー。 このフォルダもSTM32Cubeフレームワークから変更されていません。
- コードを含むBSPフォルダー file■X-NUCLEO-IHM14A1構成、STSPIN820ドライバー、およびモーター制御APIの場合。
- プロジェクト、 いくつかの使用例が含まれていますampさまざまなSTM820Nucleoプラットフォーム用のSTSPIN32モータードライバーのファイル。
BSPフォルダー
X-CUBE-SPN14ソフトウェアには、次のサブセクションで説明するBSPが含まれています。
STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
これらのBSPは、互換性のある各STM32 Nucleo開発ボードにインターフェイスを提供し、X-NUCLEO-IHM14A1拡張ボードで周辺機器を構成および使用します。 各サブフォルダーにはXNUMXつの.c / .hがあります file ペア:
- stm32XXxx_nucleo.c / h:これらの変更されていないSTM32Cubeフレームワーク file■特定のSTM32NucleoボードにユーザーボタンとLED機能を提供します。
- stm32XXxx_nucleo_ihm14a1.c / h:これら filesは、PWM、GPIO、およびXNUCLEO-IHM14A1拡張ボードの動作に必要な割り込みの有効化/無効化の構成専用です。
モーターコントロールBSP
このBSPは、MotorControl / motorcontrol.c / hを介して、L6474、powerSTEP01、L6208、STSPIN820などのさまざまなモータードライバーのドライバー機能にアクセスするための共通インターフェースを提供します。 file ペア。
これら file■すべてのドライバ構成および制御機能を定義します。これらは、motorDrv_t構造を介して、特定の拡張ボードで使用されるモータードライバコンポーネントの機能にマッピングされます。 file (Components \ Common \ motor.hで定義されています)。 この構造体は、対応するモータードライバーコンポーネントでのインスタンス化中に入力される関数ポインターのリストを定義します。 X-CUBE-SPN14の場合、構造はstspin820Drvと呼ばれます(を参照)。 file:BSP \ Components \ stspin820 \ stspin820.c)。
モーター制御BSPはすべてのモータードライバー拡張ボードに共通であるため、特定の拡張ボードでは一部の機能を使用できません。 使用できない関数は、ドライバーコンポーネントのmotorDrv_t構造体のインスタンス化中にnullポインターに置き換えられます。
STSPIN280BSPコンポーネント
STSPIN820 BSPコンポーネントは、フォルダー内のSTSPIN820モータードライバーのドライバー機能を提供します
stm32_cube \ Drivers \ BSP \ Components \ STSPIN820。
このフォルダには3つあります files:
- stspin820.c:STSPIN820ドライバーのコア機能
- stspin820.h:STSPIN820ドライバー関数の宣言とそれに関連する定義
- stspin820_target_config.h:STSPIN820パラメーターおよびモーターデバイスコンテキストの事前定義された値
プロジェクトフォルダ
STM32 Nucleoプラットフォームごとに、XNUMXつの例ampleプロジェクトはstm32_cube \ Projects \ Multi \ Exで利用できますamples \ MotionControl \:
- IHM14A1_ExampleFor1モーターexampシングルモーター構成の制御機能のファイル
元ampleには、互換性のあるIDEごとにフォルダーがあります。
- IAR Embedded Workbench 用 EWARM
- ARM / Keil µVision用のMDK-ARM
- STM32の統合開発環境用のSTM32CubeIDE
次のコード filesも含まれています:
- inc \ main.h:メインヘッダー file
- inc \ stm32xxxx_hal_conf.h:HAL構成 file
- inc \ stm32xxxx_it.h:割り込みハンドラーのヘッダー
- src \ main.c:メインプログラム(元のコードampSTSPIN820のモーターコントロールライブラリに基づくファイル)
- src \ stm32xxxx_hal_msp.c:HAL初期化ルーチン
- src \ stm32xxxx_it.c:割り込みハンドラ
- src \ system_stm32xxxx.c:システムの初期化
- src \ clock_xx.c:クロックの初期化
ソフトウェアに必要なリソース
820つのSTSPIN14(1つのX-NUCLEO IHM1A2ボード)のMCU制御と、3つの間の通信はXNUMXつのGPIO(STBY \ RESET、EN \ FAULT、MODEXNUMX、MODEXNUMX、MODEXNUMX、DIR、DECAYピン)とREFピンのPWMを介して処理されます。 STCKピンのGPIOは、TIMER OUTPUTCOMPARE代替機能として使用するように構成されています。
X-CUBE-SPN14ソフトウェアは、過電流および過熱アラームを処理するために、電源ブリッジを有効または無効にした後、EN \ FAULTピンに使用されるGPIOに構成された外部割り込みを使用します。
表2.X-CUBE-SPN14ソフトウェアに必要なリソース
|
リソースF4xx |
リソースF3xx | リソースF0xx | リソースL0xx | ピン | 機能(ボード) |
| ポートAGPIO 10
EXTI15_10_IRQn |
ポートAGPIO 10
EXTI15_10_IRQn |
ポートAGPIO 10
EXTI4_15_IRQn |
ポートAGPIO 10
EXTI4_15_IRQn |
D2 |
EN / FAULT (英語) |
|
ポートBGPIO 3 タイマー2Ch2 |
ポートBGPIO 3
タイマー2Ch2 |
ポートBGPIO 3
タイマー15Ch1 |
ポートBGPIO 3
タイマー2Ch2 |
D3 |
STCK
(CLK) |
|
ポートBGPIO 4 |
D5 |
減衰
(12月) |
|||
| ポートAGPIO 8 |
D7 |
方向 (DIR) |
|||
| ポートAGPIO 9 |
D8 |
スタンバイ/リセット (STBY) |
|||
|
Pオルト C GPIO 7 タイマー3Ch2 |
ポートCGPIO 7
タイマー3Ch2 |
ポートCGPIO 7
タイマー3Ch2 |
ポートCGPIO 7
タイマー22Ch2 |
D9 |
PWMREF
(参照) |
|
ポートAGPIO 7 |
D11 |
モード3
(M3) |
|||
|
ポートAGPIO 6 |
D12 |
モード2 (M2) |
|||
| ポートAGPIO 5 |
D13 |
モード1 (M1) |
|||
APIについて
X-CUBE-SPN14 APIは、モーターコントロールBSPで定義されています。 その関数には、「BSP_MotorControl_」プレフィックスが含まれています。
注記: このモジュールのすべての機能がSTSPIN820で使用できるわけではないため、X-NUCLEO-IHM14A1拡張ボードで使用できます。
完全なユーザーAPI関数とパラメーターの説明はHTMLでコンパイルされます file ソフトウェアのドキュメントフォルダにあります。
Sampアプリケーションの説明
元amp互換性のあるSTM14Nucleo開発ボードを備えたX-NUCLEO-IHM1A32拡張ボードを使用するアプリケーションは、複数のIDE用にすぐに構築できるProjectsディレクトリにあります(セクション2.3.2 Projectフォルダを参照)。
システムセットアップガイド
ハードウェアの説明
- STM32核
STM32 Nucleo開発ボードは、ユーザーがSTM32マイクロコントローラーラインを使用してソリューションをテストし、プロトタイプを作成するための手頃で柔軟な方法を提供します。
Arduino接続のサポートとSTmorphoコネクタにより、
STM32 Nucleoオープン開発プラットフォームには、さまざまな専用拡張ボードから選択できます。
STM32 Nucleoボードは、ST-LINK / V2-1デバッガー/を統合しているため、個別のプローブを必要としません。
プログラマー。
STM32 Nucleoボードには、包括的なSTM32ソフトウェアHALライブラリとさまざまなパッケージソフトウェアが付属しています。ampさまざまなIDE(IAR EWARM、Keil MDK-ARM、STM32CubeIDE、mbed、GCC / LLVM)用のファイル。
すべてのSTM32Nucleoユーザーは、mbedオンラインリソース(コンパイラ、C / C ++ SDK、および開発者)に無料でアクセスできます。
コミュニティ)www.mbed.orgで、完全なアプリケーションを簡単に構築できます。
図3.STM32Nucleoボード

- X-NUCLEO-IHM14A1ステッピングモータードライバー拡張ボード
X-NUCLEO-IHM14A1モータードライバー拡張ボードは、ステッピングモーター用のSTSPIN820モノリシックドライバーに基づいています。
これは、STM32 Nucleoプロジェクトでステッピングモーターを駆動するための手頃な価格の使いやすいソリューションであり、2D / 3Dプリンター、ロボット工学、セキュリティカメラなどのモーター駆動アプリケーションを実装します。
STSPIN820は、外部抵抗を介して調整可能な一定のオフ時間と256番目のステップまでのマイクロステップ分解能を備えたPWM電流制御を実装しています。
X-NUCLEO-IHM14A1拡張ボードはArduinoUNOR3コネクタおよびSTmorphoコネクタと互換性があるため、STM32 Nucleo開発ボードに接続して、追加のX-NUCLEO拡張ボードと積み重ねることができます。

- その他のハードウェアコンポーネント
ハードウェアのセットアップを完了するには、次のものが必要です。- 1つのバイポーラ(7〜45 V)ステッピングモーター
- X-NUCLEO-IHM14A1ボード用のXNUMX本の電気ケーブルを備えた外部DC電源
- STM32NucleoボードをPCに接続するためのUSBタイプA-ミニBUSBケーブル
- ソフトウェア要件
に適した開発環境を設定するには、次のソフトウェアコンポーネントが必要です。
モータードライバー拡張ボードに基づくアプリケーションの作成:- X-CUBE-SPN14STM32Cube拡張forSTSPIN820低容量tageステッピングモータードライバーアプリケーションの開発。 X-CUBE-SPN14ファームウェアおよび関連ドキュメントは、次のWebサイトで入手できます。 www.st.com。
- 次の開発ツールチェーンとコンパイラのいずれか:
- キールリアルView マイクロコントローラー開発キット(MDK-ARM)ツールチェーンV5.27
- IAR Embedded Workbench for ARM(EWARM)ツールチェーンV8.50
- STM32の統合開発環境(STM32CubeIDE)
ハードウェアとソフトウェアのセットアップ
単一のモーターを駆動するためのセットアップ
STM32Nucleoボードで次のジャンパーを構成します。
- JP1オフ
- UV5側のJP5(PWR)
- JP6(IDD)オン
X-NUCLEO-IHM14A1拡張ボードを次のように構成します。 - R7ポテンショメータを1kΩに調整します。
- 図1のように、S2、S3、S4、およびS4スイッチをプルダウン側に設定します。X-NUCLEO-IHM14A1ステッピングモーター
ドライバー拡張ボード。 マイクロステッピングモードは、MODE1、MODE2、MODE3で選択します。
STM32Nucleoボードによって制御されるレベル。
ボードが適切に構成されたら: - X-NUCLEO-IHM14A1拡張ボードをArduinoUNOコネクタを介してSTM32Nucleoボードの上に接続します
- STM32 NucleoボードをUSBコネクタCN1を介してUSBケーブルでPCに接続し、ボードに電力を供給します
- VinおよびGndコネクタをDC電源に接続して、X-NUCLEO-IHM14A1拡張ボードの電源をオンにします。
- ステッピングモーターをX-NUCLEIOHM14A1ブリッジコネクタA +/-およびB +/-に接続します

システムセットアップの準備ができたら:
- お好みのツールチェーンを開きます
- STM32 Nucleoボードに応じて、次の場所からソフトウェアプロジェクトを開きます。
- \ stm32_cube \ Projects \ Multi \ Examples \ MotionControl \ IHM14A1_ExampleFor1Motor \ YourToolChainNam
e \ STM32F401RE-Nucleo用NucleoSTM32F401 - \ stm32_cube \ Projects \ Multi \ Examples \ MotionControl \ IHM14A1_ExampleFor1Motor \ YourToolChainNam
e \ STM32F030R8-Nucleo用NucleoSTM32F334 - \ stm32_cube \ Projects \ Multi \ Examples \ MotionControl \ IHM14A1_ExampleFor1Motor \ YourToolChainName \ STM32F030R8-Nucleo for Nucleo STM32F030
- \ stm32_cube \ Projects \ Multi \ Examples \ MotionControl \ IHM14A1_ExampleFor1Motor \ YourToolChainName \ STM32L053R8-Nucleo for Nucleo STM32L053
- \ stm32_cube \ Projects \ Multi \ Examples \ MotionControl \ IHM14A1_ExampleFor1Motor \ YourToolChainNam
- デフォルトのSTSPIN820パラメータを低ボリュームに適合させるにはtageステッピングモーターの特性、次のいずれか:
- NULLポインターでBSP_MotorControl_Initを使用し、stm32_cube \ Drivers \ BSP \ Components \ STSPIN820 \ STSPIN820_target_config.hを開いて、必要に応じてパラメーターを変更します。
- – BSP_MotorControl_Initを、適切な値を持つinitDevicesParameters構造体のアドレスとともに使用します。
- すべてを再構築 file■画像をターゲットメモリにロードします。
- 元を実行しますampル。 モーターは自動的に始動します(デモシーケンスの詳細については、main.cを参照してください)。
改訂履歴
|
日付 |
バージョン | 変更点 |
|
17年2017月XNUMX日 |
1 |
初回リリース。 |
| 20年2021月XNUMX日 | 2 |
セクション2.3.2プロジェクトフォルダとセクション3.2ソフトウェア要件を更新しました。 セクション2を削除STM32Cubeとは何ですか? はじめにのリンクに置き換えました。 |
重要なお知らせ–注意深くお読みください
STMicroelectronics NVおよびその子会社(「ST」)は、ST製品および/または本書を予告なしにいつでも変更、修正、拡張、修正、および改善する権利を留保します。 購入者は、注文する前に、ST製品に関する最新の関連情報を入手する必要があります。 ST製品は、注文確認時に設定されているSTの販売条件に従って販売されます。
購入者は、ST製品の選択、選択、および使用について単独で責任を負い、STは、アプリケーションの支援または購入者の製品の設計について責任を負いません。
ST は、明示的か黙示的かを問わず、いかなる知的財産権のライセンスも付与しません。
ここに記載されている情報と異なる規定を伴う ST 製品を再販した場合、当該製品に対して ST が付与した保証は無効になります。
STおよびSTロゴはSTの商標です。 STの商標の詳細については、以下を参照してください。 www.st.com/商標。 他のすべての製品またはサービス
名前はそれぞれの所有者の所有物です。
このドキュメントの情報は、このドキュメントの以前のバージョンで以前に提供された情報に優先し、置き換えられます。
© 2021 STマイクロエレクトロニクス – 無断転載を禁じます
ドキュメント / リソース
![]() |
ST UM2300X-CUBE-STM14Cube用のSPN32ステッピングモータードライバーソフトウェアの拡張 [pdf] ユーザーマニュアル UM2300、STM14Cube用のX-CUBE-SPN32ステッピングモータードライバーソフトウェア拡張、UM2300 X-CUBE-SPN14 STM32Cube用ステッピングモータードライバーソフトウェア拡張、X-CUBE-SPN14ステッピングモータードライバーソフトウェア拡張、STM32Cube用ドライバーソフトウェア拡張、モータードライバーソフトウェア拡張STM32Cubeの場合、STM32Cubeの拡張、STM32Cube |




