Espansione software driver motore passo-passo UM2300 X-CUBE-SPN14 per STM32Cube Manuale utente
Espansione software driver motore passo-passo UM2300 X-CUBE-SPN14 per STM32Cube

Introduzione

Il pacchetto di espansione X-CUBE-SPN14 per STM32Cube offre il pieno controllo delle operazioni del motore passo-passo.
Se combinato con una o più schede di espansione X-NUCLEO-IHM14A1, questo software consente a una scheda di sviluppo Nucleo STM32 compatibile di controllare uno o più motori passo-passo.
È basato sulla tecnologia software STM32Cube per una facile portabilità su diversi microcontrollori STM32.
Il software viene fornito con asampimplementazione per un motore passo-passo. È compatibile con le schede di sviluppo NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 o NUCLEO-L053R8 con una scheda di espansione X-NUCLEO-IHM14A1 montata sulla parte superiore.

LINK CORRELATI
Visita l'ecosistema STM32Cube web pagina su www.st.com per ulteriori informazioni

Acronimi e Abbreviazioni

Tabella 1. Elenco degli acronimi

Acronimo

Descrizione
API

Interfaccia di programmazione dell'applicazione

BSP

Pacchetto supporto scheda
CMSIS

Interfaccia software standard per microcontrollore Cortex®

SALVEZZA

Livello di astrazione hardware
Ideale per gli amanti

Ambiente di sviluppo integrato

GUIDATO

Diodo ad emissione luminosa

Sopraview

Il pacchetto software X-CUBE-SPN14 espande le funzionalità di STM32Cube. Le sue caratteristiche principali includono:

  • Un livello driver per la gestione completa del dispositivo STSPIN820 (driver motore passo-passo a bassa potenza) integrato nella scheda di espansione X-NUCLEO-IHM14A1
  • Modalità di lettura e scrittura dei parametri del dispositivo, configurazione GPIO, PWM e IRQ, micro-stepping, posizione di direzione, controlli di velocità, accelerazione, decelerazione e coppia, gestione automatica dell'interruttore full-step; alta impedenza o selezione modalità stop stop, abilitazione e gestione stand-by
  • Gestione degli interrupt di guasto
  • Controllo motore passo-passo singolo sampl'applicazione
  • Facile portabilità tra diverse famiglie di MCU, grazie a STM32Cube
  • Termini di licenza gratuiti e facili da usare

Il software implementa pseudo registri e comandi di movimento:

  • configurazione dei timer utilizzati per generare step clock e voltage riferimento
  • gestire i parametri del dispositivo come accelerazione, decelerazione, min. e massimo velocità, posizioni a velocità profile confini, posizione del segno, modalità micro-passo, direzione, stato del movimento, ecc.

Il software gestisce un dispositivo STSPIN820.
Ad ogni fine dell'impulso del timer di tick, viene eseguita una richiamata per chiamare il gestore dell'orologio passo-passo che controlla il movimento del motore
gestendo:

  • stato del movimento (ad es. arresto del motore alla destinazione target)
  • direzione del motore tramite livello GPIO
  • posizione motoria relativa e assoluta in micropassi
  • la velocità attraverso l'accelerazione zero, positiva e negativa

La velocità viene impostata variando la frequenza del clock di passo e, facoltativamente, la modalità passo quando è abilitata la funzione di commutazione automatica del passo completo. Il timer utilizzato per l'orologio passo-passo è configurato in modalità di confronto dell'uscita. Un nuovo valore del registro di confronto dell'acquisizione viene calcolato ad ogni chiamata del gestore del clock di passo per ottenere il controllo della frequenza.
La velocità è una funzione lineare della frequenza di clock del passo per una data modalità di micro-passo, che può essere variata dal software dal passo intero a 1/256°.
Per utilizzare la libreria del driver STSPIN820, è necessario eseguire la funzione di inizializzazione che:

  • imposta i GPIO necessari per abilitare i bridge e gestire il pin di guasto EN\FAULT, MODE1 dedicato
    Pin di selezione del passo MODE2 e MODE3, il pin DIR per la direzione del motore, il pin DECAY per la modalità di decadimento
    selezione e il pin di reset standby STBY\RESET;
  • imposta il timer in modalità di confronto dell'uscita per il pin STCK e il riferimento del timer voltage generazione in modalità PWM per pin REF;
  • carica i parametri del driver con i valori da stspin820_target_config.ho definiti nella funzione principale utilizzando una struttura di inizializzazione dedicata.
    I parametri del driver possono essere modificati dopo l'inizializzazione chiamando funzioni specifiche. Puoi anche scrivere funzioni di callback e allegarle a:
  • il gestore dell'interruzione del flag per eseguire determinate azioni quando viene segnalata una sovracorrente o un allarme termico
  • il gestore degli errori che viene chiamato dalla libreria quando segnala un errore I comandi di movimento successivi includono:
  • BSP_MotorControl_Move per spostare un dato numero di passi in una direzione specifica
  • BSP_MotorControl_GoTo, BSP_MotorControl_GoHome, BSP_MotorControl_GoMark per andare in una posizione specifica utilizzando il percorso più breve
  • BSP_MotorControl_CmdGoToDir per andare in una direzione specifica in una posizione specifica
  • BSP_MotorControl_Run per funzionare a tempo indeterminato

Il professionista della velocitàfile è completamente gestito dal microcontrollore. Il motore inizia a muoversi all'impostazione della velocità minima BSP_MotorControl_SetMinSpeed, che viene quindi modificata ad ogni passo dal
Valore di accelerazione BSP_MotorControl_SetAcceleration.
Se la posizione di destinazione di un comando di movimento è sufficientemente lontana, il motore esegue un movimento trapezoidale:

  • accelerando con il parametro di accelerazione del dispositivo
  • rimanendo stabile alla velocità massima BSP_MotorControl_SetMaxSpeed
  • decelerazione di BSP_MotorControl_SetDeceleration
  • fermandosi alla destinazione di destinazione
    Se la posizione di destinazione è troppo vicina perché il motore raggiunga la velocità massima, esegue un movimento triangolare che comporta:
  • accelerazione
  • decelerazione
  • fermandosi alla destinazione di destinazione

Un comando di movimento può essere interrotto in qualsiasi momento con BSP_MotorControl_SoftStop che diminuisce progressivamente la velocità utilizzando il parametro di decelerazione o il comando BSP_MotorControl_HardStop che arresta immediatamente il motore. Il ponte di potenza viene disabilitato automaticamente all'arresto del motore se in precedenza era stata impostata la modalità di arresto HIZ_MODE (BSP_MotorControl_SetStopMode).
Direzione, velocità, accelerazione e decelerazione possono essere modificate quando il motore è fermo o quando viene richiesto il movimento tramite BSP_MotorControl_Run.
Per bloccare i nuovi comandi prima del completamento di quelli precedenti, BSP_MotorControl_WaitWhileActive blocca l'esecuzione del programma fino all'arresto del motore.
BSP_MotorControl_SelectStepMode può cambiare la modalità passo da pieno a 1/256° passo. Quando si cambia la modalità passo, il dispositivo e la posizione e la velocità correnti vengono ripristinate.

Architettura

Questa espansione software è completamente conforme all'architettura STM32Cube e la espande per consentire lo sviluppo di applicazioni che utilizzano driver per motori passo-passo.

Figura 1. Architettura software X-CUBE-SPN14
Architettura

Il software è basato sul livello di astrazione hardare STM32CubeHAL per il microcontrollore STM32. Il pacchetto estende STM32Cube con un pacchetto di supporto per schede (BSP) per la scheda di espansione del controllo motore e un driver per componenti BSP per STSPIN820 low voltage driver del motore passo-passo.
I livelli software utilizzati dal software applicativo sono:

  • Strato HAL STM32Cube: un insieme di API semplici, generiche e multiistanza (interfacce di programmazione delle applicazioni)
    per interagire con i livelli superiori dell'applicazione, della libreria e dello stack. È composto da API generiche e di estensione basate
    su un'architettura comune in modo che i livelli costruiti su di essa, come il livello middleware, possano funzionare senza richiedere configurazioni hardware specifiche dell'unità microcontrollore (MCU). Questa struttura migliora la riusabilità del codice della libreria e garantisce una facile portabilità su altri dispositivi.
    Livello del pacchetto di supporto della scheda (BSP): supporta le periferiche sulla scheda STM32 Nucleo, ad eccezione del
    MCU. Questo set limitato di API fornisce un'interfaccia di programmazione per alcune periferiche specifiche della scheda come il LED e il pulsante utente e aiuta a identificare la versione specifica della scheda. Il controllo motore BSP fornisce l'interfaccia di programmazione per vari componenti del driver del motore. È associato al componente BSP per il driver del motore STSPIN820 nel software X-CUBE-SPN14.

Struttura delle cartelle

Finestra della struttura delle cartelle

Il software si trova in due cartelle principali:

  • Piloti, con:
    • l'STM32Cube HAL files nelle sottocartelle STM32L0xx_HAL_Driver, STM32F0xx_HAL_Driver, STM32F3xx_HAL_Driver o STM32F4xx_HAL_Driver. Queste filesono presi direttamente dal framework STM32Cube e includono solo quelli necessari per eseguire il driver del motore exampmeno.
    • una cartella CMSIS con CMSIS (standard di interfaccia software per microcontrollori Cortex®), livello di astrazione hardware indipendente dal fornitore per la serie di processori Cortex-M di ARM. Anche questa cartella è rimasta invariata rispetto al framework STM32Cube.
    • una cartella BSP con il codice files per la configurazione di X-NUCLEO-IHM14A1, il driver STSPIN820 e l'API di controllo del motore.
  • Progetti, che contiene diversi usi example del driver del motore STSPIN820 per diverse piattaforme STM32 Nucleo.

Cartella BSP
Il software X-CUBE-SPN14 include i BSP descritti nelle sottosezioni seguenti.

STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
Questi BSP forniscono un'interfaccia per ogni scheda di sviluppo STM32 Nucleo compatibile per configurare e utilizzare le sue periferiche con la scheda di espansione X-NUCLEO-IHM14A1. Ogni sottocartella ha due.c/.h file coppie:

  • stm32Xxxx_nucleo.c/h: questi framework STM32Cube non modificati files fornire il pulsante utente e le funzioni LED per la scheda STM32 Nucleo specifica.
  • stm32Xxxx_nucleo_ihm14a1.c/h: questi filesono dedicati alla configurazione dei PWM, dei GPIO e all'abilitazione/disabilitazione degli interrupt necessari per il funzionamento della scheda di espansione X NUCLEO-IHM14A1.

Controllo motore BSP

Questo BSP fornisce un'interfaccia comune per accedere alle funzioni del driver di vari driver del motore, come L6474, powerSTEP01, L6208 e STSPIN820, tramite MotorControl/motorcontrol.c/h file paio.
Questi files definiscono tutte le funzioni di configurazione e controllo del driver, che vengono poi mappate alle funzioni del componente driver del motore utilizzato sulla data scheda di espansione tramite la struttura motorDrv_t file (definito in Componenti\Comune\motor.h.). Questa struttura definisce un elenco di puntatori di funzione che vengono riempiti durante la sua istanziazione nel corrispondente componente del driver del motore. Per X-CUBE-SPN14, la struttura è chiamata stspin820Drv (vedi file: BSP\Componenti\stspin820\stspin820.c).
Poiché il BSP di controllo del motore è comune a tutte le schede di espansione del driver del motore, alcune funzioni non sono disponibili per una determinata scheda di espansione. Le funzioni non disponibili vengono sostituite da puntatori nulli durante l'istanza della struttura motorDrv_t nel componente driver.

Componente STSPIN280 BSP
Il componente STSPIN820 BSP fornisce le funzioni del driver del driver del motore STSPIN820 nella cartella
stm32_cube\Driver\BSP\Components\STSPIN820.
Questa cartella ha 3 files:

  • stspin820.c: funzioni principali del driver STSPIN820
  • stspin820.h: dichiarazione delle funzioni del driver STSPIN820 e delle relative definizioni
  • stspin820_target_config.h: valori predefiniti per i parametri STSPIN820 e per il contesto dei dispositivi motore

Cartella del progetto
Per ogni piattaforma STM32 Nucleo, un exampil progetto è disponibile in stm32_cube\Projects\Multi\Exampfile\MotionControl\:

  • IHM14A1_EsampleFor1Motore esample di funzioni di controllo per configurazioni a motore singolo

L'example ha una cartella per ogni IDE compatibile:

  • EWARM per IAR Embedded Workbench
  • MDK-ARM per ARM/Keil µVision
  • STM32CubeIDE per ambiente di sviluppo integrato per STM32

Il codice seguente filesono inclusi anche:

  • inc\main.h: intestazione principale file
  • inc\ stm32xxxx_hal_conf.h: configurazione HAL file
  • inc\stm32xxxx_it.h: header per il gestore di interrupt
  • src\main.c: programma principale (codice dell'example basato sulla libreria di controllo motore per STSPIN820)
  • src\stm32xxxx_hal_msp.c: routine di inizializzazione HAL
  • src\stm32xxxx_it.c: gestore di interruzioni
  • src\system_stm32xxxx.c: inizializzazione del sistema
  • src\clock_xx.c: inizializzazione dell'orologio

Risorse software richieste
Il controllo MCU di un singolo STSPIN820 (una scheda X-NUCLEO IHM14A1) e la comunicazione tra i due è gestita tramite sette GPIO (pin STBY\RESET, EN\FAULT, MODE1, MODE2, MODE3, DIR, DECAY) e un PWM per pin REF . Il GPIO per il pin STCK è configurato per essere utilizzato come funzione alternativa CONFRONTO USCITA TIMER.
Per la gestione degli allarmi di sovracorrente e sovratemperatura, il software X-CUBE-SPN14 utilizza un interrupt esterno configurato sul GPIO utilizzato per il pin EN\FAULT, dopo aver abilitato o disabilitato i power bridge.

Tabella 2. Risorse richieste per il software X-CUBE-SPN14

Risorse F4xx

Risorse F3xx Risorse F0xx Risorse L0xx Spillo Caratteristiche (scheda)
Porta A GPIO 10

EXTI15_10_IRQn

Porta A GPIO 10

EXTI15_10_IRQn

Porta A GPIO 10

EXTI4_15_IRQn

Porta A GPIO 10

EXTI4_15_IRQn

 

D2

IT/FAULT

(IT)

Porta B GPIO 3

Timer2 Can2

Porta B GPIO 3

Timer2 Can2

Porta B GPIO 3

Timer15 Can1

Porta B GPIO 3

Timer2 Can2

 

D3

STCK

(CLK)

 Porta B GPIO 4

 

D5

DECADIMENTO

(DIC)

 Porta A GPIO 8  

D7

DIREZIONE

(DIR)

 Porta A GPIO 9  

D8

STBY/RESET

(ATTESA)

Port C GPIO 7

Timer3 Can2

Porta C GPIO 7

Timer3 Can2

Porta C GPIO 7

Timer3 Can2

Porta C GPIO 7

Timer22 Can2

 

D9

RIF PWM

(RIF)

 Porta A GPIO 7

 

D11

MODALITÀ3

(M3)

 Porta A GPIO 6

 

D12

MODALITÀ2

(M2)

Porta A GPIO 5  

D13

MODALITÀ1

(M1)

API

L'API X-CUBE-SPN14 è definita nel BSP di controllo motore. Le sue funzioni contengono il prefisso "BSP_MotorControl_".

Nota: Non tutte le funzioni di questo modulo sono disponibili per STSPIN820 e quindi per la scheda di espansione X-NUCLEO-IHM14A1.
La funzione API utente completa e le descrizioni dei parametri sono compilate in un HTML file nella cartella Documentazione del software.

Sampla descrizione dell'applicazione
un exampl'applicazione che utilizza la scheda di espansione X-NUCLEO-IHM14A1 con una scheda di sviluppo STM32 Nucleo compatibile è fornita nella directory Projects, con ready-to-build per più IDE (vedere la Sezione 2.3.2 Cartella Project).

Guida alla configurazione del sistema

Descrizione hardware
  1. STM32 nucleo
    Le schede di sviluppo STM32 Nucleo forniscono un modo conveniente e flessibile per gli utenti di testare soluzioni e costruire prototipi con qualsiasi linea di microcontrollori STM32.
    Il supporto per la connettività Arduino e i connettori ST morpho semplificano l'espansione delle funzionalità del
    STM32 Nucleo piattaforma di sviluppo aperta con un'ampia gamma di schede di espansione specializzate tra cui scegliere.
    La scheda STM32 Nucleo non richiede sonde separate in quanto integra il debugger ST-LINK/V2-1/
    programmatore.
    La scheda STM32 Nucleo viene fornita con la libreria HAL del software STM32 completa insieme a vari pacchetti software example per diversi IDE (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed e GCC/LLVM).
    Tutti gli utenti di STM32 Nucleo hanno accesso gratuito alle risorse online di mbed (compilatore, SDK C/C++ e sviluppatore
    community) su www.mbed.org per creare facilmente applicazioni complete.
    Figura 3. Scheda STM32 Nucleo
  2. Scheda di espansione del driver del motore passo-passo X-NUCLEO-IHM14A1
    La scheda di espansione del driver del motore X-NUCLEO-IHM14A1 è basata sul driver monolitico STSPIN820 per motori passo-passo.
    Rappresenta una soluzione conveniente e facile da usare per pilotare motori passo passo nel tuo progetto STM32 Nucleo, implementando applicazioni di pilotaggio motore come stampanti 2D/3D, robotica e telecamere di sicurezza.
    L'STSPIN820 implementa un controllo di corrente PWM con tempo di OFF costante regolabile tramite un resistore esterno e una risoluzione microstepping fino al 256° passo.
    La scheda di espansione X-NUCLEO-IHM14A1 è compatibile con il connettore Arduino UNO R3 e il connettore ST morpho, quindi può essere collegata alla scheda di sviluppo STM32 Nucleo e impilata con schede di espansione X-NUCLEO aggiuntive.
  3. Componenti hardware vari
    Per completare la configurazione dell'hardware, avrai bisogno di:
    • 1 motore passo-passo bipolare (da 7 a 45 V)
    • un alimentatore CC esterno con due cavi elettrici per la scheda X-NUCLEO-IHM14A1
    • un cavo USB da tipo A a USB mini-B per collegare la scheda STM32 Nucleo a un PC
  4. Requisiti software
    I seguenti componenti software sono necessari per impostare l'ambiente di sviluppo adatto per
    creazione di applicazioni basate sulla scheda di espansione driver motore:
    • X-CUBE-SPN14 Espansione STM32Cube per STSPIN820 basso volumetage sviluppo di applicazioni per driver di motori passo-passo. Il firmware X-CUBE-SPN14 e la relativa documentazione sono disponibili su www.st.com.
    • Uno dei seguenti tool-chain e compilatori di sviluppo:
      • Keil realeView Toolchain del kit di sviluppo del microcontrollore (MDK-ARM) V5.27
      • IAR Embedded Workbench per toolchain ARM (EWARM) V8.50
      • Ambiente di sviluppo integrato per STM32 (STM32CubeIDE)
Configurazione hardware e software

Configurazione per pilotare un singolo motore

Configurare i seguenti jumper sulla scheda STM32 Nucleo:

  • JP1 spento
  • JP5 (PWR) sul lato UV5
  • JP6 (IDD) acceso
    Configurare la scheda di espansione X-NUCLEO-IHM14A1 così:
  • Regolare il potenziometro R7 su 1 kΩ.
  • Impostare l'interruttore S1, S2, S3 e S4 sul lato pull-down come in Figura 4. Motore passo-passo X-NUCLEO-IHM14A1
    scheda di espansione driver. La modalità micro-passo viene selezionata tramite MODE1, MODE2 e MODE3
    livelli controllati dalla scheda STM32 Nucleo.
    Una volta configurata correttamente la scheda:
  • Collegare la scheda di espansione X-NUCLEO-IHM14A1 sopra la scheda STM32 Nucleo tramite i connettori Arduino UNO
  • Collegare la scheda STM32 Nucleo ad un PC con il cavo USB tramite il connettore USB CN1 per alimentare la scheda
  • Accendere la scheda di espansione X-NUCLEO-IHM14A1 collegando i connettori Vin e Gnd a un alimentatore CC
  • Collegare il motore passo-passo ai connettori a ponte X-NUCLEO IHM14A1 A+/- e B+/-

Una volta che la configurazione del sistema è pronta:

  • Apri la tua toolchain preferita
  • A seconda della scheda STM32 Nucleo, aprire il progetto software da:
    • \stm32_cube\Progetti\Multi\Examples\MotionControl\IHM14A1_EsampleFor1Motor\YourToolChainNam
      e\STM32F401RE-Nucleo per Nucleo STM32F401
    • \stm32_cube\Progetti\Multi\Examples\MotionControl\IHM14A1_EsampleFor1Motor\YourToolChainNam
      e\STM32F030R8-Nucleo per Nucleo STM32F334
    • \stm32_cube\Progetti\Multi\Examples\MotionControl\IHM14A1_EsampleFor1Motor\YourToolChainName\STM32F030R8-Nucleo per Nucleo STM32F030
    • \stm32_cube\Progetti\Multi\Examples\MotionControl\IHM14A1_EsampleFor1Motor\YourToolChainName\STM32L053R8-Nucleo per Nucleo STM32L053
  •  Per adattare i parametri STSPIN820 predefiniti al tuo basso volumetagLe caratteristiche del motore passo-passo, sia:
    • usa BSP_MotorControl_Init con il puntatore NULL e apri stm32_cube\Drivers\BSP\Components\STSPIN820\STSPIN820_target_config.h per modificare i parametri in base alle tue esigenze
    • – utilizzare BSP_MotorControl_Init con l'indirizzo della struttura initDevicesParameters con valori appropriati.
  • Ricostruisci tutto filese carica l'immagine nella memoria di destinazione.
  • Eseguire l'example. Il motore si avvia automaticamente (vedere main.c per i dettagli della sequenza demo).

Cronologia delle revisioni

Data

Versione Cambiamenti

17-Ott-2017

1

Versione iniziale.

20-lug-2021 2

Aggiornata la Sezione 2.3.2 Cartella del progetto e la Sezione 3.2 Requisiti software. Sezione 2 rimossa Che cos'è STM32Cube? e lo ha sostituito con un collegamento nell'Introduzione.

AVVISO IMPORTANTE - LEGGERE ATTENTAMENTE

STMicroelectronics NV e le sue consociate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, modifiche e miglioramenti ai prodotti ST e / o al presente documento in qualsiasi momento senza preavviso. Gli acquirenti dovrebbero ottenere le informazioni pertinenti più recenti sui prodotti ST prima di effettuare gli ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita di ST in vigore al momento della conferma dell'ordine.
Gli acquirenti sono gli unici responsabili della scelta, selezione e utilizzo dei prodotti ST e ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti.
Nel presente documento ST non concede alcuna licenza, espressa o implicita, su alcun diritto di proprietà intellettuale.
La rivendita di prodotti ST con disposizioni diverse dalle informazioni qui stabilite invaliderà qualsiasi garanzia concessa da ST per tale prodotto.
ST e il logo ST sono marchi di ST. Per ulteriori informazioni sui marchi ST, fare riferimento a www.st.com/trademarks. Tutti gli altri prodotti o servizi
i nomi sono di proprietà dei rispettivi proprietari.
Le informazioni contenute nel presente documento annullano e sostituiscono le informazioni fornite in precedenza in qualsiasi versione precedente del documento.
© 2021 STMicroelectronics – Tutti i diritti riservati

 

Documenti / Risorse

Espansione software driver motore passo-passo ST UM2300 X-CUBE-SPN14 per STM32Cube [pdf] Manuale d'uso
UM2300, Espansione software driver motore passo-passo X-CUBE-SPN14 per STM32Cube, Espansione software driver motore passo-passo UM2300 X-CUBE-SPN14 per STM32Cube, Espansione software driver motore passo-passo X-CUBE-SPN14, Espansione software driver per STM32Cube, Espansione software driver motore per STM32Cube, Espansione per STM32Cube, STM32Cube

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *