UM2300 X-CUBE-SPN14 Проширување на софтверот за двигател на чекорен мотор за STM32Cube
UM2300 X-CUBE-SPN14 Проширување на софтверот за двигател на чекорен мотор за STM32Cube

Вовед

Пакетот за проширување X-CUBE-SPN14 за STM32Cube ви дава целосна контрола на операциите на степер моторот.
Кога се комбинира со една или повеќе X-NUCLEO-IHM14A1 плочки за проширување, овој софтвер овозможува компатибилната развојна плочка STM32 Nucleo да контролира еден или повеќе степер мотори.
Изграден е на врвот на софтверската технологија STM32Cube за лесна преносливост преку различни микроконтролери STM32.
Софтверот доаѓа со какоampимплементација за еден чекор мотор. Компатибилен е со развојните табли NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 или NUCLEO-L053R8 со плочка за проширување X-NUCLEO-IHM14A1 поставена на врвот.

ПОВРЗАНИ ЛИНКИ
Посетете го екосистемот STM32Cube web страница на www.st.com за дополнителни информации

Акроними и кратенки

Табела 1. Список на акроними

Акроним

Опис
API

Програмски интерфејс за апликации

БСП

Пакет за поддршка на одборот
ЦМСИС

Стандард за софтверски интерфејс за микроконтролер Cortex®

ХАЛ

Хардверски апстракциски слој
IDE

Интегрирана развојна средина

LED

Диоди кои емитуваат светлина

Во текот наview

Софтверскиот пакет X-CUBE-SPN14 ја проширува функционалноста на STM32Cube. Неговите клучни карактеристики вклучуваат:

  • Слој на двигател за целосно управување со уредот STSPIN820 (двигател на степер мотор со мала моќност) интегриран во плочката за проширување X-NUCLEO-IHM14A1
  • Режими за читање и запишување на параметрите на уредот, конфигурација на GPIO, PWM и IRQ, микро чекорење, позиција на насока, брзина, забрзување, забавување и контроли на вртежниот момент, автоматско управување со прекинувачот во целосен чекор; Избор на висока импеданса или задржување на режимот за запирање, овозможување и управување во мирување
  • Ракување со прекини со дефект
  • Контрола со еден чекорен мотор sampле апликација
  • Лесна преносливост низ различни семејства на MCU, благодарение на STM32Cube
  • Бесплатни услови за лиценца погодни за корисникот

Софтверот имплементира псевдо-регистри и команди за движење со:

  • конфигурирање на тајмери ​​кои се користат за генерирање на чекор-часовник и волуменtagе референца
  • управување со параметрите на уредот како забрзување, забавување, мин. и макс. брзина, позиции на брзина проfile граници, позиција на ознака, режим на микро чекорење, насока, состојба на движење итн.

Софтверот се справува со еден уред 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. Пакетот го проширува STM32Cube со пакет за поддршка на плочата (BSP) за плочката за проширување на контролата на моторот и двигател на компонентата BSP за STSPIN820 ниска јачинаtagдвигател на чекор мотор.
Слоевите на софтвер што ги користи апликативниот софтвер се:

  • STM32Cube HAL слој: едноставен, генерички и повеќекратен сет на API (интерфејси за програмирање на апликации)
    за да комуницирате со горните слоеви на апликација, библиотека и стек. Составен е од генерички и екстензивни API базирани
    на заедничка архитектура, така што слоевите изградени на него, како што е слојот на среден софтвер, можат да функционираат без да бараат специфични хардверски конфигурации на единицата за микроконтролер (MCU). Оваа структура ја подобрува повторната употреба на кодот на библиотеката и гарантира лесна преносливост на други уреди.
    Слој на пакет за поддршка на табла (BSP).: ги поддржува периферните уреди на STM32 Nucleo плочата, освен за
    MCU. Овој ограничен сет на API обезбедува програмски интерфејс за одредени периферни уреди специфични за таблата, како што се LED и корисничкото копче, и помага во идентификувањето на специфичната верзија на плочата. Контролата на моторот BSP обезбедува програмски интерфејс за различни компоненти на двигателот на моторот. Поврзан е со компонентата BSP за двигателот на моторот STSPIN820 во софтверот X-CUBE-SPN14.

Структура на папката

Прозорец за структура на папка

Софтверот се наоѓа во две главни папки:

  • Возачи, со:
    • STM32Cube HAL files во потпапките STM32L0xx_HAL_Driver, STM32F0xx_HAL_Driver, STM32F3xx_HAL_Driver или STM32F4xx_HAL_Driver. Овие files се преземени директно од рамката STM32Cube и ги вклучуваат само оние што се потребни за управување со двигателот на моторот прampлес.
    • папка CMSIS со CMSIS (стандард за софтверски интерфејс за микроконтролер Cortex®), слој за апстракција на хардвер независен од продавачот за серијата процесори Cortex-M од ARM. Оваа папка е исто така непроменета од рамката STM32Cube.
    • папка BSP со кодот files за конфигурација X-NUCLEO-IHM14A1, драјверот STSPIN820 и API за контрола на моторот.
  • Проекти, кој содржи неколку употреба прampделови од двигателот на моторот STSPIN820 за различни платформи STM32 Nucleo.

BSP папка
Софтверот X-CUBE-SPN14 ги вклучува BSPs опишани во следните потсекции.

STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
Овие BSP обезбедуваат интерфејс за секоја компатибилна развојна плоча STM32 Nucleo за конфигурирање и користење на нејзините периферни уреди со плочата за проширување X-NUCLEO-IHM14A1. Секоја подпапка има по две.c/.h file парови:

  • stm32XXxx_nucleo.c/h: овие немодифицирани рамки STM32Cube files обезбеди корисничко копче и LED функции за специфичната STM32 Nucleo плоча.
  • stm32XXxx_nucleo_ihm14a1.c/h: овие files се посветени на конфигурацијата на PWM, GPIO и овозможување/оневозможување на прекини кои се потребни за работа на плочата за проширување на X NUCLEO-IHM14A1.

Контрола на моторот BSP

Овој BSP обезбедува заеднички интерфејс за пристап до функциите на возачот на различни двигатели на мотори, како што се L6474, powerSTEP01, L6208 и STSPIN820, преку MotorControl/motorcontrol.c/h file пар.
Овие fileги дефинира сите функции за конфигурација и контрола на драјверот, кои потоа се пресликуваат со функциите на компонентата на двигателот на моторот што се користи на дадената табла за проширување преку структурата 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\Examples\MotionControl\:

  • IHM14A1_ПрampleFor1Motor прampЛежи на контролни функции за конфигурации со еден мотор

ПоранешниотampЛе има папка за секој компатибилен IDE:

  • EWARM за IAR вградена работна маса
  • MDK-ARM за ARM/Keil µVision
  • STM32CubeIDE за интегрирана развојна околина за STM32

Следниот код fileВклучени се и:

  • inc\main.h: Главно заглавие file
  • inc\ stm32xxxx_hal_conf.h: HAL конфигурација file
  • inc\stm32xxxx_it.h: заглавие за управувачот со прекини
  • src\main.c: главна програма (шифра на прampврз основа на библиотеката за контрола на моторот за 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 пинови) и PWM за REF пина . GPIO за иглата STCK е конфигуриран да се користи како алтернативна функција TIMER OUTPUT COMPARE.
За справување со аларми за прекумерна струја и прекумерна температура, софтверот X-CUBE-SPN14 користи надворешен прекин конфигуриран на GPIO што се користи за пинот EN\FAULT, откако ќе ги вклучи или оневозможи мостовите за напојување.

Табела 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/FAULT

(EN)

Порта B GPIO 3

Тајмер2 Ch2

Порта B GPIO 3

Тајмер2 Ch2

Порта B GPIO 3

Тајмер15 Ch1

Порта B GPIO 3

Тајмер2 Ch2

 

D3

СТЦК

(CLK)

 Порта B GPIO 4

 

D5

РАСПИТУВАЊЕ

(ДЕК)

 Порта A GPIO 8  

D7

НАСОКА

(DIR)

 Порта A GPIO 9  

D8

STBY/RESET

(STBY)

Pили C GPIO 7

Тајмер3 Ch2

Порта C GPIO 7

Тајмер3 Ch2

Порта C GPIO 7

Тајмер3 Ch2

Порта C GPIO 7

Тајмер22 Ch2

 

D9

PWM РЕФ

(РЕФ)

 Порта A GPIO 7

 

D11

РЕЖИМ 3

(М3)

 Порта A GPIO 6

 

D12

РЕЖИМ 2

(М2)

Порта A GPIO 5  

D13

РЕЖИМ 1

(М1)

API-и

X-CUBE-SPN14 API е дефиниран во контролната единица на моторот BSP. Неговите функции го содржат префиксот „BSP_MotorControl_“.

Забелешка: Не се достапни сите функции на овој модул за STSPIN820, а со тоа и за проширување на плочата X-NUCLEO-IHM14A1.
Целосните описи на кориснички API функции и параметри се составени во HTML file во папката софтверска документација.

SampОпис на апликацијата
ПоранешенampАпликацијата со користење на X-NUCLEO-IHM14A1 плочата за проширување со компатибилна плочка за развој на STM32 Nucleo е обезбедена во директориумот Projects, со подготвена за изградба за повеќе IDE (види Дел 2.3.2 Проектна папка).

Водич за поставување на системот

Опис на хардверот
  1. STM32 Nucleo
    Развојните плочи STM32 Nucleo обезбедуваат достапен и флексибилен начин за корисниците да тестираат решенија и да градат прототипови со која било линија на микроконтролер STM32.
    Поддршката за поврзување Arduino и ST morpho конекторите го олеснуваат проширувањето на функционалноста на
    STM32 Nucleo отворена развојна платформа со широк спектар на специјализирани експанзиони табли за избор.
    Плочката STM32 Nucleo не бара посебни сонди бидејќи го интегрира ST-LINK/V2-1 дебагерот/
    програмер.
    Плочката STM32 Nucleo доаѓа со сеопфатната библиотека HAL софтвер STM32 заедно со различен спакуван софтвер на пр.amples за различни IDE (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed и GCC/LLVM).
    Сите корисници на STM32 Nucleo имаат бесплатен пристап до онлајн ресурсите на mbed (компајлер, C/C++ SDK и развивач
    заедница) на www.mbed.org за лесно да се изградат целосни апликации.
    Слика 3. STM32 Nucleo плоча
  2. 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 плочки за проширување.
  3. Разни хардверски компоненти
    За да го завршите поставувањето на хардверот, ќе ви требаат:
    • 1 биполарен (7 до 45 V) степер мотор
    • надворешно еднонасочно напојување со два електрични кабли за плочата X-NUCLEO-IHM14A1
    • USB-кабел од типот A до mini-B за поврзување на STM32 Nucleo плочата со компјутер
  4. Софтверски барања
    Следниве софтверски компоненти се потребни за да се постави соодветната развојна околина за
    креирање апликации базирани на плочката за проширување на двигателот на моторот:
    • X-CUBE-SPN14 STM32Cube проширување за STSPIN820 low voltagи развој на апликација за двигател на чекор мотор. Фирмверот X-CUBE-SPN14 и соодветната документација се достапни на www.st.com.
    • Еден од следниве развојни синџири на алатки и компајлери:
      • Кеил РеалView Синџир на алатки за развој на комплет за микроконтролер (MDK-ARM) V5.27
      • IAR Embedded Workbench за ARM (EWARM) синџир со алатки V8.50
      • Интегрирана развојна средина за STM32 (STM32CubeIDE)
Поставување на хардвер и софтвер

Поставување за возење со еден мотор

Конфигурирајте ги следните џемпери на плочката STM32 Nucleo:

  • JP1 исклучен
  • JP5 (PWR) на страната UV5
  • JP6 (IDD) вклучен
    Конфигурирајте ја плочката за проширување X-NUCLEO-IHM14A1 на овој начин:
  • Прилагодете го потенциометарот R7 на 1 kΩ.
  • Поставете го прекинувачот S1, S2, S3 и S4 на страната што се спушта надолу како на слика 4. Степер мотор X-NUCLEO-IHM14A1
    табла за проширување на возачот. Режимот за микро чекорење се избира преку MODE1, MODE2 и MODE3
    нивоа контролирани од плочката STM32 Nucleo.
    Откако таблата е правилно конфигурирана:
  • Приклучете ја плочката за проширување X-NUCLEO-IHM14A1 на врвот на плочката STM32 Nucleo преку конекторите Arduino UNO
  • Поврзете ја плочката STM32 Nucleo со компјутер со USB кабел преку USB конектор CN1 за да ја напојувате плочата
  • Вклучете ја проширната плоча X-NUCLEO-IHM14A1 со поврзување на Vin и Gnd конекторите со еднонасочно напојување
  • Поврзете го чекорниот мотор со конекторите за мост X-NUCLEO IHM14A1 A+/- и B+/-

Откако системското поставување е подготвено:

  • Отворете го омилениот синџир со алатки
  • Во зависност од плочката STM32 Nucleo, отворете го софтверскиот проект од:
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F401RE-Нуклео за Nucleo STM32F401
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F030R8-Нуклео за Nucleo STM32F334
    • \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
  •  За да ги приспособите стандардните параметри STSPIN820 на вашиот низок волуменtagКарактеристики на чекорен мотор, или:
    • користете BSP_MotorControl_Init со NULL покажувачот и отворете stm32_cube\ Drivers\ BSP\Components\ STSPIN820\ STSPIN820_target_config.h за да ги измените параметрите според вашите потреби
    • – користете BSP_MotorControl_Init со адресата на структурата initDevicesParameters со соодветни вредности.
  • Обновете ги сите fileи вчитајте ја вашата слика во целната меморија.
  • Стартувај го бившиотampле. Моторот автоматски се вклучува (Видете main.c за детали за демо секвенцата).

Историја на ревизии

Датум

Верзија Промени

17-октомври 2017 година

1

Почетно ослободување.

20-јули-2021 година 2

Ажурирана секција 2.3.2 Проектна папка и Дел 3.2 Барања за софтвер. Отстранет дел 2 Што е STM32Cube? и го замени со врска во Воведот.

ВАORTНО ИЗВЕСТУВА --Е - ВЕ СЛЕДНО ПРОЧИТАЈТЕ ВНИМАВАЕ

STMicroelectronics NV и нејзините подружници („ST“) го задржуваат правото да направат промени, корекции, подобрувања, модификации и подобрувања на ST производите и / или на овој документ во кое било време без претходна најава. Купувачите треба да ги добијат најновите релевантни информации за производите ST пред да направат нарачки. Производите на ST се продаваат во согласност со условите и условите за продажба на ST во место за потврда за нарачката.
Купувачите се единствени одговорни за изборот, изборот и употребата на ST производи и ST не превзема никаква одговорност за помош при апликација или дизајн на производи на набавувачи.
Ниту една лиценца, експлицитна или имплицитна, за кое било право на интелектуална сопственост не е дадена од страна на ST овде.
Препродажбата на производите на ST со одредби различни од информациите наведени овде ќе ја поништи секоја гаранција дадена од ST за таков производ.
ST и логото ST се заштитни знаци на ST. За дополнителни информации за ST заштитните знаци, ве молиме погледнете www.st.com/trademarks. Сите други производи или услуги
имињата се сопственост на нивните соодветни сопственици.
Информациите во овој документ ги заменуваат и заменуваат информациите претходно доставени во која било претходна верзија на овој документ.
© 2021 STMicroelectronics – Сите права се задржани

 

Документи / ресурси

ST UM2300 X-CUBE-SPN14 Проширување на софтверот за двигател на чекорен мотор за STM32Cube [pdf] Упатство за користење
UM2300, X-CUBE-SPN14 Проширување на софтвер за двигател на чекор мотор за STM32Cube, UM2300 X-CUBE-SPN14 Проширување на софтверот за двигател на чекори за STM32Cube, X-CUBE-SPN14 Проширување на софтверот за двигател на чекор мотор, Проширување на софтвер за двигатели за STM32 за STM32Cube, проширување за STM32Cube, STM32Cube

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *