UM2300 X-CUBE-SPN14 Expansión de software de controlador de motor paso a paso para STM32Cube Manual de usuario
UM2300 X-CUBE-SPN14 Expansión de software de controlador de motor paso a paso para STM32Cube

Introdución

O paquete de expansión X-CUBE-SPN14 para STM32Cube ofrécelle control total das operacións do motor paso a paso.
Cando se combina cunha ou máis placas de expansión X-NUCLEO-IHM14A1, este software permite que unha placa de desenvolvemento STM32 Nucleo compatible controle un ou máis motores paso a paso.
Está construído sobre a tecnoloxía de software STM32Cube para facilitar a portabilidade entre diferentes microcontroladores STM32.
O software vén con asampimplementación le para un motor paso a paso. É compatible coas placas de desenvolvemento NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 ou NUCLEO-L053R8 cunha placa de expansión X-NUCLEO-IHM14A1 montada na parte superior.

ENLACES RELACIONADOS
Visita o ecosistema STM32Cube web páxina en www.st.com para obter máis información

Siglas e abreviaturas

Táboa 1. Lista de siglas

Acrónimo

Descrición
API

Interface de programación de aplicacións

BSP

Paquete de apoio ao consello
CMSIS

Estándar de interface de software para microcontroladores Cortex®

HAL

Capa de abstracción de hardware
IDE

Entorno de desenvolvemento integrado

LED

Diodo emisor de luz

Acabadoview

O paquete de software X-CUBE-SPN14 amplía a funcionalidade de STM32Cube. As súas características principais inclúen:

  • Capa de controlador para a xestión completa do dispositivo STSPIN820 (controlador de motor paso a paso de baixa potencia) integrado na placa de expansión X-NUCLEO-IHM14A1
  • Modos de lectura e escritura de parámetros do dispositivo, configuración GPIO, PWM e IRQ, controles de micro-pasos, posición de dirección, velocidade, aceleración, desaceleración e torque, xestión automática de interruptores de paso completo; selección de modo de parada de alta impedancia ou retención, activación e xestión de espera
  • Manexo de interrupcións de fallos
  • Control de motor paso a paso único sampa aplicación
  • Portabilidade sinxela entre diferentes familias de MCU grazas a STM32Cube
  • Condicións de licenza gratuítas e fáciles de usar

O software implementa pseudorexistros e comandos de movemento mediante:

  • configurando temporizadores usados ​​para xerar reloxo de pasos e voltage referencia
  • xestión de parámetros do dispositivo como aceleración, desaceleración, mín. e máx. velocidade, posicións en speed profile límites, posición de marca, modo de micro-paso, dirección, estado de movemento, etc.

O software manexa un dispositivo STSPIN820.
Ao final do pulso do temporizador de tick, execútase unha devolución de chamada para chamar ao controlador do reloxo de pasos que controla o movemento do motor.
mediante a xestión de:

  • estado de movemento (por exemplo, parar o motor no destino de destino)
  • dirección do motor a través do nivel GPIO
  • posición motora relativa e absoluta en micropasos
  • a velocidade pola aceleración cero, positiva e negativa

A velocidade establécese variando a frecuencia do reloxo de pasos e, opcionalmente, o modo de pasos cando a función de cambio automático de paso completo está activada. O temporizador usado para o reloxo de pasos está configurado no modo de comparación de saída. Calcúlase un novo valor do rexistro de comparación de captura en cada chamada do controlador de reloxo de paso para conseguir o control de frecuencia.
A velocidade é unha función lineal da frecuencia do reloxo de pasos para un determinado modo de micropasos, que o software pode variar desde o paso completo ata o paso 1/256.
Para usar a biblioteca de controladores STSPIN820, debe executar a función de inicialización que:

  • configura os GPIO necesarios para habilitar as pontes e xestionar o pin de falla EN\FAULT, MODE1 dedicado,
    Pins de selección de pasos MODE2 e MODE3, o pin DIR para a dirección do motor, o pin DECAY para o modo de decadencia
    selección e o pin de reinicio de espera STBY\RESET;
  • configura o temporizador no modo de comparación de saída para o pin STCK e o vol de referencia do temporizadortagxeración e en modo PWM para pin REF;
  • carga os parámetros do controlador con valores de stspin820_target_config.h ou definidos na función principal mediante unha estrutura de inicialización dedicada.
    Os parámetros do controlador pódense modificar despois da inicialización chamando a funcións específicas. Tamén pode escribir funcións de devolución de chamada e anexalas a:
  • o controlador de interrupcións da bandeira para realizar determinadas accións cando se notifica unha sobreintensidade ou unha alarma térmica
  • o manejador de erros que chama a biblioteca cando informa un erro. Os comandos de movemento posteriores inclúen:
  • BSP_MotorControl_Move para mover un determinado número de pasos nunha dirección específica
  • BSP_MotorControl_GoTo, BSP_MotorControl_GoHome, BSP_MotorControl_GoMark para ir a unha posición específica usando o camiño máis curto
  • BSP_MotorControl_CmdGoToDir para ir nunha dirección específica a unha posición específica
  • BSP_MotorControl_Run para funcionar indefinidamente

A velocidade profesionalfile é totalmente manipulado polo microcontrolador. O motor comeza a moverse coa configuración de velocidade mínima BSP_MotorControl_SetMinSpeed, que despois se modifica en cada paso polo
Valor de aceleración BSP_MotorControl_SetAcceleration.
Se a posición obxectivo dun comando de movemento está suficientemente lonxe, o motor realiza un movemento trapezoidal de:

  • acelerando co parámetro de aceleración do dispositivo
  • permanecendo estable na velocidade máxima BSP_MotorControl_SetMaxSpeed
  • desaceleración mediante BSP_MotorControl_SetDeceleration
  • parando no destino obxectivo
    Se a posición de destino está demasiado preto para que o motor alcance a velocidade máxima, realiza un movemento triangular que implica:
  • aceleración
  • desaceleración
  • parando no destino obxectivo

Pódese deter un comando de movemento en calquera momento con BSP_MotorControl_SoftStop diminuíndo progresivamente a velocidade mediante o parámetro de desaceleración ou o comando BSP_MotorControl_HardStop que detén o motor inmediatamente. A ponte de alimentación desactívase automaticamente cando o motor se detén se o modo de parada HIZ_MODE se axustou previamente (BSP_MotorControl_SetStopMode).
A dirección, a velocidade, a aceleración e a desaceleración pódense cambiar cando o motor está parado ou cando se solicita o movemento mediante BSP_MotorControl_Run.
Para bloquear novos comandos antes de completar os anteriores, BSP_MotorControl_WaitWhileActive bloquea a execución do programa ata que se deteña o motor.
BSP_MotorControl_SelectStepMode pode cambiar o modo de paso de paso completo a 1/256. Cando se cambia o modo de pasos, restablece o dispositivo e a posición e a velocidade actuais.

Arquitectura

Esta expansión de software cumpre totalmente coa arquitectura STM32Cube e amplíaa para permitir o desenvolvemento de aplicacións mediante controladores de motor paso a paso.

Figura 1. Arquitectura de software X-CUBE-SPN14
Arquitectura

O software baséase na capa de abstracción hardare STM32CubeHAL para o microcontrolador STM32. O paquete estende STM32Cube cun paquete de soporte de placa (BSP) para a placa de expansión de control de motor e un controlador de compoñente BSP para o STSPIN820 low voltagcontrolador de motor paso a paso.
As capas de software utilizadas polo software da aplicación son:

  • Capa STM32Cube HAL: un conxunto sinxelo, xenérico e multiinstancia de API (interfaces de programación de aplicacións)
    para interactuar coas capas superiores de aplicación, biblioteca e pila. Está composto por API xenéricas e de extensión baseadas
    nunha arquitectura común para que as capas construídas nela, como a capa de middleware, poidan funcionar sen necesidade de configuracións de hardware específicas da Unidade de microcontrolador (MCU). Esta estrutura mellora a reutilización do código da biblioteca e garante unha fácil portabilidade noutros dispositivos.
    Capa do paquete de soporte da placa (BSP).: admite os periféricos da placa STM32 Nucleo, excepto o
    MCU. Este conxunto limitado de API proporciona unha interface de programación para certos periféricos específicos da placa, como o LED e o botón de usuario, e axuda a identificar a versión específica da placa. O control de motor BSP proporciona a interface de programación para varios compoñentes de controlador de motor. Está asociado co compoñente BSP para o controlador de motor STSPIN820 no software X-CUBE-SPN14.

Estrutura de cartafoles

Ventá de estrutura de cartafoles

O software está situado en dous cartafoles principais:

  • Condutores, con:
    • o STM32Cube HAL files nos subcartafoles STM32L0xx_HAL_Driver, STM32F0xx_HAL_Driver, STM32F3xx_HAL_Driver ou STM32F4xx_HAL_Driver. Estes files tómanse directamente do framework STM32Cube e só inclúen os necesarios para executar o controlador do motor, por exemploamples.
    • un cartafol CMSIS co CMSIS (estándar de interface de software de microcontroladores Cortex®), capa de abstracción de hardware independente do vendedor para a serie de procesadores Cortex-M de ARM. Este cartafol tampouco se modifica desde o marco STM32Cube.
    • un cartafol BSP co código files para a configuración X-NUCLEO-IHM14A1, o controlador STSPIN820 e a API de control do motor.
  • proxectos, que contén varios usos exampficheiros do controlador de motor STSPIN820 para diferentes plataformas STM32 Nucleo.

Cartafol BSP
O software X-CUBE-SPN14 inclúe os BSP descritos nas seguintes subseccións.

STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
Estes BSP proporcionan unha interface para cada placa de desenvolvemento STM32 Nucleo compatible para configurar e utilizar os seus periféricos coa placa de expansión X-NUCLEO-IHM14A1. Cada subcartafol ten dous.c/.h file pares:

  • stm32XXxx_nucleo.c/h: estes marcos STM32Cube non modificados fileProporcionan o botón de usuario e as funcións LED para a placa específica STM32 Nucleo.
  • stm32XXxx_nucleo_ihm14a1.c/h: estes files dedícanse á configuración dos PWM, dos GPIO e á habilitación/desactivación de interrupcións necesarias para o funcionamento da placa de expansión X NUCLEO-IHM14A1.

Control de motor BSP

Este BSP proporciona unha interface común para acceder ás funcións do controlador de varios controladores de motor, como L6474, powerSTEP01, L6208 e STSPIN820, a través de MotorControl/motorcontrol.c/h file par.
Estes files definen todas as funcións de configuración e control do controlador, que logo se asignan ás funcións do compoñente do controlador do motor usado na placa de expansión dada mediante a estrutura motorDrv_t file (definido en Compoñentes\Común\motor.h.). Esta estrutura define unha lista de punteiros de función que se enchen durante a súa instanciación no compoñente de controlador de motor correspondente. Para X-CUBE-SPN14, a estrutura chámase stspin820Drv (ver file: BSP\Componentes\stspin820\stspin820.c).
Como o control de motor BSP é común para todas as placas de expansión do controlador de motor, algunhas funcións non están dispoñibles para unha placa de expansión determinada. As funcións non dispoñibles substitúense por punteiros nulos durante a instanciación da estrutura motorDrv_t no compoñente do controlador.

Compoñente STSPIN280 BSP
O compoñente STSPIN820 BSP proporciona as funcións do controlador do controlador do motor STSPIN820 no cartafol
stm32_cube\Drivers\BSP\Components\STSPIN820.
Este cartafol ten 3 files:

  • stspin820.c: funcións principais do controlador STSPIN820
  • stspin820.h: declaración das funcións do controlador STSPIN820 e as súas definicións asociadas
  • stspin820_target_config.h: valores predefinidos para os parámetros STSPIN820 e para o contexto dos dispositivos do motor

Cartafol do proxecto
Por cada plataforma STM32 Nucleo, un exampo proxecto do ficheiro está dispoñible en stm32_cube\Projects\Multi\Examples\MotionControl\:

  • IHM14A1_ExampleFor1Motor exampficheiros de funcións de control para configuracións dun só motor

O example ten un cartafol para cada IDE compatible:

  • EWARM para IAR Embedded Workbench
  • MDK-ARM para ARM/Keil µVision
  • STM32CubeIDE para o ambiente de desenvolvemento integrado para STM32

O seguinte código fileTamén se inclúen:

  • inc\main.h: cabeceira principal file
  • inc\ stm32xxxx_hal_conf.h: configuración de HAL file
  • inc\stm32xxxx_it.h: cabeceira para o controlador de interrupcións
  • src\main.c: programa principal (código do exampbaseado na biblioteca de control de motor para STSPIN820)
  • src\stm32xxxx_hal_msp.c: Rutinas de inicialización HAL
  • src\stm32xxxx_it.c: controlador de interrupcións
  • src\system_stm32xxxx.c: inicialización do sistema
  • src\clock_xx.c: inicialización do reloxo

Recursos necesarios para o software
O control MCU dun único STSPIN820 (unha placa X-NUCLEO IHM14A1) e a comunicación entre os dous lévase a cabo a través de sete GPIO (STBY\RESET, EN\FAULT, MODE1, MODE2, MODE3, DIR, PIN DECAY) e un PWM para o pin REF. . O GPIO para o pin STCK está configurado para ser usado como unha función alternativa de COMPARACIÓN DE SAÍDAS DE TEMPORIZADOR.
Para o manexo das alarmas de sobreintensidade e sobretemperatura, o software X-CUBE-SPN14 utiliza unha interrupción externa configurada no GPIO utilizado para o pin EN\FAULT, despois de activar ou desactivar as pontes de alimentación.

Táboa 2. Recursos necesarios para o software X-CUBE-SPN14

Recursos F4xx

Recursos F3xx Recursos F0xx Recursos L0xx Pin Características (placa)
Porto A GPIO 10

EXTI15_10_IRQn

Porto A GPIO 10

EXTI15_10_IRQn

Porto A GPIO 10

EXTI4_15_IRQn

Porto A GPIO 10

EXTI4_15_IRQn

 

D2

EN/FALLOT

(EN)

Porto B GPIO 3

Temporizador 2 Ch2

Porto B GPIO 3

Temporizador 2 Ch2

Porto B GPIO 3

Temporizador 15 Ch1

Porto B GPIO 3

Temporizador 2 Ch2

 

D3

STCK

(CLK)

 Porto B GPIO 4

 

D5

DECADENCIA

(DEC.)

 Porto A GPIO 8  

D7

DIRECCIÓN

(DIR)

 Porto A GPIO 9  

D8

STBY/RESET

(ESPERA)

Port C GPIO 7

Temporizador 3 Ch2

Porto C GPIO 7

Temporizador 3 Ch2

Porto C GPIO 7

Temporizador 3 Ch2

Porto C GPIO 7

Temporizador 22 Ch2

 

D9

PWM REF

(REF)

 Porto A GPIO 7

 

D11

MODO 3

(M3)

 Porto A GPIO 6

 

D12

MODO 2

(M2)

Porto A GPIO 5  

D13

MODO 1

(M1)

APIs

A API X-CUBE-SPN14 está definida no BSP de control de motor. As súas funcións conteñen o prefixo "BSP_MotorControl_".

Nota: Non todas as funcións deste módulo están dispoñibles para o STSPIN820 e, polo tanto, para a placa de expansión X-NUCLEO-IHM14A1.
As descricións completas das funcións e parámetros da API do usuario compílanse nun HTML file no cartafol de documentación do software.

Sampdescrición da aplicación
Un exampA aplicación que utiliza a placa de expansión X-NUCLEO-IHM14A1 cunha placa de desenvolvemento compatible STM32 Nucleo ofrécese no directorio Proxectos, lista para construír para varios IDE (consulte a Sección 2.3.2 Cartafol do proxecto).

Guía de configuración do sistema

Descrición do hardware
  1. STM32 Núcleo
    As placas de desenvolvemento STM32 Nucleo ofrecen unha forma accesible e flexible para que os usuarios poidan probar solucións e construír prototipos con calquera liña de microcontroladores STM32.
    O soporte de conectividade Arduino e os conectores ST morfo facilitan a ampliación da funcionalidade
    Plataforma de desenvolvemento aberta STM32 Nucleo cunha ampla gama de placas de expansión especializadas para escoller.
    A placa STM32 Nucleo non precisa de sondas separadas xa que integra o depurador ST-LINK/V2-1/
    programador.
    A placa STM32 Nucleo inclúe a biblioteca completa de software STM32 HAL xunto con varios paquetes de software exampficheiros para diferentes IDEs (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed e GCC/LLVM).
    Todos os usuarios de STM32 Nucleo teñen acceso gratuíto aos recursos en liña de mbed (compilador, SDK C/C++ e programador).
    comunidade) en www.mbed.org para crear facilmente aplicacións completas.
    Figura 3. Placa STM32 Nucleo
  2. Placa de expansión de controlador de motor paso a paso X-NUCLEO-IHM14A1
    A placa de expansión do controlador de motor X-NUCLEO-IHM14A1 baséase no controlador monolítico STSPIN820 para motores paso a paso.
    Representa unha solución accesible e fácil de usar para conducir motores paso a paso no seu proxecto STM32 Nucleo, implementando aplicacións de condución de motores como impresoras 2D/3D, robótica e cámaras de seguridade.
    O STSPIN820 implementa un control de corrente PWM cun tempo de apagado constante axustable mediante unha resistencia externa e unha resolución de micropaso ata o paso 256.
    A placa de expansión X-NUCLEO-IHM14A1 é compatible co conector Arduino UNO R3 e co conector morfo ST, polo que se pode conectar á placa de desenvolvemento STM32 Nucleo e apilarse con placas de expansión X-NUCLEO adicionais.
  3. Varios compoñentes de hardware
    Para completar a configuración do hardware, necesitará:
    • 1 motor paso a paso bipolar (7 a 45 V).
    • unha fonte de alimentación de CC externa con dous cables eléctricos para a placa X-NUCLEO-IHM14A1
    • un cable USB tipo A a mini-B USB para conectar a placa STM32 Nucleo a un PC
  4. Requisitos de software
    Os seguintes compoñentes de software son necesarios para configurar o ambiente de desenvolvemento axeitado para
    creando aplicacións baseadas na placa de expansión do controlador de motor:
    • X-CUBE-SPN14 STM32Cube expansion para STSPIN820 low voltagDesenvolvemento de aplicacións de controlador de motor paso a paso. O firmware X-CUBE-SPN14 e a documentación relacionada están dispoñibles en www.st.com.
    • Unha das seguintes cadeas de ferramentas de desenvolvemento e compiladores:
      • Keil RealView Cadea de ferramentas do kit de desenvolvemento de microcontroladores (MDK-ARM) V5.27
      • Cadea de ferramentas IAR Embedded Workbench for ARM (EWARM) V8.50
      • Entorno de desenvolvemento integrado para STM32 (STM32CubeIDE)
Configuración de hardware e software

Configuración para conducir un único motor

Configure os seguintes puentes na placa STM32 Nucleo:

  • JP1 desactivado
  • JP5 (PWR) no lado UV5
  • JP6 (IDD) activado
    Configure a placa de expansión X-NUCLEO-IHM14A1 así:
  • Axuste o potenciómetro R7 a 1 kΩ.
  • Coloque os interruptores S1, S2, S3 e S4 no lado desplegable como na Figura 4. Motor paso a paso X-NUCLEO-IHM14A1
    placa de expansión de controladores. O modo de micro-paso é seleccionado a través dos MODE1, MODE2 e MODE3
    niveis controlados pola placa STM32 Nucleo.
    Unha vez que o taboleiro estea configurado correctamente:
  • Conecte a placa de expansión X-NUCLEO-IHM14A1 na parte superior da placa STM32 Nucleo a través dos conectores Arduino UNO
  • Conecte a placa STM32 Nucleo a un PC co cable USB a través do conector USB CN1 para alimentar a placa
  • Encienda a placa de expansión X-NUCLEO-IHM14A1 conectando os conectores Vin e Gnd a unha fonte de alimentación de CC
  • Conecte o motor paso a paso aos conectores ponte X-NUCLEO IHM14A1 A+/- e B+/-

Unha vez que a configuración do sistema estea lista:

  • Abre a túa cadea de ferramentas preferida
  • Dependendo da placa STM32 Nucleo, abra o proxecto de software desde:
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F401RE-Nucleo para Nucleo STM32F401
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F030R8-Nucleo para Nucleo STM32F334
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32F030R8-Nucleo para Nucleo STM32F030
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32L053R8-Nucleo para Nucleo STM32L053
  •  Para adaptar os parámetros predeterminados do STSPIN820 ao seu baixo voltage características do motor paso a paso, xa sexa:
    • use BSP_MotorControl_Init co punteiro NULL e abra stm32_cube\ Drivers\ BSP\Components\ STSPIN820\ STSPIN820_target_config.h para modificar os parámetros segundo as súas necesidades.
    • – use BSP_MotorControl_Init co enderezo da estrutura initDevicesParameters cos valores apropiados.
  • Reconstruír todo files e carga a túa imaxe na memoria de destino.
  • Executar o example. O motor arranca automaticamente (consulta main.c para detalles da secuencia de demostración).

Historial de revisións

Data

Versión Cambios

17-outubro-2017

1

Lanzamento inicial.

20-Xul-2021 2

Actualizouse a Sección 2.3.2 Cartafol do proxecto e a Sección 3.2 Requisitos de software. Eliminada Sección 2 Que é STM32Cube? e substituíuna por unha ligazón na Introdución.

AVISO IMPORTANTE: LÉ ATENTAMENTE

STMicroelectronics NV e as súas filiais ("ST") resérvanse o dereito de facer cambios, correccións, melloras, modificacións e melloras nos produtos ST e / ou neste documento en calquera momento sen previo aviso. Os compradores deberían obter a información relevante máis recente sobre os produtos ST antes de realizar pedidos. Os produtos ST véndense segundo os termos e condicións de venda de ST no seu momento de confirmación do pedido.
Os compradores son os únicos responsables da elección, selección e uso dos produtos ST e ST non asume ningunha responsabilidade pola asistencia á aplicación ou o deseño dos produtos dos compradores.
ST non concede ningunha licenza, expresa ou implícita, a ningún dereito de propiedade intelectual.
A revenda de produtos ST con disposicións diferentes da información aquí establecida anulará calquera garantía concedida por ST para tal produto.
ST e o logotipo de ST son marcas comerciais de ST. Para obter información adicional sobre as marcas rexistradas ST, consulte www.st.com/trademarks. Todos os demais produtos ou servizos
os nomes son propiedade dos seus respectivos propietarios.
A información deste documento substitúe e substitúe a información proporcionada anteriormente en calquera versión anterior deste documento.
© 2021 STMicroelectronics – Todos os dereitos reservados

 

Documentos/Recursos

Expansión de software de controlador de motor paso a paso ST UM2300 X-CUBE-SPN14 para STM32Cube [pdfManual do usuario
UM2300, X-CUBE-SPN14 Ampliación de software de controlador de motor paso a paso para STM32Cube, UM2300 X-CUBE-SPN14 Ampliación de software de controlador de motor paso a paso para STM32Cube, X-CUBE-SPN14 Ampliación de software de controlador de motor paso a paso, expansión de software de controlador de motor para STM32Cube, Expansión de software de controlador de motor para STM32Cube, expansión para STM32Cube, STM32Cube

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *