ការពង្រីកកម្មវិធីកម្មវិធីបញ្ជាម៉ូទ័រ Stepper UM2300 X-CUBE-SPN14 សម្រាប់សៀវភៅណែនាំអ្នកប្រើប្រាស់ STM32Cube
ការពង្រីកកម្មវិធីបញ្ជាម៉ូទ័រ Stepper UM2300 X-CUBE-SPN14 សម្រាប់ STM32Cube

សេចក្តីផ្តើម

កញ្ចប់ពង្រីក X-CUBE-SPN14 សម្រាប់ STM32Cube ផ្តល់ឱ្យអ្នកនូវការគ្រប់គ្រងពេញលេញនៃប្រតិបត្តិការម៉ូទ័រ stepper ។
នៅពេលរួមបញ្ចូលគ្នាជាមួយនឹងបន្ទះពង្រីក X-NUCLEO-IHM14A1 មួយឬច្រើន កម្មវិធីនេះអនុញ្ញាតឱ្យក្រុមប្រឹក្សាអភិវឌ្ឍន៍ STM32 Nucleo ដែលត្រូវគ្នាដើម្បីគ្រប់គ្រងម៉ូទ័រ stepper មួយ ឬច្រើន។
វាត្រូវបានបង្កើតឡើងនៅលើកំពូលនៃបច្ចេកវិទ្យាសូហ្វវែរ STM32Cube សម្រាប់ភាពងាយស្រួលនៃការដឹកជញ្ជូនតាមមីក្រូកុងទ័រ STM32 ផ្សេងៗគ្នា។
កម្មវិធីមកជាមួយដូចampការអនុវត្តសម្រាប់ម៉ូទ័រ stepper មួយ។ វាអាចប្រើបានជាមួយ NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 ឬ NUCLEO-L053R8 ជាមួយនឹងបន្ទះពង្រីក X-NUCLEO-IHM14A1 ដែលបានម៉ោននៅលើកំពូល។

តំណភ្ជាប់ដែលទាក់ទង
ទស្សនាប្រព័ន្ធអេកូ STM32Cube web ទំព័រនៅលើ www.st.com សម្រាប់ព័ត៌មានបន្ថែម

អក្សរកាត់និងអក្សរកាត់

តារាងទី 1. បញ្ជីអក្សរកាត់

អក្សរកាត់

ការពិពណ៌នា
API

ចំណុចប្រទាក់កម្មវិធីកម្មវិធី

BSP

កញ្ចប់គាំទ្រក្តារ
ស៊ី។ ស៊ី។ អាយ។ អេស

ស្ដង់ដារចំណុចប្រទាក់កម្មវិធី Cortex® microcontroller

ហាល

ស្រទាប់អរូបីផ្នែករឹង
អាយឌីអេ

បរិដ្ឋានអភិវឌ្ឍន៍ចម្រុះ។

LED

ឌីយ៉ូតបញ្ចេញពន្លឺ

ជាងview

កញ្ចប់កម្មវិធី X-CUBE-SPN14 ពង្រីកមុខងាររបស់ STM32Cube ។ លក្ខណៈសំខាន់ៗរបស់វារួមមានៈ

  • ស្រទាប់កម្មវិធីបញ្ជាសម្រាប់ការគ្រប់គ្រងពេញលេញនៃឧបករណ៍ STSPIN820 (កម្មវិធីបញ្ជាម៉ូទ័រ stepper ថាមពលទាប) ដែលរួមបញ្ចូលនៅក្នុងបន្ទះពង្រីក X-NUCLEO-IHM14A1
  • ប៉ារ៉ាម៉ែត្រឧបករណ៍របៀបអាន និងសរសេរ ការកំណត់រចនាសម្ព័ន្ធ GPIO PWM និង IRQ ការបោះជំហានតូច ទីតាំងទិសដៅ ល្បឿន ការបង្កើនល្បឿន ការបន្ថយល្បឿន និងការគ្រប់គ្រងកម្លាំងបង្វិលជុំ ការគ្រប់គ្រងកុងតាក់ពេញជំហានដោយស្វ័យប្រវត្តិ។ impedance ខ្ពស់ ឬជ្រើសរើសរបៀបបញ្ឈប់ បើក និងគ្រប់គ្រងដោយរង់ចាំ
  • ការដោះស្រាយការរំខានដោយកំហុស
  • ការត្រួតពិនិត្យម៉ូទ័រ stepper តែមួយ sampកម្មវិធី le
  • ងាយស្រួលចល័តតាមគ្រួសារ MCU ផ្សេងៗគ្នា សូមអរគុណដល់ STM32Cube
  • លក្ខខណ្ឌអាជ្ញាបណ្ណដែលងាយស្រួលប្រើ និងឥតគិតថ្លៃ

កម្មវិធីអនុវត្តការចុះឈ្មោះ pseudo និងពាក្យបញ្ជាចលនាដោយ៖

  • កំណត់រចនាសម្ព័ន្ធកម្មវិធីកំណត់ម៉ោងដែលប្រើដើម្បីបង្កើតនាឡិកាជំហាន និងលេខtage ឯកសារយោង
  • គ្រប់គ្រងប៉ារ៉ាម៉ែត្រឧបករណ៍ដូចជាការបង្កើនល្បឿន ការបន្ថយល្បឿន អប្បបរមា។ និងអតិបរមា។ ល្បឿន, មុខតំណែងនៅល្បឿន profile ព្រំដែន, ទីតាំងសម្គាល់, របៀបជំហានខ្នាតតូច, ទិសដៅ, ស្ថានភាពចលនា។ល។

កម្មវិធីគ្រប់គ្រងឧបករណ៍ STSPIN820 មួយ។
នៅចុងបញ្ចប់នៃជីពចររបស់កម្មវិធីកំណត់ម៉ោងនីមួយៗ ការហៅត្រឡប់មកវិញត្រូវបានប្រតិបត្តិដើម្បីហៅឧបករណ៍ចាប់នាឡិកាជំហានដែលគ្រប់គ្រងចលនាម៉ូទ័រ
ដោយ​ការ​គ្រប់​គ្រង​:

  • ស្ថានភាពចលនា (ឧ. បញ្ឈប់ម៉ូទ័រនៅគោលដៅគោលដៅ)
  • ទិសដៅម៉ូទ័រតាមរយៈកម្រិត GPIO
  • ទីតាំងម៉ូទ័រដែលទាក់ទង និងដាច់ខាតនៅក្នុង microsteps
  • ល្បឿនតាមរយៈសូន្យ ការបង្កើនល្បឿនវិជ្ជមាន និងអវិជ្ជមាន

ល្បឿនត្រូវបានកំណត់ដោយការផ្លាស់ប្តូរប្រេកង់នាឡិកាជំហាន និងជាជម្រើស របៀបជំហាននៅពេលដែលមុខងារប្តូរជំហានពេញលេញដោយស្វ័យប្រវត្តិត្រូវបានបើក។ កម្មវិធីកំណត់ម៉ោងដែលប្រើសម្រាប់នាឡិកាជំហានត្រូវបានកំណត់ក្នុងទម្រង់ប្រៀបធៀបលទ្ធផល។ ការចាប់យកថ្មីប្រៀបធៀបតម្លៃចុះឈ្មោះត្រូវបានគណនានៅពេលហៅទូរសព្ទដៃនាឡិកាជំហាននីមួយៗ ដើម្បីសម្រេចបាននូវការគ្រប់គ្រងប្រេកង់។
ល្បឿនគឺជាមុខងារលីនេអ៊ែរនៃប្រេកង់នាឡិកាជំហានសម្រាប់របៀប micro-stepping ដែលបានផ្តល់ឱ្យ ដែលអាចផ្លាស់ប្តូរដោយកម្មវិធីពីពេញទៅជំហានទី 1/256 ។
ដើម្បីប្រើបណ្ណាល័យកម្មវិធីបញ្ជា STSPIN820 អ្នកត្រូវតែដំណើរការមុខងារចាប់ផ្តើមដែល៖

  • ដំឡើង GPIOs ដែលត្រូវការដើម្បីបើកស្ពាន និងគ្រប់គ្រងកំហុស pin EN\FAULT, ឧទ្ទិស MODE1,
    ម្ជុលជ្រើសរើសជំហាន MODE2 និង MODE3 ម្ជុល DIR សម្រាប់ទិសដៅម៉ូទ័រ ម្ជុល DECAY សម្រាប់របៀបបំបែក
    ការជ្រើសរើស និងកំណត់ម្ជុលឡើងវិញរង់ចាំ STBY\RESET;
  • ដំឡើងកម្មវិធីកំណត់ម៉ោងនៅក្នុងរបៀបប្រៀបធៀបលទ្ធផលសម្រាប់ម្ជុល STCK និងលេខយោងកម្មវិធីកំណត់ម៉ោងtagជំនាន់ e នៅក្នុងរបៀប PWM សម្រាប់ម្ជុល REF;
  • ផ្ទុកប៉ារ៉ាម៉ែត្រកម្មវិធីបញ្ជាជាមួយនឹងតម្លៃពី stspin820_target_config.h ឬបានកំណត់ក្នុងមុខងារចម្បងដោយប្រើរចនាសម្ព័ន្ធចាប់ផ្តើមជាក់លាក់។
    ប៉ារ៉ាម៉ែត្រកម្មវិធីបញ្ជាអាចត្រូវបានកែប្រែបន្ទាប់ពីការចាប់ផ្តើមដោយហៅមុខងារជាក់លាក់។ អ្នកក៏អាចសរសេរមុខងារ callback ហើយភ្ជាប់វាទៅ៖
  • ទង់បង្អាក់ឧបករណ៍ដោះស្រាយដើម្បីអនុវត្តសកម្មភាពជាក់លាក់នៅពេលដែលមានចរន្តលើស ឬសំឡេងរោទិ៍កម្ដៅត្រូវបានរាយការណ៍
  • កម្មវិធីដោះស្រាយកំហុសដែលត្រូវបានហៅដោយបណ្ណាល័យនៅពេលដែលវារាយការណ៍អំពីកំហុស បញ្ជាចលនាជាបន្តបន្ទាប់រួមមាន:
  • BSP_MotorControl_Move ដើម្បីផ្លាស់ទីចំនួនជំហានដែលបានផ្តល់ឱ្យក្នុងទិសដៅជាក់លាក់មួយ។
  • BSP_MotorControl_GoTo, BSP_MotorControl_GoHome, BSP_MotorControl_GoMark ដើម្បីទៅកាន់ទីតាំងជាក់លាក់មួយដោយប្រើផ្លូវខ្លីបំផុត
  • BSP_MotorControl_CmdGoToDir ដើម្បីទៅក្នុងទិសដៅជាក់លាក់មួយទៅកាន់ទីតាំងជាក់លាក់មួយ។
  • BSP_MotorControl_Run ដើម្បីដំណើរការដោយគ្មានកំណត់

គាំទ្រល្បឿនfile ត្រូវបានគ្រប់គ្រងទាំងស្រុងដោយ microcontroller ។ ម៉ូទ័រចាប់ផ្តើមផ្លាស់ទីនៅការកំណត់ល្បឿនអប្បបរមា 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_WhileActive ចាក់សោការប្រតិបត្តិកម្មវិធីរហូតដល់ម៉ូទ័រឈប់។
BSP_MotorControl_SelectStepMode អាចប្តូររបៀបជំហានពីពេញទៅជំហានទី 1/256។ នៅពេលដែលរបៀបជំហានត្រូវបានផ្លាស់ប្តូរ ឧបករណ៍ និងទីតាំងបច្ចុប្បន្ន និងល្បឿនត្រូវបានកំណត់ឡើងវិញ។

ស្ថាបត្យកម្ម

ការពង្រីកកម្មវិធីនេះអនុលោមតាមស្ថាបត្យកម្ម STM32Cube យ៉ាងពេញលេញ និងពង្រីកវាដើម្បីបើកដំណើរការអភិវឌ្ឍកម្មវិធីដោយប្រើកម្មវិធីបញ្ជាម៉ូទ័រ stepper ។

រូបភាពទី 1. ស្ថាបត្យកម្មកម្មវិធី X-CUBE-SPN14
ស្ថាបត្យកម្ម

កម្មវិធីនេះត្រូវបានផ្អែកលើស្រទាប់អរូបី hardare STM32CubeHAL សម្រាប់ microcontroller STM32 ។ កញ្ចប់ពង្រីក STM32Cube ជាមួយនឹងកញ្ចប់គាំទ្រក្តារ (BSP) សម្រាប់បន្ទះពង្រីកការគ្រប់គ្រងម៉ូទ័រ និងកម្មវិធីបញ្ជាសមាសភាគ BSP សម្រាប់វ៉ុលទាប STSPIN820tage កម្មវិធីបញ្ជាម៉ូទ័រ stepper ។
ស្រទាប់កម្មវិធីដែលប្រើដោយកម្មវិធីកម្មវិធីគឺ៖

  • ស្រទាប់ STM32Cube HAL៖ សំណុំ APIs សាមញ្ញ ទូទៅ និងច្រើន (ចំណុចប្រទាក់កម្មវិធី)
    ដើម្បីធ្វើអន្តរកម្មជាមួយកម្មវិធីខាងលើ បណ្ណាល័យ និងស្រទាប់ជង់។ វាត្រូវបានផ្សំឡើងដោយ APIs ទូទៅ និងផ្នែកបន្ថែមដែលមានមូលដ្ឋាន
    នៅលើស្ថាបត្យកម្មទូទៅ ដើម្បីឱ្យស្រទាប់ដែលបង្កើតនៅលើវា ដូចជាស្រទាប់កណ្តាលអាចដំណើរការបានដោយមិនចាំបាច់មានការកំណត់រចនាសម្ព័ន្ធផ្នែករឹងរបស់ microcontroller Unit (MCU) ជាក់លាក់។ រចនាសម្ព័ននេះធ្វើអោយប្រសើរឡើងនូវលទ្ធភាពប្រើប្រាស់ឡើងវិញនៃកូដបណ្ណាល័យ និងធានានូវភាពងាយស្រួលនៃការចល័តនៅលើឧបករណ៍ផ្សេងទៀត។
    កញ្ចប់គាំទ្រក្តារ (BSP) ស្រទាប់៖ គាំទ្រគ្រឿងកុំព្យូទ័រនៅលើបន្ទះ STM32 Nucleo លើកលែងតែសម្រាប់
    MCU សំណុំ APIs មានកំណត់នេះផ្តល់នូវចំណុចប្រទាក់សរសេរកម្មវិធីសម្រាប់គ្រឿងកុំព្យូទ័រជាក់លាក់មួយចំនួនដូចជា LED និងប៊ូតុងអ្នកប្រើប្រាស់ ហើយជួយកំណត់អត្តសញ្ញាណកំណែក្តារជាក់លាក់។ ការគ្រប់គ្រងម៉ូទ័រ BSP ផ្តល់នូវចំណុចប្រទាក់សរសេរកម្មវិធីសម្រាប់សមាសធាតុកម្មវិធីបញ្ជាម៉ូទ័រផ្សេងៗ។ វាត្រូវបានភ្ជាប់ជាមួយសមាសធាតុ BSP សម្រាប់កម្មវិធីបញ្ជាម៉ូទ័រ STSPIN820 នៅក្នុងកម្មវិធី X-CUBE-SPN14 ។

រចនាសម្ព័ន្ធថត

បង្អួចរចនាសម្ព័ន្ធថត

កម្មវិធីមានទីតាំងនៅក្នុងថតឯកសារសំខាន់ពីរ៖

  • អ្នកបើកបរជាមួយ៖
    • STM32Cube HAL files នៅក្នុងថតរង STM32L0xx_HAL_Driver, STM32F0xx_HAL_Driver, STM32F3xx_HAL_Driver ឬ STM32F4xx_HAL_Driver ។ ទាំងនេះ files ត្រូវបានគេយកដោយផ្ទាល់ពី STM32Cube framework ហើយរួមបញ្ចូលតែអ្វីដែលត្រូវការដើម្បីដំណើរការកម្មវិធីបញ្ជាម៉ូទ័រ examples ។
    • ថតឯកសារ CMSIS ដែលមាន CMSIS (ស្តង់ដារចំណុចប្រទាក់ផ្នែកទន់របស់ឧបករណ៍បញ្ជា microcontroller របស់ Cortex®) ស្រទាប់អរូបីផ្នែករឹងដែលពឹងផ្អែកលើអ្នកលក់សម្រាប់ស៊េរីដំណើរការ Cortex-M ពី ARM ។ ថតនេះក៏មិនផ្លាស់ប្តូរពីក្របខ័ណ្ឌ STM32Cube ដែរ។
    • ថត BSP ជាមួយលេខកូដ files សម្រាប់ការកំណត់រចនាសម្ព័ន្ធ X-NUCLEO-IHM14A1 កម្មវិធីបញ្ជា STSPIN820 និង API គ្រប់គ្រងម៉ូទ័រ។
  • គម្រោង ដែលមានការប្រើប្រាស់ច្រើន ឧamples នៃកម្មវិធីបញ្ជាម៉ូទ័រ STSPIN820 សម្រាប់វេទិកា STM32 Nucleo ផ្សេងៗគ្នា។

ថតឯកសារ BSP
កម្មវិធី X-CUBE-SPN14 រួមមាន BSPs ដែលបានពិពណ៌នានៅក្នុងផ្នែករងខាងក្រោម។

STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
BSPs ទាំងនេះផ្តល់នូវចំណុចប្រទាក់សម្រាប់ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ STM32 Nucleo ដែលត្រូវគ្នាដើម្បីកំណត់រចនាសម្ព័ន្ធ និងប្រើប្រាស់គ្រឿងកុំព្យូទ័ររបស់វាជាមួយនឹងបន្ទះពង្រីក X-NUCLEO-IHM14A1 ។ ថតរងនីមួយៗមាន two.c/.h file គូ៖

  • stm32XXxx_nucleo.c/h៖ ក្របខ័ណ្ឌ STM32Cube ដែលមិនបានកែប្រែទាំងនេះ files ផ្តល់នូវប៊ូតុងអ្នកប្រើប្រាស់ និងមុខងារ LED សម្រាប់បន្ទះ STM32 Nucleo ជាក់លាក់។
  • stm32XXxx_nucleo_ihm14a1.c/h: ទាំងនេះ files ត្រូវបានឧទ្ទិសដល់ការកំណត់រចនាសម្ព័ន្ធនៃ PWMs, GPIOs និងរំខានការបើក/បិទដែលត្រូវការសម្រាប់ប្រតិបត្តិការបន្ទះពង្រីក X NUCLEO-IHM14A1 ។

ការគ្រប់គ្រងម៉ូទ័រ BSP

BSP នេះផ្តល់នូវចំណុចប្រទាក់ទូទៅដើម្បីចូលប្រើមុខងារកម្មវិធីបញ្ជារបស់កម្មវិធីបញ្ជាម៉ូទ័រផ្សេងៗដូចជា L6474, powerSTEP01, L6208 និង STSPIN820 តាមរយៈ MotorControl/motorcontrol.c/h 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គម្រោង le មាននៅក្នុង stm32_cube\Projects\Multi\Examples\MotionControl\:

  • IHM14A1_ExampleFor1Motor ឧamples នៃមុខងារបញ្ជាសម្រាប់ការកំណត់រចនាសម្ព័ន្ធម៉ូទ័រតែមួយ

អតីតample មានថតសម្រាប់ IDE ដែលឆបគ្នានីមួយៗ៖

  • EWARM សម្រាប់ IAR Embedded Workbench
  • MDK-ARM សម្រាប់ ARM/Keil µVision
  • STM32CubeIDE សម្រាប់បរិស្ថានអភិវឌ្ឍន៍រួមបញ្ចូលគ្នាសម្រាប់ STM32

កូដខាងក្រោម files ត្រូវបានរួមបញ្ចូលផងដែរ:

  • inc\main.h៖ បឋមកថាចម្បង file
  • inc\ stm32xxxx_hal_conf.h៖ ការកំណត់រចនាសម្ព័ន្ធ HAL file
  • inc\stm32xxxx_it.h៖ បឋមកថាសម្រាប់ឧបករណ៍ដោះស្រាយការរំខាន
  • src\main.c: កម្មវិធីចម្បង (កូដរបស់ឧ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 មួយ) និងការទំនាក់ទំនងរវាងទាំងពីរត្រូវបានគ្រប់គ្រងតាមរយៈ GPIOs ប្រាំពីរ (STBY\RESET, EN\FAULT, MODE1, MODE2, MODE3, DIR, DECAY pins) និង PWM សម្រាប់ម្ជុល REF . GPIO សម្រាប់ម្ជុល STCK ត្រូវបានកំណត់រចនាសម្ព័ន្ធឱ្យប្រើជាមុខងារជំនួសម៉ោងចេញក្រៅប្រៀបធៀប។
សម្រាប់ការគ្រប់គ្រងការជូនដំណឹងចរន្តលើស និងសីតុណ្ហភាពលើស កម្មវិធី X-CUBE-SPN14 ប្រើការរំខានខាងក្រៅដែលបានកំណត់រចនាសម្ព័ន្ធនៅលើ GPIO ដែលប្រើសម្រាប់ម្ជុល EN\FAULT បន្ទាប់ពីវាបានបើក ឬបិទស្ពានថាមពល។

តារាងទី 2. ធនធានដែលត្រូវការសម្រាប់កម្មវិធី X-CUBE-SPN14

ធនធាន F4xx

ធនធាន F3xx ធនធាន F0xx ធនធាន L0xx ម្ជុល លក្ខណៈពិសេស (បន្ទះ)
ច្រក A GPIO ១០

EXTI15_10_IRQn

ច្រក A GPIO ១០

EXTI15_10_IRQn

ច្រក A GPIO ១០

EXTI4_15_IRQn

ច្រក A GPIO ១០

EXTI4_15_IRQn

 

D2

EN/FAULT

(EN)

ច្រក B GPIO ៣

កម្មវិធីកំណត់ម៉ោង2 Ch2

ច្រក B GPIO ៣

កម្មវិធីកំណត់ម៉ោង2 Ch2

ច្រក B GPIO ៣

កម្មវិធីកំណត់ម៉ោង15 Ch1

ច្រក B GPIO ៣

កម្មវិធីកំណត់ម៉ោង2 Ch2

 

D3

STCK

(CLK)

 ច្រក B GPIO ៣

 

D5

ខូច

(ធ្នូ)

 ច្រក A GPIO ១០  

D7

ទិសដៅ

(DIR)

 ច្រក A GPIO ១០  

D8

STBY/កំណត់ឡើងវិញ

(STBY)

Port C GPIO ៧

កម្មវិធីកំណត់ម៉ោង3 Ch2

ច្រក C GPIO ៧

កម្មវិធីកំណត់ម៉ោង3 Ch2

ច្រក C GPIO ៧

កម្មវិធីកំណត់ម៉ោង3 Ch2

ច្រក C GPIO ៧

កម្មវិធីកំណត់ម៉ោង22 Ch2

 

D9

PWM REF

(REF)

 ច្រក A GPIO ១០

 

D11

MODE3

(M3)

 ច្រក A GPIO ១០

 

D12

MODE2

(M2)

ច្រក A GPIO ១០  

D13

MODE1

(M1)

APIs

X-CUBE-SPN14 API ត្រូវបានកំណត់នៅក្នុង BSP នៃការគ្រប់គ្រងម៉ូទ័រ។ មុខងាររបស់វាមានបុព្វបទ "BSP_MotorControl_" ។

ចំណាំ៖ មិនមែនមុខងារទាំងអស់នៃម៉ូឌុលនេះអាចរកបានសម្រាប់ STSPIN820 ទេ ដូច្នេះហើយបន្ទះពង្រីក X-NUCLEO-IHM14A1 ។
មុខងារ API របស់អ្នកប្រើប្រាស់ពេញលេញ និងការពិពណ៌នាប៉ារ៉ាម៉ែត្រត្រូវបានចងក្រងជា HTML file នៅក្នុងថតឯកសារកម្មវិធី។

Sampការពិពណ៌នាកម្មវិធី
អតីតមួយampកម្មវិធី le ដោយប្រើបន្ទះពង្រីក X-NUCLEO-IHM14A1 ជាមួយនឹងក្រុមប្រឹក្សាអភិវឌ្ឍន៍ STM32 Nucleo ដែលត្រូវគ្នាត្រូវបានផ្តល់ជូននៅក្នុងថតគម្រោង ជាមួយនឹងការត្រៀមរួចរាល់សម្រាប់សាងសង់សម្រាប់ IDE ជាច្រើន (សូមមើលផ្នែក 2.3.2 ថតគម្រោង) ។

ការណែនាំអំពីការដំឡើងប្រព័ន្ធ

ការពិពណ៌នាផ្នែករឹង
  1. នុយក្លេអូ STM32
    ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ 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 និងអ្នកអភិវឌ្ឍន៍
    community) នៅ www.mbed.org ដើម្បីងាយស្រួលបង្កើតកម្មវិធីពេញលេញ។
    រូបភាពទី 3. STM32 Nucleo board
  2. X-NUCLEO-IHM14A1 បន្ទះពង្រីកកម្មវិធីបញ្ជាម៉ូទ័រ stepper
    បន្ទះពង្រីកកម្មវិធីបញ្ជាម៉ូទ័រ X-NUCLEO-IHM14A1 គឺផ្អែកលើកម្មវិធីបញ្ជា monolithic STSPIN820 សម្រាប់ម៉ូទ័រ stepper ។
    វាតំណាងឱ្យដំណោះស្រាយដែលមានតម្លៃសមរម្យ និងងាយស្រួលប្រើសម្រាប់ការបើកបរម៉ូទ័រ stepper នៅក្នុងគម្រោង STM32 Nucleo របស់អ្នក ដោយអនុវត្តកម្មវិធីបើកបរម៉ូតូដូចជាម៉ាស៊ីនបោះពុម្ព 2D/3D មនុស្សយន្ត និងកាមេរ៉ាសុវត្ថិភាព។
    STSPIN820 អនុវត្តការគ្រប់គ្រងចរន្ត PWM ជាមួយនឹងពេលវេលាបិទថេរដែលអាចលៃតម្រូវបានតាមរយៈ resistor ខាងក្រៅ និងដំណោះស្រាយ microstepping រហូតដល់ជំហានទី 256 ។
    បន្ទះពង្រីក X-NUCLEO-IHM14A1 គឺត្រូវគ្នាជាមួយឧបករណ៍ភ្ជាប់ Arduino UNO R3 និងឧបករណ៍ភ្ជាប់ ST morpho ដូច្នេះវាអាចត្រូវបានដោតទៅបន្ទះអភិវឌ្ឍន៍ STM32 Nucleo និងជង់ជាមួយបន្ទះពង្រីក X-NUCLEO បន្ថែម។
  3. សមាសធាតុផ្នែករឹងផ្សេងៗ
    ដើម្បីបញ្ចប់ការដំឡើងផ្នែករឹង អ្នកនឹងត្រូវការ៖
    • ម៉ូទ័រ stepper bipolar 1 (7 ទៅ 45 V)
    • ការផ្គត់ផ្គង់ថាមពល DC ខាងក្រៅជាមួយនឹងខ្សែអគ្គិសនីពីរសម្រាប់បន្ទះ X-NUCLEO-IHM14A1
    • ខ្សែ USB ប្រភេទ A ទៅ mini-B ដើម្បីភ្ជាប់បន្ទះ STM32 Nucleo ទៅកុំព្យូទ័រ
  4. តម្រូវការកម្មវិធី
    សមាសភាគកម្មវិធីខាងក្រោមគឺត្រូវការជាចាំបាច់ដើម្បីរៀបចំបរិយាកាសអភិវឌ្ឍន៍សមរម្យសម្រាប់
    បង្កើតកម្មវិធីដោយផ្អែកលើបន្ទះពង្រីកកម្មវិធីបញ្ជាម៉ូទ័រ៖
    • ការពង្រីក X-CUBE-SPN14 STM32Cube សម្រាប់វ៉ុលទាប STSPIN820tage ការអភិវឌ្ឍន៍កម្មវិធីកម្មវិធីបញ្ជាម៉ូទ័រ stepper ។ កម្មវិធីបង្កប់ X-CUBE-SPN14 និងឯកសារពាក់ព័ន្ធមាននៅលើ www.st.com ។
    • ខ្សែសង្វាក់ឧបករណ៍អភិវឌ្ឍន៍ និងអ្នកចងក្រងមួយក្នុងចំណោមឧបករណ៍អភិវឌ្ឍន៍ខាងក្រោម៖
      • Keil RealView កញ្ចប់ឧបករណ៍អភិវឌ្ឍន៍ Microcontroller (MDK-ARM) V5.27
      • IAR Embedded Workbench សម្រាប់ ARM (EWARM) toolchain V8.50
      • បរិស្ថានអភិវឌ្ឍន៍រួមបញ្ចូលគ្នាសម្រាប់ STM32 (STM32CubeIDE)
ការដំឡើងផ្នែករឹង និងកម្មវិធី

រៀបចំដើម្បីជំរុញម៉ូទ័រតែមួយ

កំណត់រចនាសម្ព័ន្ធ jumpers ខាងក្រោមនៅលើបន្ទះ STM32 Nucleo៖

  • JP1 បិទ
  • JP5 (PWR) នៅខាង UV5
  • JP6 (IDD) បើក
    កំណត់រចនាសម្ព័ន្ធបន្ទះពង្រីក X-NUCLEO-IHM14A1 ដូចនេះ៖
  • Tune R7 potentiometer ទៅ 1 kΩ។
  • កំណត់ S1, S2, S3 និង S4 ប្តូរទៅផ្នែកទាញចុះក្រោម ដូចក្នុងរូបភាពទី 4។ ម៉ូទ័រ stepper X-NUCLEO-IHM14A1
    បន្ទះពង្រីកអ្នកបើកបរ។ របៀបជំហានមីក្រូត្រូវបានជ្រើសរើសតាមរយៈ MODE1, MODE2 និង MODE3
    កម្រិតគ្រប់គ្រងដោយ STM32 Nucleo board ។
    នៅពេលដែលក្រុមប្រឹក្សាភិបាលត្រូវបានរៀបចំយ៉ាងត្រឹមត្រូវ៖
  • ដោតបន្ទះពង្រីក X-NUCLEO-IHM14A1 នៅលើកំពូលនៃបន្ទះ STM32 Nucleo តាមរយៈឧបករណ៍ភ្ជាប់ Arduino UNO
  • ភ្ជាប់បន្ទះ STM32 Nucleo ទៅកុំព្យូទ័រដោយប្រើខ្សែ USB តាមរយៈឧបករណ៍ភ្ជាប់ USB CN1 ដើម្បីផ្តល់ថាមពលដល់ក្តារ។
  • ថាមពលនៅលើបន្ទះពង្រីក X-NUCLEO-IHM14A1 ដោយភ្ជាប់ឧបករណ៍ភ្ជាប់ Vin និង Gnd ទៅការផ្គត់ផ្គង់ថាមពល DC
  • ភ្ជាប់ម៉ូទ័រ stepper ទៅឧបករណ៍ភ្ជាប់ស្ពាន X-NUCLEO IHM14A1 A+/- និង B+/-

នៅពេលដែលការរៀបចំប្រព័ន្ធរួចរាល់៖

  • បើកខ្សែសង្វាក់ឧបករណ៍ដែលអ្នកចូលចិត្ត
  • អាស្រ័យលើបន្ទះ STM32 Nucleo សូមបើកគម្រោងកម្មវិធីពី៖
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F401RE-Nucleo សម្រាប់ Nucleo STM32F401
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F030R8-Nucleo សម្រាប់ Nucleo STM32F334
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32F030R8-Nucleo សម្រាប់ Nucleo STM32F030
    • \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32L053R8-Nucleo សម្រាប់ Nucleo STM32L053
  •  ដើម្បីកែសម្រួលប៉ារ៉ាម៉ែត្រ STSPIN820 លំនាំដើមទៅនឹងវ៉ុលទាបរបស់អ្នក។tagលក្ខណៈម៉ូទ័រ stepper ទាំង៖
    • ប្រើ BSP_MotorControl_Init ជាមួយទ្រនិច NULL ហើយបើក stm32_cube\ Drivers\ BSP\Components\ STSPIN820\ STSPIN820_target_config.h ដើម្បីកែប្រែប៉ារ៉ាម៉ែត្រតាមតម្រូវការរបស់អ្នក។
    • - ប្រើ BSP_MotorControl_Init ជាមួយអាសយដ្ឋាននៃរចនាសម្ព័ន្ធ initDevicesParameters ជាមួយនឹងតម្លៃសមស្រប។
  • កសាងឡើងវិញទាំងអស់។ files ហើយផ្ទុករូបភាពរបស់អ្នកទៅក្នុងអង្គចងចាំគោលដៅ។
  • រត់អតីតampលេ ម៉ូទ័រចាប់ផ្តើមដោយស្វ័យប្រវត្តិ (សូមមើល main.c សម្រាប់ព័ត៌មានលម្អិតនៃលំដាប់សាកល្បង)។

ប្រវត្តិនៃការពិនិត្យឡើងវិញ

កាលបរិច្ឆេទ

កំណែ ការផ្លាស់ប្តូរ

២៥-តុលា-២០០៧

1

ការចេញផ្សាយដំបូង។

០២-កក្កដា-២០០៩ 2

បានធ្វើបច្ចុប្បន្នភាពផ្នែក 2.3.2 ថតគម្រោង និងផ្នែក 3.2 តម្រូវការកម្មវិធី។ ដកចេញផ្នែកទី 2 តើ STM32Cube គឺជាអ្វី? ហើយជំនួសវាដោយតំណនៅក្នុងសេចក្តីផ្តើម។

ការជូនដំណឹងសំខាន់ - សូមអានដោយយកចិត្តទុកដាក់

ក្រុមហ៊ុន STMicroelectronics NV និងក្រុមហ៊ុនបុត្រសម្ព័ន្ធរបស់ខ្លួន (អេស។ ភី។ ) រក្សាសិទ្ធិក្នុងការធ្វើការផ្លាស់ប្តូរការកែលម្អការផ្លាស់ប្តូរការកែលម្អនិងការកែលម្អផលិតផលអេសធីនិង / ឬចំពោះឯកសារនេះគ្រប់ពេលដោយគ្មានការជូនដំណឹងជាមុន។ អ្នកទិញគួរតែទទួលបានព័ត៌មានពាក់ព័ន្ធចុងក្រោយបំផុតលើផលិតផលអេសអិលមុនពេលធ្វើការបញ្ជាទិញ។ ផលិតផលអេសអិលត្រូវបានលក់ដោយអនុលោមតាមល័ក្ខខ័ណ្ឌរបស់ក្រុមហ៊ុនអេសអេសដែលត្រូវបានដាក់ឱ្យដំណើរការនៅពេលនៃការទទួលស្គាល់ការបញ្ជាទិញ។
អ្នកទិញទទួលខុសត្រូវទាំងស្រុងចំពោះជម្រើសការជ្រើសរើសនិងការប្រើប្រាស់ផលិតផលអេសធីនិងអេសអេសមិនទទួលខុសត្រូវចំពោះជំនួយក្នុងការដាក់ពាក្យសុំឬការរចនាផលិតផលរបស់អ្នកទិញឡើយ។
គ្មានអាជ្ញាប័ណ្ណ បង្ហាញ ឬបង្កប់ន័យចំពោះសិទ្ធិកម្មសិទ្ធិបញ្ញាណាមួយត្រូវបានផ្តល់ដោយ ST នៅទីនេះ។
ការលក់បន្តនៃផលិតផល ST ជាមួយនឹងបទប្បញ្ញត្តិខុសពីព័ត៌មានដែលមានចែងនៅទីនេះ នឹងត្រូវចាត់ទុកជាមោឃៈនូវការធានាណាមួយដែលផ្តល់ដោយ ST សម្រាប់ផលិតផលនោះ។
ST និងនិមិត្តសញ្ញា ST គឺជាពាណិជ្ជសញ្ញារបស់ ST ។ សម្រាប់ព័ត៌មានបន្ថែមអំពីពាណិជ្ជសញ្ញា ST សូមមើល www.st.com/trademarks. ផលិតផល ឬសេវាកម្មផ្សេងទៀតទាំងអស់។
ឈ្មោះគឺជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន។
ព័ត៌មាននៅក្នុងឯកសារនេះជំនួស និងជំនួសព័ត៌មានដែលបានផ្តល់ពីមុននៅក្នុងកំណែមុននៃឯកសារនេះ។
© 2021 STMicroelectronics - រក្សាសិទ្ធិគ្រប់យ៉ាង

 

ឯកសារ/ធនធាន

ការពង្រីកកម្មវិធីបញ្ជាម៉ូទ័រ ST UM2300 X-CUBE-SPN14 សម្រាប់ STM32Cube [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់
UM2300, X-CUBE-SPN14 Stepper Motor Driver Software Expansion for STM32Cube, UM2300 X-CUBE-SPN14 Stepper Motor Driver Software Expansion for STM32Cube, X-CUBE-SPN14 Stepper Motor Driver Software Expansion, Driver Software Expansion for STM32C សម្រាប់ STM32Cube, ការពង្រីកសម្រាប់ STM32Cube, STM32Cube

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *