UM2300 X-CUBE-SPN14 步進電機驅動軟件擴展 STM32Cube 用戶手冊

介紹
STM14Cube 的 X-CUBE-SPN32 擴展包可讓您完全控制步進電機的操作。
當與一個或多個 X-NUCLEO-IHM14A1 擴展板結合使用時,該軟件允許兼容的 STM32 Nucleo 開發板控制一個或多個步進電機。
它建立在 STM32Cube 軟件技術之上,可輕鬆跨不同 STM32 微控制器進行移植。
該軟件附帶amp一個步進電機的實現。 它與頂部安裝了 X-NUCLEO-IHM401A334 擴展板的 NUCLEO-F8RE、NUCLEO-F030R8、NUCLEO-F053R8 或 NUCLEO-L14R1 開發板兼容。
相關連結
訪問 STM32Cube 生態系統 web www.st.com 上的頁面了解更多信息
縮略語
表 1. 首字母縮略詞列表
|
縮寫詞 |
描述 |
| 應用程式介面 |
應用程式介面 |
|
中央銀行 |
董事會支持包 |
| 管理信息系統 |
Cortex® 微控制器軟件接口標準 |
|
哈爾 |
硬件抽象層 |
| 整合開發環境 |
集成開發環境 |
|
引領 |
發光二極管 |
超過view
X-CUBE-SPN14 軟件包擴展了 STM32Cube 的功能。 其主要特點包括:
- 用於完整管理集成在 X-NUCLEO-IHM820A14 擴展板中的 STSPIN1(低功耗步進電機驅動器)設備的驅動層
- 設備參數讀寫模式,GPIO、PWM和IRQ配置,微步進、方向位置、速度、加速、減速和扭矩控制,全自動全步切換管理; 高阻抗或保持停止模式選擇、啟用和待機管理
- 故障中斷處理
- 單步進電機控制amp申請
- 借助 STM32Cube,可輕鬆跨不同 MCU 系列進行移植
- 免費、用戶友好的許可條款
該軟件通過以下方式實現偽寄存器和運動命令:
- 配置用於生成步進時鐘和音量的定時器tag參考
- 管理設備參數,如加速度、減速度、最小值。 和最大。 速度,位置速度 profile 邊界、標記位置、微步模式、方向、運動狀態等。
該軟件處理一個 STSPIN820 設備。
在每個滴答定時器脈衝結束時,執行回調以調用控制電機運動的步進時鐘處理程序
通過管理:
- 運動狀態(例如,在目標目的地停止電機)
- 通過 GPIO 級別的電機方向
- 以微步為單位的相對和絕對電機位置
- 通過零、正、負加速度的速度
當啟用自動全步切換功能時,通過改變步進時鐘頻率和可選的步進模式來設置速度。 用於步進時鐘的定時器配置為輸出比較模式。 在每個步進時鐘處理程序調用時計算一個新的捕獲比較寄存器值以實現頻率控制。
對於給定的微步進模式,速度是步進時鐘頻率的線性函數,可以通過軟件從全步進到 1/256 步進變化。
要使用 STSPIN820 驅動程序庫,您必須運行初始化函數,它:
- 設置所需的 GPIO 以啟用橋接和管理故障引腳 EN\FAULT、專用 MODE1、
MODE2和MODE3步進選擇引腳,電機方向的DIR引腳,衰減模式的DECAY引腳
選擇和待機復位引腳STBY\RESET; - 在輸出比較模式下為 STCK 引腳和定時器參考電壓設置定時器tag在 PWM 模式下為 REF 引腳生成;
- 使用來自 stspin820_target_config.h 的值或使用專用初始化結構在主函數中定義的值加載驅動程序參數。
初始化後可以通過調用特定函數來修改驅動參數。 您還可以編寫回調函數並將它們附加到: - 報告過流或熱警報時執行某些操作的標誌中斷處理程序
- 庫在報告錯誤時調用的錯誤處理程序後續運動命令包括:
- 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_SoftStop 使用減速參數逐漸降低速度或立即停止電機的 BSP_MotorControl_HardStop 命令。 如果之前設置了 HIZ_MODE 停止模式 (BSP_MotorControl_SetStopMode),則當電機停止時,電源橋會自動禁用。
當電機停止或通過 BSP_MotorControl_Run 請求運動時,可以更改方向、速度、加速度和減速度。
為了在前一個命令完成之前阻止新命令,BSP_MotorControl_WaitWhileActive 鎖定程序執行,直到電機停止。
BSP_MotorControl_SelectStepMode 可以將步進模式從全步更改為 1/256 步。 當步進模式改變時,設備和當前位置和速度被重置。
建築學
本次軟件擴展完全符合STM32Cube架構,並對其進行擴展以支持使用步進電機驅動器的應用程序開發。
圖 1. X-CUBE-SPN14 軟件架構

該軟件基於 STM32CubeHAL 硬件抽象層,用於 STM32 微控制器。 該包通過用於電機控制擴展板的板支持包 (BSP) 和用於 STSPIN32 低容量的 BSP 組件驅動程序擴展了 STM820Cubetage 步進電機驅動器。
應用軟件使用的軟件層是:
- STM32Cube HAL層: 一組簡單、通用和多實例的 API(應用程序編程接口)
與上層應用程序、庫和堆棧層交互。 它由基於通用和擴展 API 組成
在一個通用架構上,這樣構建在它上面的層,例如中間件層,可以在不需要特定微控制器單元 (MCU) 硬件配置的情況下運行。 這種結構提高了庫代碼的可重用性,並保證了在其他設備上的輕鬆移植性。
板級支持包 (BSP) 層: 支持 STM32 Nucleo 板上的外設,除了
微控制器。 這一組有限的 API 為某些特定於開發板的外圍設備(如 LED 和用戶按鈕)提供了編程接口,並有助於識別特定的開發板版本。 電機控制 BSP 為各種電機驅動器組件提供編程接口。 它與 X-CUBE-SPN820 軟件中 STSPIN14 電機驅動器的 BSP 組件相關聯。
文件夾結構

該軟件位於兩個主要文件夾中:
- 驅動程序,具有:
- STM32Cube HAL files 在 STM32L0xx_HAL_Driver、STM32F0xx_HAL_Driver、STM32F3xx_HAL_Driver 或 STM32F4xx_HAL_Driver 子文件夾中。 這些 files 直接取自 STM32Cube 框架,僅包括運行電機驅動程序所需的那些amp萊斯。
- 帶有 CMSIS(Cortex® 微控制器軟件接口標準)的 CMSIS 文件夾,ARM 的 Cortex-M 處理器系列的獨立於供應商的硬件抽象層。 該文件夾也與 STM32Cube 框架相同。
- 帶有代碼的 BSP 文件夾 files 用於 X-NUCLEO-IHM14A1 配置、STSPIN820 驅動程序和電機控制 API。
- 專案, 其中包含幾個使用前amp適用於不同 STM820 Nucleo 平台的 STSPIN32 電機驅動程序文件。
BSP文件夾
X-CUBE-SPN14 軟件包括以下小節中描述的 BSP。
STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
這些 BSP 為每個兼容的 STM32 Nucleo 開發板提供了一個接口,以配置其外圍設備並將其與 X-NUCLEO-IHM14A1 擴展板配合使用。 每個子文件夾有兩個.c/.h file 對:
- stm32XXXx_nucleo.c/h:這些未修改的STM32Cube框架 files 為特定的 STM32 Nucleo 板提供用戶按鈕和 LED 功能。
- stm32XXXx_nucleo_ihm14a1.c/h:這些 files 專用於配置 PWM、GPIO 和 X NUCLEO-IHM14A1 擴展板操作所需的中斷啟用/禁用。
電機控制 BSP
該 BSP 提供了一個通用接口,可以通過 MotorControl/motorcontrol.c/h 訪問各種電機驅動器的驅動功能,例如 L6474、powerSTEP01、L6208 和 STSPIN820 file 一對。
這些 files 定義所有驅動配置和控制功能,然後通過 motorDrv_t 結構映射到給定擴展板上使用的電機驅動組件的功能 file (在 Components\Common\motor.h. 中定義)。 該結構定義了一個函數指針列表,這些指針在其實例化期間在相應的電機驅動器組件中填充。 對於 X-CUBE-SPN14,該結構稱為 stspin820Drv(參見 file: BSP\Components\stspin820\stspin820.c)。
由於電機控制 BSP 對所有電機驅動器擴展板都是通用的,因此某些功能不適用於給定的擴展板。 在驅動程序組件中的 motorDrv_t 結構的實例化期間,不可用的函數被空指針替換。
STSPIN280 BSP 組件
STSPIN820 BSP組件提供文件夾中STSPIN820電機驅動的驅動功能
stm32_cube\Drivers\BSP\Components\STSPIN820。
這個文件夾有 3 files:
- stspin820.c:STSPIN820驅動的核心功能
- stspin820.h:STSPIN820 驅動函數及其相關定義的聲明
- stspin820_target_config.h:STSPIN820 參數和電機設備上下文的預定義值
項目文件夾
對於每個 STM32 Nucleo 平台,一個前amp文件項目位於 stm32_cube\Projects\Multi\Examp文件\運動控制\:
- IHM14A1_Examp樂福1Motor examp單電機配置的控制功能文件
前任amp對於每個兼容的 IDE,文件都有一個文件夾:
- 用於 IAR 嵌入式工作台的 EWARM
- 用於 ARM/Keil µVision 的 MDK-ARM
- STM32CubeIDE 用於STM32的集成開發環境
以下代碼 file還包括:
- inc\main.h:主標題 file
- inc\stm32xxxx_hal_conf.h:HAL 配置 file
- inc\stm32xxxx_it.h:中斷處理程序的頭文件
- src\main.c: 主程序(ex 的代碼ample 基於 STSPIN820 的電機控制庫)
- src\stm32xxxx_hal_msp.c:HAL 初始化例程
- src\stm32xxxx_it.c:中斷處理程序
- src\system_stm32xxxx.c:系統初始化
- src\clock_xx.c:時鐘初始化
軟件所需資源
MCU 控制單個 STSPIN820(一個 X-NUCLEO IHM14A1 板)和兩者之間的通信通過七個 GPIO(STBY\RESET、EN\FAULT、MODE1、MODE2、MODE3、DIR、DECAY 引腳)和一個用於 REF 引腳的 PWM 處理. STCK 引腳的 GPIO 配置為用作 TIMER OUTPUT COMPARE 備用功能。
為了處理過流和過熱警報,X-CUBE-SPN14 軟件在啟用或禁用功率橋之後,使用在用於 EN\FAULT 引腳的 GPIO 上配置的外部中斷。
表 2. X-CUBE-SPN14 軟件所需的資源
|
資源 F4xx |
資源 F3xx | 資源 F0xx | 資源 L0xx | 別針 | 功能(板) |
| 端口 A GPIO 10
EXTI15_10_IRQn |
端口 A GPIO 10
EXTI15_10_IRQn |
端口 A GPIO 10
EXTI4_15_IRQn |
端口 A GPIO 10
EXTI4_15_IRQn |
D2 |
EN/故障T (英文) |
|
端口 B GPIO 3 定時器 2 通道 2 |
端口 B GPIO 3
定時器 2 通道 2 |
端口 B GPIO 3
定時器 15 通道 1 |
端口 B GPIO 3
定時器 2 通道 2 |
D3 |
STCK
(時鐘) |
|
端口 B GPIO 4 |
D5 |
衰變
(DEC) |
|||
| 端口 A GPIO 8 |
D7 |
方向 (目錄) |
|||
| 端口 A GPIO 9 |
D8 |
待機/復位 (待機) |
|||
|
P端口 C GPIO 7 定時器 3 通道 2 |
端口 C GPIO 7
定時器 3 通道 2 |
端口 C GPIO 7
定時器 3 通道 2 |
端口 C GPIO 7
定時器 22 通道 2 |
D9 |
脈寬調製參考
(參考) |
|
端口 A GPIO 7 |
D11 |
模式3
(M3) |
|||
|
端口 A GPIO 6 |
D12 |
模式2 (M2) |
|||
| 端口 A GPIO 5 |
D13 |
模式1 (M1) |
|||
蜜蜂
X-CUBE-SPN14 API 在電機控制 BSP 中定義。 它的函數包含“BSP_MotorControl_”前綴。
筆記: 並非該模塊的所有功能都適用於 STSPIN820,因此適用於 X-NUCLEO-IHM14A1 擴展板。
完整的用戶 API 函數和參數說明編譯在 HTML 中 file 在軟件文檔文件夾中。
Samp文件應用說明
前任ampProjects 目錄中提供了使用 X-NUCLEO-IHM14A1 擴展板和兼容的 STM32 Nucleo 開發板的應用程序,可用於多個 IDE(請參閱第 2.3.2 節項目文件夾)。
系統設置指南
硬件說明
- STM32 核
STM32 Nucleo 開發板為用戶提供了一種經濟且靈活的方式來測試解決方案並使用任何 STM32 微控制器系列構建原型。
Arduino 連接支持和 ST morpho 連接器可以輕鬆擴展
STM32 Nucleo 開放式開發平台,有多種專用擴展板可供選擇。
STM32 Nucleo 板不需要單獨的探針,因為它集成了 ST-LINK/V2-1 調試器/
程式設計師.
STM32 Nucleo 板帶有全面的 STM32 軟件 HAL 庫以及各種打包軟件amp用於不同 IDE(IAR EWARM、Keil MDK-ARM、STM32CubeIDE、mbed 和 GCC/LLVM)的文件。
所有 STM32 Nucleo 用戶都可以免費訪問 mbed 在線資源(編譯器、C/C++ SDK 和開發人員
社區)在 www.mbed.org 上輕鬆構建完整的應用程序。
圖 3. STM32 Nucleo 板

- X-NUCLEO-IHM14A1步進電機驅動擴展板
X-NUCLEO-IHM14A1 電機驅動器擴展板基於用於步進電機的 STSPIN820 單片驅動器。
它代表了一種經濟實惠且易於使用的解決方案,用於在您的 STM32 Nucleo 項目中驅動步進電機,實現電機驅動應用,例如 2D/3D 打印機、機器人和安全攝像頭。
STSPIN820 實現了 PWM 電流控制,具有可通過外部電阻器調節的恆定關斷時間和高達 256 步的微步分辨率。
X-NUCLEO-IHM14A1 擴展板兼容 Arduino UNO R3 連接器和 ST morpho 連接器,因此可以插入 STM32 Nucleo 開發板並與額外的 X-NUCLEO 擴展板堆疊。

- 其他硬件組件
要完成硬件設置,您需要:- 1 個雙極(7 至 45 V)步進電機
- 用於 X-NUCLEO-IHM14A1 板的帶有兩條電纜的外部直流電源
- 用於將 STM32 Nucleo 板連接到 PC 的 USB A 型轉 mini-B USB 電纜
- 軟體需求
需要以下軟件組件來設置合適的開發環境
基於電機驅動器擴展板創建應用程序:- X-CUBE-SPN14 STM32Cube 擴展用於 STSPIN820 低音量tage 步進電機驅動器應用開發。 X-CUBE-SPN14 固件和相關文檔可在 www.st.com。
- 以下開發工具鍊和編譯器之一:
- 凱爾雷亞爾View 微控制器開發套件(MDK-ARM)工具鏈 V5.27
- IAR Embedded Workbench for ARM (EWARM) 工具鏈 V8.50
- STM32集成開發環境(STM32CubeIDE)
硬件和軟件設置
設置驅動單個電機
在 STM32 Nucleo 板上配置以下跳線:
- JP1關閉
- UV5側的JP5(PWR)
- JP6 (IDD) 開
將 X-NUCLEO-IHM14A1 擴展板配置為: - 將 R7 電位計調至 1 kΩ。
- 將 S1、S2、S3 和 S4 開關設置到下拉側,如圖 4 所示。 X-NUCLEO-IHM14A1 步進電機
驅動擴展板。 通過MODE1、MODE2、MODE3選擇微步進模式
由 STM32 Nucleo 板控制的電平。
正確配置板後: - 通過 Arduino UNO 連接器將 X-NUCLEO-IHM14A1 擴展板插入 STM32 Nucleo 板頂部
- 使用 USB 電纜通過 USB 連接器 CN32 將 STM1 Nucleo 板連接到 PC 為板供電
- 通過將 Vin 和 Gnd 連接器連接到直流電源,打開 X-NUCLEO-IHM14A1 擴展板的電源
- 將步進電機連接到 X-NUCLEO IHM14A1 橋接連接器 A+/- 和 B+/-

系統設置準備就緒後:
- 打開您首選的工具鏈
- 根據 STM32 Nucleo 板,從以下位置打開軟件項目:
- \stm32_cube\Projects\Multi\Examp文件\運動控制\IHM14A1_ExampleFor1Motor\YourToolChainNam
e\STM32F401RE-Nucleo 用於 Nucleo STM32F401 - \stm32_cube\Projects\Multi\Examp文件\運動控制\IHM14A1_ExampleFor1Motor\YourToolChainNam
e\STM32F030R8-Nucleo 用於 Nucleo STM32F334 - \stm32_cube\Projects\Multi\Examp文件\運動控制\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32F030R8-Nucleo 用於 Nucleo STM32F030
- \stm32_cube\Projects\Multi\Examp文件\運動控制\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32L053R8-Nucleo 用於 Nucleo STM32L053
- \stm32_cube\Projects\Multi\Examp文件\運動控制\IHM14A1_ExampleFor1Motor\YourToolChainNam
- 使默認 STSPIN820 參數適應您的低音量tage 步進電機特性,或者:
- 使用帶NULL指針的BSP_MotorControl_Init,打開stm32_cube\Drivers\BSP\Components\STSPIN820\STSPIN820_target_config.h根據需要修改參數
- – 將 BSP_MotorControl_Init 與具有適當值的 initDevicesParameters 結構的地址一起使用。
- 全部重建 files 並將您的圖像加載到目標內存中。
- 運行前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 商標的更多信息,請參閱 www.st.com/trademarks. 所有其他產品或服務
名稱是其各自所有者的財產。
本文檔中的資訊取代並取代本文檔任何先前版本中先前提供的資訊。
© 2021 義法半導體 – 保留所有權利
文件/資源
![]() |
ST UM2300 X-CUBE-SPN14 步進電機驅動軟件擴展,適用於 STM32Cube [pdf] 使用者手冊 UM2300、X-CUBE-SPN14 STM32Cube步進電機驅動軟件擴展、UM2300 X-CUBE-SPN14 STM32Cube步進電機驅動軟件擴展、X-CUBE-SPN14步進電機驅動軟件擴展、STM32Cube驅動軟件擴展、電機驅動軟件擴展STM32Cube, STM32Cube 擴展, STM32Cube |




