UM2300 X-CUBE-SPN14 ການຂະຫຍາຍຊອບແວໄດເວີມໍເຕີ Stepper ສໍາລັບຄູ່ມືຜູ້ໃຊ້ STM32Cube
ແນະນຳ
ຊຸດຂະຫຍາຍ X-CUBE-SPN14 ສໍາລັບ STM32Cube ໃຫ້ທ່ານຄວບຄຸມການເຮັດວຽກຂອງມໍເຕີເຕັມຮູບແບບ.
ເມື່ອປະສົມປະສານກັບຫນຶ່ງຫຼືຫຼາຍກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1, ຊອບແວນີ້ອະນຸຍາດໃຫ້ກະດານພັດທະນາ STM32 Nucleo ທີ່ເຂົ້າກັນໄດ້ເພື່ອຄວບຄຸມມໍເຕີ stepper ຫນຶ່ງຫຼືຫຼາຍ.
ມັນຖືກສ້າງຢູ່ເທິງສຸດຂອງເຕັກໂນໂລຊີຊອບແວ STM32Cube ສໍາລັບການເຄື່ອນຍ້າຍໄດ້ງ່າຍໃນທົ່ວ microcontrollers STM32 ທີ່ແຕກຕ່າງກັນ.
ຊອບແວທີ່ມາພ້ອມກັບເປັນample ການປະຕິບັດສໍາລັບ motor stepper ຫນຶ່ງ. ມັນເຂົ້າກັນໄດ້ກັບກະດານພັດທະນາ NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 ຫຼື NUCLEO-L053R8 ທີ່ມີກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1 ຢູ່ເທິງ.
ການເຊື່ອມຕໍ່ທີ່ກ່ຽວຂ້ອງ
ໄປຢ້ຽມຢາມລະບົບນິເວດ STM32Cube web ຫນ້າຢູ່ www.st.com ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ
ຕົວຫຍໍ້ ແລະຕົວຫຍໍ້
ຕາຕະລາງ 1. ບັນຊີລາຍຊື່ຂອງຕົວຫຍໍ້
ຕົວຫຍໍ້ |
ລາຍລະອຽດ |
API |
ການໂຕ້ຕອບການຂຽນໂປລແກລມແອັບພລິເຄຊັນ |
BSP |
ຊຸດສະຫນັບສະຫນູນກະດານ |
CMSIS |
ມາດຕະຖານການໂຕ້ຕອບຊອບແວ Cortex® microcontroller |
HAL |
ຊັ້ນ abstraction ຮາດແວ |
IDE |
ສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານ |
LED |
ໄດໂອດປ່ອຍແສງ |
ເກີນview
ຊຸດຊອບແວ X-CUBE-SPN14 ຂະຫຍາຍການເຮັດວຽກຂອງ STM32Cube. ຄຸນນະສົມບັດທີ່ສໍາຄັນຂອງຕົນປະກອບມີ:
- ຊັ້ນໄດເວີສໍາລັບການຈັດການທີ່ສົມບູນແບບຂອງອຸປະກອນ STSPIN820 (ໄດເວີມໍເຕີພະລັງງານຕ່ໍາ) ປະສົມປະສານຢູ່ໃນກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1
- ຕົວກໍານົດການອຸປະກອນການອ່ານແລະຂຽນໂຫມດ, GPIO, PWM ແລະ IRQ ການຕັ້ງຄ່າ, micro-stepping, ຕໍາແຫນ່ງທິດທາງ, ຄວາມໄວ, ເລັ່ງ, deceleration ແລະ torque ການຄວບຄຸມ, ການຈັດການສະຫຼັບເຕັມຂັ້ນຕອນອັດຕະໂນມັດ; impedance ສູງຫຼືຖືການເລືອກຮູບແບບການຢຸດເຊົາການ, ເປີດໃຊ້ງານແລະການຈັດການສະແຕນໂດຍ
- ການຈັດການຂັດຂວາງຜິດພາດ
- ການຄວບຄຸມມໍເຕີດຽວ stepper sampຄໍາຮ້ອງສະຫມັກ le
- ການພົກພາງ່າຍໃນທົ່ວຄອບຄົວ MCU ທີ່ແຕກຕ່າງກັນ, ຂໍຂອບໃຈກັບ STM32Cube
- ຟຣີ, ເງື່ອນໄຂໃບອະນຸຍາດເປັນມິດກັບຜູ້ໃຊ້
ຊອບແວປະຕິບັດການລົງທະບຽນ pseudo ແລະຄໍາສັ່ງການເຄື່ອນໄຫວໂດຍ:
- ການຕັ້ງຄ່າໂມງຈັບເວລາທີ່ໃຊ້ເພື່ອສ້າງໂມງກ້າວ ແລະ voltage ການອ້າງອີງ
- ການຄຸ້ມຄອງຕົວກໍານົດການອຸປະກອນເຊັ່ນ: ການເລັ່ງ, deceleration, min. ແລະສູງສຸດ. ຄວາມໄວ, ຕໍາແຫນ່ງທີ່ມີຄວາມໄວ profile ເຂດແດນ, ຕຳແໜ່ງເຄື່ອງໝາຍ, ໂໝດກ້າວຍ່າງຈຸນລະພາກ, ທິດທາງ, ສະຖານະການເຄື່ອນໄຫວ, ແລະອື່ນໆ.
ຊອບແວຈັດການກັບອຸປະກອນ STSPIN820 ອັນໜຶ່ງ.
ໃນແຕ່ລະຈຸດສິ້ນສຸດຂອງກໍາມະຈອນຈັບເວລາ, ມີການໂທຫາກັບຄືນໄປບ່ອນເພື່ອໂທຫາຕົວຈັບໂມງຂັ້ນຕອນທີ່ຄວບຄຸມການເຄື່ອນໄຫວຂອງມໍເຕີ.
ໂດຍການຄຸ້ມຄອງ:
- ສະຖານະພາບການເຄື່ອນໄຫວ (ເຊັ່ນ: ຢຸດ motor ຢູ່ທີ່ຈຸດຫມາຍປາຍທາງ)
- ທິດທາງ motor ຜ່ານລະດັບ GPIO
- ຕໍາແຫນ່ງມໍເຕີທີ່ກ່ຽວຂ້ອງແລະຢ່າງແທ້ຈິງໃນ microsteps
- ຄວາມໄວໂດຍຜ່ານສູນ, ຄວາມເລັ່ງທາງບວກແລະທາງລົບ
ຄວາມໄວແມ່ນຖືກກໍານົດໂດຍການປ່ຽນແປງຄວາມຖີ່ຂອງໂມງຂັ້ນຕອນແລະ, ທາງເລືອກ, ໂຫມດຂັ້ນຕອນເມື່ອຄຸນສົມບັດສະຫຼັບຂັ້ນຕອນເຕັມອັດຕະໂນມັດຖືກເປີດໃຊ້. ໂມງຈັບເວລາທີ່ໃຊ້ສຳລັບໂມງກ້າວຖືກຕັ້ງຢູ່ໃນໂໝດປຽບທຽບຜົນອອກມາ. ການຈັບພາບໃຫມ່ປຽບທຽບມູນຄ່າການລົງທະບຽນແມ່ນຄິດໄລ່ໃນແຕ່ລະຂັ້ນຕອນການໂທຕົວຈັບໂມງເພື່ອບັນລຸການຄວບຄຸມຄວາມຖີ່.
ຄວາມໄວແມ່ນຫນ້າທີ່ເສັ້ນຊື່ຂອງຄວາມຖີ່ຂອງໂມງຂັ້ນຕອນສໍາລັບຮູບແບບ micro-stepping ທີ່ໃຫ້, ເຊິ່ງສາມາດປ່ຽນແປງໄດ້ໂດຍຊອບແວຈາກເຕັມໄປຫາຂັ້ນຕອນທີ 1/256.
ເພື່ອໃຊ້ຫ້ອງສະຫມຸດໄດເວີ STSPIN820, ທ່ານຕ້ອງດໍາເນີນການຟັງຊັນການເລີ່ມຕົ້ນທີ່:
- ຕັ້ງຄ່າ GPIOs ທີ່ຈໍາເປັນເພື່ອເປີດໃຊ້ຂົວແລະຈັດການຄວາມຜິດ pin EN\FAULT, ອຸທິດ MODE1,
ເຂັມເລືອກຂັ້ນຕອນ MODE2 ແລະ MODE3, pin DIR ສໍາລັບທິດທາງ motor, pin DECAY ສໍາລັບຮູບແບບການທໍາລາຍ
ການເລືອກ ແລະ pin ຣີເຊັດສະແຕນບາຍ STBY\RESET; - ຕັ້ງຄ່າໂມງຈັບເວລາໃນໂຫມດປຽບທຽບຜົນຜະລິດສໍາລັບ pin STCK ແລະ timer reference voltage ການຜະລິດໃນຮູບແບບ PWM ສໍາລັບ PIN 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 ຄ່າເລັ່ງ.
ຖ້າຕໍາແຫນ່ງເປົ້າຫມາຍຂອງຄໍາສັ່ງການເຄື່ອນໄຫວຢູ່ໄກພຽງພໍ, ມໍເຕີປະຕິບັດການເຄື່ອນໄຫວ trapezoidal ໂດຍ:
- ການເລັ່ງກັບຕົວກໍານົດການເລັ່ງອຸປະກອນ
- ຄົງທີ່ຢູ່ທີ່ BSP_MotorControl_SetMaxSpeed ຄວາມໄວສູງສຸດ
- ຊ້າລົງໂດຍ BSP_MotorControl_SetDeceleration
- ຢຸດຢູ່ທີ່ຈຸດຫມາຍປາຍທາງ
ຖ້າຕໍາແຫນ່ງເປົ້າຫມາຍຢູ່ໃກ້ເກີນໄປສໍາລັບມໍເຕີສາມາດບັນລຸຄວາມໄວສູງສຸດ, ມັນປະຕິບັດການເຄື່ອນໄຫວສາມຫຼ່ຽມທີ່ກ່ຽວຂ້ອງກັບ: - ການເລັ່ງ
- ການຊັກຊ້າ
- ຢຸດຢູ່ທີ່ຈຸດຫມາຍປາຍທາງ
ຄໍາສັ່ງການເຄື່ອນໄຫວສາມາດຖືກຢຸດໄດ້ທຸກເວລາດ້ວຍ BSP_MotorControl_SoftStop ຄ່ອຍໆຫຼຸດລົງຄວາມໄວໂດຍໃຊ້ຕົວກໍານົດການ deceleration ຫຼືຄໍາສັ່ງ BSP_MotorControl_HardStop ເຊິ່ງເຮັດໃຫ້ມໍເຕີຢຸດທັນທີ. ຂົວພະລັງງານຖືກປິດໃຊ້ງານໂດຍອັດຕະໂນມັດເມື່ອມໍເຕີຢຸດຖ້າໂໝດຢຸດ HIZ_MODE ໄດ້ຖືກຕັ້ງໄວ້ກ່ອນໜ້ານີ້ (BSP_MotorControl_SetStopMode).
ທິດທາງ, ຄວາມໄວ, ຄວາມເລັ່ງແລະການຊ້າສາມາດປ່ຽນແປງໄດ້ບໍ່ວ່າຈະໃນເວລາທີ່ມໍເຕີຢຸດຫຼືໃນເວລາທີ່ການເຄື່ອນໄຫວໄດ້ຖືກຮ້ອງຂໍຜ່ານ BSP_MotorControl_Run.
ເພື່ອສະກັດຄໍາສັ່ງໃຫມ່ກ່ອນທີ່ຈະສໍາເລັດຂອງຄໍາສັ່ງທີ່ຜ່ານມາ, BSP_MotorControl_WhileActive locks ການປະຕິບັດໂຄງການຈົນກ່ວາ motor ຢຸດ.
BSP_MotorControl_SelectStepMode ສາມາດປ່ຽນໂໝດຂັ້ນຕອນຈາກເຕັມໄປເປັນຂັ້ນຕອນທີ 1/256. ເມື່ອຮູບແບບຂັ້ນຕອນຖືກປ່ຽນແປງ, ອຸປະກອນແລະຕໍາແຫນ່ງໃນປັດຈຸບັນແລະຄວາມໄວຈະຖືກປັບຄືນໃຫມ່.
ສະຖາປັດຕະຍະກໍາ
ການຂະຫຍາຍຊອບແວນີ້ປະຕິບັດຕາມສະຖາປັດຕະຍະກໍາ STM32Cube ຢ່າງສົມບູນແລະຂະຫຍາຍມັນເພື່ອໃຫ້ສາມາດພັດທະນາແອັບພລິເຄຊັນໂດຍໃຊ້ໄດເວີມໍເຕີ stepper.
ຮູບ 1. ສະຖາປັດຕະຍະກຳຊອບແວ X-CUBE-SPN14
ຊອບແວແມ່ນອີງໃສ່ຊັ້ນ abstraction hardare STM32CubeHAL ສໍາລັບ microcontroller STM32. ຊຸດດັ່ງກ່າວຂະຫຍາຍ STM32Cube ດ້ວຍຊຸດສະຫນັບສະຫນູນກະດານ (BSP) ສໍາລັບກະດານຂະຫຍາຍການຄວບຄຸມມໍເຕີແລະໄດເວີອົງປະກອບ BSP ສໍາລັບ STSPIN820 ຕ່ໍາ.tage stepper motor driver.
ຊັ້ນຊອບແວທີ່ໃຊ້ໂດຍຊອບແວຄໍາຮ້ອງສະຫມັກແມ່ນ:
- ຊັ້ນ STM32Cube HAL: ຊຸດ APIs ແບບງ່າຍດາຍ, ທົ່ວໄປ ແລະຫຼາຍຕົວ (ການໂຕ້ຕອບການຂຽນໂປຣແກຣມແອັບພລິເຄຊັນ)
ເພື່ອໂຕ້ຕອບກັບແອັບພລິເຄຊັນເທິງ, ຫ້ອງສະໝຸດ ແລະຊັ້ນວາງ stack. ມັນປະກອບດ້ວຍ 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 ແລະພຽງແຕ່ປະກອບມີສິ່ງທີ່ຕ້ອງການເພື່ອດໍາເນີນການ motor driver 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. ແຕ່ລະໂຟເດີຍ່ອຍມີສອງ.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.). ໂຄງປະກອບການນີ້ກໍານົດບັນຊີລາຍຊື່ຂອງຕົວຊີ້ຟັງຊັນທີ່ເຕັມໄປໃນລະຫວ່າງການ instantiation ຂອງມັນຢູ່ໃນອົງປະກອບໄດເວີມໍເຕີທີ່ສອດຄ້ອງກັນ. ສໍາລັບ X-CUBE-SPN14, ໂຄງສ້າງແມ່ນເອີ້ນວ່າ stspin820Drv (ເບິ່ງ file: BSP\Components\stspin820\stspin820.c).
ເນື່ອງຈາກ BSP ຄວບຄຸມມໍເຕີແມ່ນທົ່ວໄປສໍາລັບກະດານຂະຫຍາຍໄດເວີມໍເຕີທັງຫມົດ, ບາງຫນ້າທີ່ບໍ່ສາມາດໃຊ້ໄດ້ສໍາລັບກະດານຂະຫຍາຍ. ຟັງຊັນທີ່ບໍ່ສາມາດໃຊ້ໄດ້ຈະຖືກແທນທີ່ດ້ວຍຕົວຊີ້ null ໃນລະຫວ່າງການກະຕຸ້ນໂຄງສ້າງ 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, ຫນຶ່ງ example ໂຄງການແມ່ນມີຢູ່ໃນ stm32_cube\Projects\Multi\Examples\MotionControl\:
- IHM14A1_ExampleFor1Motor examples of control functions for single-motor configurations
ອະດີດ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: ໂປຣແກຣມຫຼັກ (ລະຫັດຂອງ example ອີງໃສ່ຫ້ອງສະຫມຸດຄວບຄຸມມໍເຕີສໍາລັບ 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 pin . GPIO ສໍາລັບ pin STCK ໄດ້ຖືກຕັ້ງຄ່າໃຫ້ໃຊ້ເປັນ TIMER OUTPUT COMPARE ຟັງຊັນສຳຮອງ.
ສໍາລັບການຈັດການຂອງ overcurrent ແລະສັນຍານເຕືອນອຸນຫະພູມ overtemperature, ຊອບແວ X-CUBE-SPN14 ໃຊ້ interrupt ພາຍນອກທີ່ກໍາຫນົດຄ່າຢູ່ໃນ GPIO ທີ່ໃຊ້ສໍາລັບ pin EN\FAULT, ຫຼັງຈາກທີ່ມັນໄດ້ເປີດຫຼືປິດຂົວພະລັງງານ.
ຕາຕະລາງ 2. ຊັບພະຍາກອນທີ່ຕ້ອງການສໍາລັບຊອບແວ X-CUBE-SPN14
ຊັບພະຍາກອນ F4xx |
ຊັບພະຍາກອນ F3xx | ຊັບພະຍາກອນ F0xx | ຊັບພະຍາກອນ L0xx | ປັກໝຸດ | ຄຸນສົມບັດ (ກະດານ) |
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 ໂມງຈັບເວລາ2 Ch2 |
Port B GPIO 3
ໂມງຈັບເວລາ2 Ch2 |
Port B GPIO 3
ໂມງຈັບເວລາ15 Ch1 |
Port B GPIO 3
ໂມງຈັບເວລາ2 Ch2 |
D3 |
STCK
(CLK) |
Port B GPIO 4 |
D5 |
ເສື່ອມໂຊມ
(DEC) |
|||
Port A GPIO 8 |
D7 |
ທິດທາງ (DIR) |
|||
Port A GPIO 9 |
D8 |
STBY/ຣີເຊັດ (STBY) |
|||
Port C GPIO 7 ໂມງຈັບເວລາ3 Ch2 |
Port C GPIO 7
ໂມງຈັບເວລາ3 Ch2 |
Port C GPIO 7
ໂມງຈັບເວລາ3 Ch2 |
Port C GPIO 7
ໂມງຈັບເວລາ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) |
APIs
X-CUBE-SPN14 API ຖືກກໍານົດໄວ້ໃນ BSP ຄວບຄຸມມໍເຕີ. ຫນ້າທີ່ຂອງມັນປະກອບດ້ວຍ "BSP_MotorControl_" ຄໍານໍາຫນ້າ.
ໝາຍເຫດ: ບໍ່ແມ່ນທຸກໜ້າທີ່ຂອງໂມດູນນີ້ສຳລັບ STSPIN820 ແລະດ້ວຍເຫດນີ້ກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1.
ຟັງຊັນ API ຜູ້ໃຊ້ເຕັມແລະຄໍາອະທິບາຍພາລາມິເຕີຖືກລວບລວມໃນ HTML file ຢູ່ໃນໂຟນເດີເອກະສານຂອງຊອບແວ.
Sampຄໍາອະທິບາຍຄໍາຮ້ອງສະຫມັກ
ອະດີດample ຄໍາຮ້ອງສະຫມັກທີ່ໃຊ້ກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1 ທີ່ມີກະດານພັດທະນາ STM32 Nucleo ທີ່ເຂົ້າກັນໄດ້ແມ່ນສະຫນອງໃຫ້ຢູ່ໃນໄດເລກະທໍລີໂຄງການ, ພ້ອມທີ່ຈະສ້າງສໍາລັບ IDE ຫຼາຍ (ເບິ່ງພາກ 2.3.2 ໂຟນເດີໂຄງການ).
ຄູ່ມືການຕິດຕັ້ງລະບົບ
ລາຍລະອຽດຂອງຮາດແວ
- ນິວຄລີໂອ STM32
ກະດານພັດທະນານິວເຄລຍ STM32 ສະຫນອງວິທີການທີ່ມີລາຄາບໍ່ແພງແລະມີຄວາມຍືດຫຍຸ່ນສໍາລັບຜູ້ໃຊ້ໃນການທົດສອບການແກ້ໄຂແລະສ້າງຕົວແບບດ້ວຍສາຍ microcontroller STM32 ໃດໆ.
ສະຫນັບສະຫນູນການເຊື່ອມຕໍ່ Arduino ແລະ ST morpho connectors ເຮັດໃຫ້ມັນງ່າຍທີ່ຈະຂະຫຍາຍການເຮັດວຽກຂອງ
ແພລະຕະຟອມການພັດທະນາແບບເປີດ STM32 Nucleo ທີ່ມີກະດານຂະຫຍາຍພິເສດທີ່ຫຼາກຫຼາຍໃຫ້ເລືອກ.
ກະດານ STM32 Nucleo ບໍ່ຈໍາເປັນຕ້ອງມີ probes ແຍກຕ່າງຫາກຍ້ອນວ່າມັນປະສົມປະສານ ST-LINK / V2-1 debugger /
ໂປຣແກຣມເມີ.
ກະດານ STM32 Nucleo ມາພ້ອມກັບຫ້ອງສະຫມຸດ HAL ຊອບແວ STM32 ທີ່ສົມບູນແບບພ້ອມກັບຊອບແວຫຸ້ມຫໍ່ຕ່າງໆ examples ສໍາລັບ IDE ທີ່ແຕກຕ່າງກັນ (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed ແລະ GCC/ LLVM).
ຜູ້ໃຊ້ STM32 Nucleo ທັງໝົດມີການເຂົ້າເຖິງຊັບພະຍາກອນອອນໄລນ໌ mbed ໄດ້ຟຣີ (ຜູ້ລວບລວມຂໍ້ມູນ, C/C++ SDK ແລະນັກພັດທະນາ
community) ຢູ່ www.mbed.org ເພື່ອສ້າງແອັບພລິເຄຊັນທີ່ສົມບູນແບບງ່າຍດາຍ.
ຮູບທີ 3. STM32 Nucleo board
- X-NUCLEO-IHM14A1 ກະດານຂະຫຍາຍໄດເວີມໍເຕີ stepper
ກະດານຂະຫຍາຍໄດເວີມໍເຕີ X-NUCLEO-IHM14A1 ແມ່ນອີງໃສ່ໄດເວີ STSPIN820 monolithic ສໍາລັບມໍເຕີ stepper.
ມັນສະແດງເຖິງການແກ້ໄຂທີ່ສາມາດຊື້ໄດ້, ໃຊ້ງ່າຍສໍາລັບການຂັບລົດ stepper motors ໃນໂຄງການ STM32 Nucleo ຂອງທ່ານ, ປະຕິບັດຄໍາຮ້ອງສະຫມັກການຂັບລົດ motor ເຊັ່ນ: ເຄື່ອງພິມ 2D / 3D, ຫຸ່ນຍົນແລະກ້ອງຖ່າຍຮູບຄວາມປອດໄພ.
STSPIN820 ປະຕິບັດການຄວບຄຸມປະຈຸບັນ PWM ທີ່ມີເວລາປິດຄົງທີ່ທີ່ສາມາດປັບໄດ້ຜ່ານຕົວຕ້ານທານພາຍນອກແລະຄວາມລະອຽດ microstepping ເຖິງຂັ້ນຕອນທີ 256.
ກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1 ແມ່ນເຂົ້າກັນໄດ້ກັບຕົວເຊື່ອມຕໍ່ Arduino UNO R3 ແລະຕົວເຊື່ອມຕໍ່ ST morpho, ດັ່ງນັ້ນມັນຈຶ່ງສາມາດສຽບກັບກະດານພັດທະນາ STM32 Nucleo ແລະ stacked ກັບກະດານຂະຫຍາຍ X-NUCLEO ເພີ່ມເຕີມ.
- ອົງປະກອບຮາດແວອື່ນໆ
ເພື່ອສໍາເລັດການຕິດຕັ້ງຮາດແວ, ທ່ານຈະຕ້ອງ:- 1 ມໍເຕີ bipolar (7 ຫາ 45 V) stepper motor
- ການສະຫນອງພະລັງງານ DC ພາຍນອກທີ່ມີສອງສາຍໄຟຟ້າສໍາລັບກະດານ X-NUCLEO-IHM14A1
- ສາຍ USB ປະເພດ A ຫາ mini-B ເພື່ອເຊື່ອມຕໍ່ກະດານ STM32 Nucleo ກັບ PC
- ຄວາມຕ້ອງການຊອບແວ
ອົງປະກອບຂອງຊອບແວຕໍ່ໄປນີ້ແມ່ນຈໍາເປັນເພື່ອກໍານົດສະພາບແວດລ້ອມການພັດທະນາທີ່ເຫມາະສົມສໍາລັບ
ການສ້າງຄໍາຮ້ອງສະຫມັກໂດຍອີງໃສ່ກະດານຂະຫຍາຍໄດເວີມໍເຕີ:- ການຂະຫຍາຍ X-CUBE-SPN14 STM32Cube ສໍາລັບ STSPIN820 volt ຕ່ໍາtage ການພັດທະນາຄໍາຮ້ອງສະຫມັກໄດເວີ stepper motor. ເຟີມແວ X-CUBE-SPN14 ແລະເອກະສານທີ່ກ່ຽວຂ້ອງແມ່ນມີຢູ່ໃນ www.st.com.
- ຫນຶ່ງໃນລະບົບຕ່ອງໂສ້ການພັດທະນາເຄື່ອງມືແລະລວບລວມຂໍ້ມູນຕໍ່ໄປນີ້:
- Keil RealView ຊຸດການພັດທະນາໄມໂຄຣຄອນໂທລເລີ (MDK-ARM) toolchain V5.27
- IAR Embedded Workbench ສໍາລັບ ARM (EWARM) toolchain V8.50
- ສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານສໍາລັບ STM32 (STM32CubeIDE)
ການຕິດຕັ້ງຮາດແວ ແລະຊອບແວ
ຕັ້ງຄ່າເພື່ອຂັບມໍເຕີດຽວ
ຕັ້ງຄ່າ jumpers ຕໍ່ໄປນີ້ຢູ່ໃນກະດານ STM32 Nucleo:
- JP1 ປິດ
- JP5 (PWR) ຢູ່ດ້ານ UV5
- JP6 (IDD) on
ຕັ້ງຄ່າກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1 ດັ່ງນັ້ນ: - Tune R7 potentiometer ເປັນ 1 kΩ.
- ຕັ້ງ S1, S2, S3 ແລະ S4 ສະຫຼັບໄປຂ້າງທີ່ດຶງລົງໃນຮູບ 4. Stepper motor X-NUCLEO-IHM14A1
ກະດານຂະຫຍາຍຄົນຂັບ. ໂຫມດ micro-stepping ແມ່ນເລືອກຜ່ານ MODE1, MODE2 ແລະ MODE3
ລະດັບຄວບຄຸມໂດຍ STM32 Nucleo board.
ເມື່ອກະດານຖືກຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ: - ສຽບກະດານຂະຫຍາຍ X-NUCLEO-IHM14A1 ຢູ່ເທິງສຸດຂອງກະດານ STM32 Nucleo ຜ່ານຕົວເຊື່ອມຕໍ່ Arduino UNO
- ເຊື່ອມຕໍ່ກະດານ STM32 Nucleo ກັບ PC ດ້ວຍສາຍ 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
- \stm32_cube\Projects\Multi\Examples\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
- ເພື່ອປັບຕົວພາລາມິເຕີ STSPIN820 ເລີ່ມຕົ້ນໃຫ້ກັບ vol ຕໍ່າຂອງທ່ານtage ລັກສະນະ motor stepper, ບໍ່ວ່າຈະ:
- ໃຊ້ BSP_MotorControl_Init ດ້ວຍຕົວຊີ້ NULL ແລະເປີດ stm32_cube\ Drivers\ BSP\Components\ STSPIN820\ STSPIN820_target_config.h ເພື່ອແກ້ໄຂພາລາມິເຕີຕາມຄວາມຕ້ອງການຂອງທ່ານ.
- – ໃຊ້ BSP_MotorControl_Init ກັບທີ່ຢູ່ຂອງໂຄງສ້າງ initDevicesParameters ທີ່ມີຄ່າທີ່ເຫມາະສົມ.
- ກໍ່ສ້າງຄືນໃຫມ່ທັງຫມົດ files ແລະໂຫຼດຮູບພາບຂອງທ່ານເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາເປົ້າຫມາຍ.
- ດໍາເນີນການ exampເລ. ມໍເຕີເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດ (ເບິ່ງ main.c ສໍາລັບລາຍລະອຽດລໍາດັບຕົວຢ່າງ).
ປະຫວັດການແກ້ໄຂ
ວັນທີ |
ຮຸ່ນ | ການປ່ຽນແປງ |
17-ຕຸລາ-2017 |
1 |
ການປ່ອຍຕົວໃນເບື້ອງຕົ້ນ. |
20-ກໍລະກົດ-2021 | 2 |
ອັບເດດພາກທີ 2.3.2 ໂຟນເດີໂຄງການ ແລະພາກທີ 3.2 ຄວາມຕ້ອງການຊອບແວ. ຖອນພາກທີ 2 STM32Cube ແມ່ນຫຍັງ? ແລະແທນທີ່ມັນດ້ວຍການເຊື່ອມຕໍ່ໃນບົດແນະນໍາ. |
ແຈ້ງການ ສຳ ຄັນ - ກະລຸນາອ່ານຢ່າງລະມັດລະວັງ
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 Stepper Motor Driver Software Expansion for STM32Cube, UM2300 X-CUBE-SPN14 Stepper Motor Driver Software Expansion for STM32Cube, X-CUBE-SPN14 Stepper Motor Expansion Software Driver Expansion, Driver Software Expansion for STM32C ສໍາລັບ STM32Cube, ການຂະຫຍາຍຕົວສໍາລັບ STM32Cube, STM32Cube |