UM2300 X-CUBE-SPN14 Rozšíření softwaru ovladače krokového motoru pro STM32Cube Uživatelská příručka

Zavedení
Rozšiřující balíček X-CUBE-SPN14 pro STM32Cube vám dává plnou kontrolu nad operacemi krokového motoru.
V kombinaci s jednou nebo více rozšiřujícími deskami X-NUCLEO-IHM14A1 umožňuje tento software kompatibilní vývojové desce STM32 Nucleo ovládat jeden nebo více krokových motorů.
Je postaven na softwarové technologii STM32Cube pro snadnou přenositelnost mezi různými mikrokontroléry STM32.
Software je dodáván s asample implementace pro jeden krokový motor. Je kompatibilní s vývojovými deskami NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 nebo NUCLEO-L053R8 s rozšiřující deskou X-NUCLEO-IHM14A1 namontovanou nahoře.
SOUVISEJÍCÍ ODKAZY
Navštivte ekosystém STM32Cube web Další informace naleznete na stránce www.st.com
Zkratky a zkratky
Tabulka 1. Seznam zkratek
|
Akronym |
Popis |
| API |
Aplikační programovací rozhraní |
|
BSP |
Balíček podpory desky |
| CMSIS |
Standardní softwarové rozhraní mikrokontroléru Cortex® |
|
HAL |
Vrstva abstrakce hardwaru |
| IDE |
Integrované vývojové prostředí |
|
LED |
Světelná dioda |
Nadview
Softwarový balík X-CUBE-SPN14 rozšiřuje funkčnost STM32Cube. Mezi jeho klíčové vlastnosti patří:
- Vrstva ovladače pro kompletní správu zařízení STSPIN820 (ovladač krokového motoru s nízkým výkonem) integrovaná v rozšiřující desce X-NUCLEO-IHM14A1
- Režimy čtení a zápisu parametrů zařízení, konfigurace GPIO, PWM a IRQ, mikrokrokování, řízení polohy směru, rychlosti, zrychlení, zpomalení a krouticího momentu, automatické řízení přepínačů v plném rozsahu; vysoká impedance nebo výběr režimu zastavení, aktivace a řízení pohotovostního režimu
- Ošetření přerušení při poruchách
- Ovládání jedním krokovým motorem sample aplikace
- Snadná přenositelnost mezi různými rodinami MCU díky STM32Cube
- Bezplatné, uživatelsky přívětivé licenční podmínky
Software implementuje pseudo registry a pohybové příkazy pomocí:
- konfigurace časovačů používaných pro generování krokových hodin a objemtage odkaz
- správa parametrů zařízení jako zrychlení, zpomalení, min. a max. rychlost, polohy při rychlosti profile hranice, poloha značky, režim mikrokrokování, směr, stav pohybu atd.
Software obsluhuje jedno zařízení STSPIN820.
Na každém konci pulsu časovače tikání se provede zpětné volání pro zavolání obsluhy krokových hodin, která řídí pohyb motoru
řízením:
- stav pohybu (např. zastavení motoru v cílovém místě)
- směr motoru přes úroveň GPIO
- relativní a absolutní poloha motoru v mikrokrocích
- rychlost přes nulu, kladné a záporné zrychlení
Rychlost se nastavuje změnou frekvence krokových hodin a volitelně režimu kroku, když je aktivována funkce automatického přepínání plného kroku. Časovač používaný pro krokové hodiny se konfiguruje v režimu porovnání výstupu. Nová hodnota porovnávacího registru zachycení je vypočítána při každém volání obsluhy krokových hodin, aby se dosáhlo řízení frekvence.
Rychlost je lineární funkcí taktovací frekvence kroku pro daný režim mikrokrokování, kterou lze softwarem měnit od plného po 1/256 kroku.
Chcete-li použít knihovnu ovladače STSPIN820, musíte spustit funkci inicializace, která:
- nastaví požadované GPIO pro povolení mostů a správu chybového pinu EN\FAULT, vyhrazený MODE1,
Piny pro výběr kroku MODE2 a MODE3, pin DIR pro směr motoru, pin DECAY pro režim poklesu
výběr a resetovací kolík pohotovostního režimu STBY\RESET; - nastaví časovač v režimu porovnání výstupu pro pin STCK a referenční obj. časovačetage generace v režimu PWM pro REF pin;
- načte parametry ovladače s hodnotami z stspin820_target_config.h nebo definovanými v hlavní funkci pomocí vyhrazené inicializační struktury.
Parametry ovladače lze po inicializaci upravit voláním konkrétních funkcí. Můžete také napsat funkce zpětného volání a připojit je k: - obsluha přerušení příznaku k provedení určitých akcí, když je hlášen nadproud nebo tepelný poplach
- obslužná rutina chyb, kterou knihovna volá, když hlásí chybu. Mezi následující příkazy pohybu patří:
- BSP_MotorControl_Move pro posunutí daného počtu kroků v určitém směru
- BSP_MotorControl_GoTo, BSP_MotorControl_GoHome, BSP_MotorControl_GoMark pro přechod na konkrétní pozici pomocí nejkratší cesty
- BSP_MotorControl_CmdGoToDir pro přechod konkrétním směrem na konkrétní pozici
- BSP_MotorControl_Run bude běžet po neomezenou dobu
Rychlostní profíkfile je kompletně řízen mikrokontrolérem. Motor se začne pohybovat při minimálních otáčkách BSP_MotorControl_SetMinSpeed, které se pak v každém kroku mění
Hodnota zrychlení BSP_MotorControl_SetAcceleration.
Pokud je cílová poloha pohybového příkazu dostatečně daleko, motor provede lichoběžníkový pohyb:
- zrychlení pomocí parametru zrychlení zařízení
- zůstává stabilní při maximální rychlosti BSP_MotorControl_SetMaxSpeed
- zpomalení pomocí BSP_MotorControl_SetDeceleration
- zastavení v cílové destinaci
Pokud je cílová poloha příliš blízko, aby motor dosáhl maximální rychlosti, provede trojúhelníkový pohyb zahrnující: - akcelerace
- zpomalení
- zastavení v cílové destinaci
Příkaz k pohybu lze kdykoli zastavit pomocí BSP_MotorControl_SoftStop progresivně snižovat rychlost pomocí parametru decelerace nebo příkazu BSP_MotorControl_HardStop, který okamžitě zastaví motor. Napájecí můstek se automaticky deaktivuje, když se motor zastaví, pokud byl dříve nastaven režim zastavení HIZ_MODE (BSP_MotorControl_SetStopMode).
Směr, rychlost, zrychlení a zpomalení lze změnit buď při zastavení motoru nebo při požadavku na pohyb pomocí BSP_MotorControl_Run.
Chcete-li zablokovat nové příkazy před dokončením předchozích, BSP_MotorControl_WaitWhileActive zablokuje provádění programu, dokud se motor nezastaví.
BSP_MotorControl_SelectStepMode může změnit režim kroku z plného na 1/256. Při změně režimu kroku se zařízení a aktuální poloha a rychlost resetují.
Architektura
Toto softwarové rozšíření plně vyhovuje architektuře STM32Cube a rozšiřuje ji tak, aby umožnilo vývoj aplikací využívajících ovladače krokových motorů.
Obrázek 1. Architektura softwaru X-CUBE-SPN14

Software je založen na hardare abstraktní vrstvě STM32CubeHAL pro mikrokontrolér STM32. Balíček rozšiřuje STM32Cube o balíček podpory desky (BSP) pro rozšiřující desku řízení motoru a ovladač komponent BSP pro STSPIN820 low vol.tage ovladač krokového motoru.
Softwarové vrstvy používané aplikačním softwarem jsou:
- STM32Cube HAL vrstva: jednoduchá, generická a víceinstanční sada API (rozhraní pro programování aplikací)
pro interakci s horními vrstvami aplikací, knihoven a zásobníků. Skládá se z generických a rozšiřujících API
na společné architektuře, takže vrstvy na ní postavené, jako je vrstva middlewaru, mohou fungovat bez potřeby specifických hardwarových konfigurací mikrokontrolérů (MCU). Tato struktura zlepšuje znovupoužitelnost kódu knihovny a zaručuje snadnou přenositelnost na jiná zařízení.
Vrstva balíčku podpory desky (BSP).: podporuje periferie na desce STM32 Nucleo, kromě
MCU. Tato omezená sada API poskytuje programovací rozhraní pro určité periferie specifické pro desku, jako je LED a uživatelské tlačítko, a pomáhá při identifikaci konkrétní verze desky. BSP řízení motoru poskytuje programovací rozhraní pro různé komponenty ovladače motoru. Je spojen s komponentou BSP pro ovladač motoru STSPIN820 v softwaru X-CUBE-SPN14.
Struktura složek

Software je umístěn ve dvou hlavních složkách:
- Ovladače s:
- STM32Cube HAL files v podsložkách STM32L0xx_HAL_Driver, STM32F0xx_HAL_Driver, STM32F3xx_HAL_Driver nebo STM32F4xx_HAL_Driver. Tyto files jsou převzaty přímo z rámce STM32Cube a zahrnují pouze ty, které jsou nutné ke spuštění ovladače motoru examples.
- složka CMSIS s CMSIS (standard softwarového rozhraní pro mikrokontrolér Cortex®), na dodavateli nezávislá vrstva abstrakce hardwaru pro řadu procesorů Cortex-M od ARM. Tato složka je také nezměněna oproti frameworku STM32Cube.
- složku BSP s kódem files pro konfiguraci X-NUCLEO-IHM14A1, ovladač STSPIN820 a API pro řízení motoru.
- projekty, který obsahuje několik použití napřampsoubory ovladače motoru STSPIN820 pro různé platformy STM32 Nucleo.
složka BSP
Software X-CUBE-SPN14 obsahuje BSP popsané v následujících podsekcích.
STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
Tyto BSP poskytují rozhraní pro každou kompatibilní vývojovou desku STM32 Nucleo pro konfiguraci a používání jejích periferií s rozšiřující deskou X-NUCLEO-IHM14A1. Každá podsložka má dva.c/.h file páry:
- stm32XXxx_nucleo.c/h: tyto neupravené rámce STM32Cube files poskytují funkce uživatelského tlačítka a LED pro konkrétní desku STM32 Nucleo.
- stm32XXxx_nucleo_ihm14a1.c/h: tyto files jsou vyhrazeny pro konfiguraci PWM, GPIO a povolení/zakázání přerušení vyžadované pro provoz rozšiřující desky X NUCLEO-IHM14A1.
Ovládání motoru BSP
Tento BSP poskytuje společné rozhraní pro přístup k funkcím ovladače různých ovladačů motoru, jako jsou L6474, powerSTEP01, L6208 a STSPIN820, přes MotorControl/motorcontrol.c/h file pár.
Tyto files definuje všechny funkce konfigurace ovladače a ovládání, které jsou následně mapovány na funkce komponenty ovladače motoru použité na dané rozšiřující desce prostřednictvím struktury motorDrv_t file (definováno v Components\Common\motor.h.). Tato struktura definuje seznam funkčních ukazatelů, které jsou vyplněny během její konkretizace v odpovídající komponentě ovladače motoru. Pro X-CUBE-SPN14 se struktura nazývá stspin820Drv (viz file: BSP\Components\stspin820\stspin820.c).
Protože BSP řízení motoru je společné pro všechny rozšiřující desky ovladače motoru, některé funkce nejsou pro danou rozšiřující desku dostupné. Nedostupné funkce jsou nahrazeny nulovými ukazateli během vytváření instance struktury motorDrv_t v komponentě ovladače.
Komponenta STSPIN280 BSP
Komponenta STSPIN820 BSP poskytuje funkce ovladače motoru STSPIN820 ve složce
stm32_cube\Drivers\BSP\Components\STSPIN820.
Tato složka má 3 files:
- stspin820.c: základní funkce ovladače STSPIN820
- stspin820.h: deklarace funkcí ovladače STSPIN820 a jejich přidružených definic
- stspin820_target_config.h: předdefinované hodnoty pro parametry STSPIN820 a pro kontext motorových zařízení
Složka projektu
Pro každou platformu STM32 Nucleo, jeden exampProjekt je dostupný v stm32_cube\Projects\Multi\Examples\MotionControl\:
- IHM14A1_ExampleFor1Motor exampmnožství řídicích funkcí pro konfigurace s jedním motorem
Bývalýample má složku pro každé kompatibilní IDE:
- EWARM pro IAR Embedded Workbench
- MDK-ARM pro ARM/Keil µVision
- STM32CubeIDE pro integrované vývojové prostředí pro STM32
Následující kód filejsou také zahrnuty:
- inc\main.h: Hlavní záhlaví file
- inc\ stm32xxxx_hal_conf.h: Konfigurace HAL file
- inc\stm32xxxx_it.h: hlavička pro obsluhu přerušení
- src\main.c: hlavní program (kód example založené na knihovně řízení motoru pro STSPIN820)
- src\stm32xxxx_hal_msp.c: Inicializační rutiny HAL
- src\stm32xxxx_it.c: obsluha přerušení
- src\system_stm32xxxx.c: inicializace systému
- src\clock_xx.c: inicializace hodin
Software vyžaduje zdroje
Řízení MCU jedné STSPIN820 (jedna deska X-NUCLEO IHM14A1) a komunikace mezi nimi je řešena prostřednictvím sedmi GPIO (STBY\RESET, EN\FAULT, MODE1, MODE2, MODE3, DIR, DECAY piny) a PWM pro REF pin . GPIO pro kolík STCK je nakonfigurován pro použití jako alternativní funkce TIMER OUTPUT COMPARE.
Pro zpracování alarmů nadproudu a přehřátí používá software X-CUBE-SPN14 externí přerušení nakonfigurované na GPIO použitém pro pin EN\FAULT poté, co povolí nebo zakáže napájecí můstky.
Tabulka 2. Požadované zdroje pro software X-CUBE-SPN14
|
Zdroje F4xx |
Zdroje F3xx | Zdroje F0xx | Zdroje L0xx | Kolík | Vlastnosti (deska) |
| Port A GPIO 10
EXTI15_10_IRQn |
Port A GPIO 10
EXTI15_10_IRQn |
Port A GPIO 10
EXTI4_15_IRQn |
Port A GPIO 10
EXTI4_15_IRQn |
D2 |
EN/FAULT (EN) |
|
Port B GPIO 3 Časovač 2 Ch2 |
Port B GPIO 3
Časovač 2 Ch2 |
Port B GPIO 3
Časovač 15 Ch1 |
Port B GPIO 3
Časovač 2 Ch2 |
D3 |
STCK
(CLK) |
|
Port B GPIO 4 |
D5 |
ROZKLAD
(DEC) |
|||
| Port A GPIO 8 |
D7 |
SMĚR (DIR) |
|||
| Port A GPIO 9 |
D8 |
STBY/RESET (STBY) |
|||
|
Port C GPIO 7 Časovač 3 Ch2 |
Port C GPIO 7
Časovač 3 Ch2 |
Port C GPIO 7
Časovač 3 Ch2 |
Port C GPIO 7
Časovač 22 Ch2 |
D9 |
PWM REF
(REF) |
|
Port A GPIO 7 |
D11 |
MODE3
(M3) |
|||
|
Port A GPIO 6 |
D12 |
MODE2 (M2) |
|||
| Port A GPIO 5 |
D13 |
MODE1 (M1) |
|||
API
X-CUBE-SPN14 API je definováno v BSP řízení motoru. Jeho funkce obsahují předponu „BSP_MotorControl_“.
Poznámka: Ne všechny funkce tohoto modulu jsou dostupné pro STSPIN820 a tedy rozšiřující desku X-NUCLEO-IHM14A1.
Úplné popisy funkcí uživatelského rozhraní API a parametrů jsou sestaveny v HTML file ve složce Software Documentation.
Samppopis aplikace
BývalýampAplikace využívající rozšiřující desku X-NUCLEO-IHM14A1 s kompatibilní vývojovou deskou STM32 Nucleo je k dispozici v adresáři Projects a je připravena k sestavení pro více IDE (viz Oddíl 2.3.2 Složka Projekt).
Průvodce nastavením systému
Popis hardwaru
- STM32 Nucleo
Vývojové desky STM32 Nucleo poskytují uživatelům cenově dostupný a flexibilní způsob testování řešení a vytváření prototypů s jakoukoli řadou mikrokontrolérů STM32.
Podpora připojení Arduino a morfo konektory ST usnadňují rozšíření funkčnosti
Otevřená vývojová platforma STM32 Nucleo se širokou škálou specializovaných rozšiřujících desek, ze kterých si můžete vybrat.
Deska STM32 Nucleo nevyžaduje samostatné sondy, protože integruje ladicí program ST-LINK/V2-1/
programátor.
Deska STM32 Nucleo je dodávána s komplexní softwarovou knihovnou STM32 HAL spolu s různým baleným softwarem např.ampsoubory pro různá IDE (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed a GCC/ LLVM).
Všichni uživatelé STM32 Nucleo mají bezplatný přístup k online zdrojům mbed (kompilátor, C/C++ SDK a vývojář
komunita) na www.mbed.org pro snadné vytváření kompletních aplikací.
Obrázek 3. Deska STM32 Nucleo

- Expanzní deska ovladače krokového motoru X-NUCLEO-IHM14A1
Rozšiřující deska ovladače motoru X-NUCLEO-IHM14A1 je založena na monolitickém ovladači STSPIN820 pro krokové motory.
Představuje cenově dostupné a snadno použitelné řešení pro řízení krokových motorů ve vašem projektu STM32 Nucleo, které implementuje aplikace řízení motorů, jako jsou 2D/3D tiskárny, robotika a bezpečnostní kamery.
STSPIN820 implementuje PWM řízení proudu s konstantní dobou vypnutí nastavitelnou pomocí externího odporu a rozlišením mikrokrokování až do 256. kroku.
Rozšiřující deska X-NUCLEO-IHM14A1 je kompatibilní s konektorem Arduino UNO R3 a ST morpho konektorem, takže ji lze zapojit do vývojové desky STM32 Nucleo a stohovat s dalšími rozšiřujícími deskami X-NUCLEO.

- Různé hardwarové komponenty
K dokončení nastavení hardwaru budete potřebovat:- 1 bipolární (7 až 45 V) krokový motor
- externí stejnosměrný zdroj se dvěma elektrickými kabely pro desku X-NUCLEO-IHM14A1
- USB kabel USB typu A až mini-B pro připojení desky STM32 Nucleo k počítači
- Požadavky na software
K nastavení vhodného vývojového prostředí jsou potřeba následující softwarové komponenty
vytváření aplikací založených na rozšiřující desce ovladače motoru:- X-CUBE-SPN14 STM32Cube rozšíření pro STSPIN820 low voltage vývoj aplikací ovladače krokového motoru. Firmware X-CUBE-SPN14 a související dokumentace je k dispozici na www.st.com.
- Jeden z následujících řetězců vývojových nástrojů a kompilátorů:
- Keil RealView Sada nástrojů pro vývoj mikrokontrolérů (MDK-ARM) V5.27
- IAR Embedded Workbench for ARM (EWARM) toolchain V8.50
- Integrované vývojové prostředí pro STM32 (STM32CubeIDE)
Nastavení hardwaru a softwaru
Nastavení pro pohon jednoho motoru
Nakonfigurujte následující propojky na desce STM32 Nucleo:
- JP1 vypnuto
- JP5 (PWR) na straně UV5
- JP6 (IDD) zapnuto
Nakonfigurujte rozšiřující desku X-NUCLEO-IHM14A1 takto: - Nalaďte potenciometr R7 na 1 kΩ.
- Nastavte spínač S1, S2, S3 a S4 na stahovací stranu jako na obrázku 4. Krokový motor X-NUCLEO-IHM14A1
rozšiřující deska ovladače. Režim mikrokrokování se volí pomocí MODE1, MODE2 a MODE3
úrovně ovládané deskou STM32 Nucleo.
Jakmile je deska správně nakonfigurována: - Zapojte rozšiřující desku X-NUCLEO-IHM14A1 na desku STM32 Nucleo přes konektory Arduino UNO
- Připojte desku STM32 Nucleo k počítači pomocí kabelu USB přes konektor USB CN1, abyste desku napájeli
- Zapněte rozšiřující desku X-NUCLEO-IHM14A1 připojením konektorů Vin a Gnd ke zdroji stejnosměrného proudu
- Připojte krokový motor k můstkovým konektorům X-NUCLEO IHM14A1 A+/- a B+/-

Jakmile je nastavení systému připraveno:
- Otevřete svůj preferovaný soubor nástrojů
- V závislosti na desce STM32 Nucleo otevřete softwarový projekt z:
- \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
e\STM32F401RE-Nucleo pro Nucleo STM32F401 - \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
e\STM32F030R8-Nucleo pro Nucleo STM32F334 - \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32F030R8-Nucleo pro Nucleo STM32F030
- \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32L053R8-Nucleo pro Nucleo STM32L053
- \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
- Chcete-li přizpůsobit výchozí parametry STSPIN820 vašemu nízkému objemutage charakteristiky krokového motoru, buď:
- použijte BSP_MotorControl_Init s ukazatelem NULL a otevřete stm32_cube\ Drivers\ BSP\Components\ STSPIN820\ STSPIN820_target_config.h k úpravě parametrů podle vašich potřeb
- – použijte BSP_MotorControl_Init s adresou struktury initDevicesParameters s příslušnými hodnotami.
- Vše znovu postavit files a načtěte svůj obrázek do cílové paměti.
- Spustit example. Motor se automaticky spustí (podrobnosti demo sekvence viz main.c).
Historie revizí
|
Datum |
Verze | Změny |
|
17. října 2017 |
1 |
Počáteční vydání. |
| 20. července 2021 | 2 |
Aktualizována část 2.3.2 Složka projektu a část 3.2 Požadavky na software. Odstraněna část 2 Co je STM32Cube? a nahradil jej odkaz v Úvodu. |
DŮLEŽITÉ UPOZORNĚNÍ - PŘEČTĚTE SI POZORNĚ
STMicroelectronics NV a její dceřiné společnosti („ST“) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a / nebo tohoto dokumentu kdykoli bez předchozího upozornění. Před zadáním objednávky by kupující měli získat nejnovější relevantní informace o produktech ST. Produkty ST se prodávají v souladu s podmínkami prodeje společnosti ST platnými v době potvrzení objednávky.
Za výběr, výběr a používání produktů ST nese výhradní odpovědnost kupující a společnost ST nepřebírá žádnou odpovědnost za pomoc s aplikací ani za design produktů kupujících.
Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.
Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt.
ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST naleznete na www.st.com/trademarks. Všechny ostatní produkty nebo služby
jména jsou majetkem jejich příslušných vlastníků.
Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu.
© 2021 STMicroelectronics – Všechna práva vyhrazena
Dokumenty / zdroje
![]() |
ST UM2300 X-CUBE-SPN14 Rozšíření softwaru ovladače krokového motoru pro STM32Cube [pdfUživatelská příručka UM2300, X-CUBE-SPN14 Rozšíření softwaru ovladače krokového motoru pro STM32Cube, UM2300 X-CUBE-SPN14 Rozšíření softwaru ovladače krokového motoru pro STM32Cube, X-CUBE-SPN14 Rozšíření softwaru ovladače krokového motoru, Rozšíření softwaru ovladače pro STM32Cube, Rozšíření softwaru pro STM32Cube, Rozšíření pro STM32Cube, STM32Cube |




