UM2300 X-CUBE-SPN14 การขยายซอฟต์แวร์ไดรเวอร์ Stepper Motor สำหรับ STM32Cube User Manual
UM2300 X-CUBE-SPN14 การขยายซอฟต์แวร์ไดรเวอร์ Stepper Motor สำหรับ STM32Cube

การแนะนำ

แพ็คเกจเสริม X-CUBE-SPN14 สำหรับ STM32Cube ช่วยให้คุณควบคุมการทำงานของสเต็ปเปอร์มอเตอร์ได้อย่างเต็มที่
เมื่อรวมเข้ากับบอร์ดขยาย X-NUCLEO-IHM14A1 หนึ่งตัวหรือมากกว่า ซอฟต์แวร์นี้จะช่วยให้บอร์ดพัฒนา STM32 Nucleo ที่เข้ากันได้สามารถควบคุมสเต็ปเปอร์มอเตอร์ได้ตั้งแต่หนึ่งตัวขึ้นไป
มันถูกสร้างขึ้นบนเทคโนโลยีซอฟต์แวร์ STM32Cube เพื่อการพกพาที่ง่ายดายผ่านไมโครคอนโทรลเลอร์ STM32 ที่แตกต่างกัน
ซอฟต์แวร์มาพร้อมกับ asampการใช้งานสำหรับสเต็ปเปอร์มอเตอร์หนึ่งตัว เข้ากันได้กับบอร์ดพัฒนา NUCLEO-F401RE, NUCLEOF334R8, NUCLEO-F030R8 หรือ NUCLEO-L053R8 ที่มีบอร์ดขยาย X-NUCLEO-IHM14A1 ติดตั้งอยู่ด้านบน

ลิงก์ที่เกี่ยวข้อง
เยี่ยมชมระบบนิเวศ STM32Cube web หน้า www.st.com สำหรับข้อมูลเพิ่มเติม

ตัวย่อและตัวย่อ

ตารางที่ 1. รายการตัวย่อ

คำย่อ

คำอธิบาย
เอพีไอ

อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน

บีเอสพี

แพ็คเกจสนับสนุนบอร์ด
CMSI

มาตรฐานอินเทอร์เฟซซอฟต์แวร์ไมโครคอนโทรลเลอร์ Cortex®

ฮาล

ชั้นนามธรรมของฮาร์ดแวร์
ไอดีอี

สภาพแวดล้อมการพัฒนาแบบบูรณาการ

นำ

ไดโอดเปล่งแสง

เกินview

แพ็คเกจซอฟต์แวร์ X-CUBE-SPN14 ขยายฟังก์ชันการทำงานของ STM32Cube คุณสมบัติที่สำคัญ ได้แก่ :

  • เลเยอร์ไดรเวอร์สำหรับการจัดการที่สมบูรณ์ของอุปกรณ์ STSPIN820 (ไดรเวอร์สเต็ปเปอร์มอเตอร์พลังงานต่ำ) ที่รวมอยู่ในบอร์ดส่วนขยาย X-NUCLEO-IHM14A1
  • โหมดอ่านและเขียนพารามิเตอร์ของอุปกรณ์, การกำหนดค่า GPIO, PWM และ IRQ, ไมโครสเต็ปปิ้ง, ตำแหน่งทิศทาง, ความเร็ว, การเร่งความเร็ว, การชะลอตัวและการควบคุมแรงบิด, การจัดการสวิตช์แบบเต็มขั้นตอนอัตโนมัติ อิมพีแดนซ์สูงหรือหยุดการเลือกโหมดหยุด เปิดใช้งานและการจัดการสแตนด์บาย
  • การจัดการขัดจังหวะข้อผิดพลาด
  • การควบคุมสเต็ปเปอร์มอเตอร์เดี่ยว sampแอปพลิเคชัน
  • พกพาสะดวกในตระกูล MCU ต่างๆ ด้วย STM32Cube
  • ฟรี เงื่อนไขการอนุญาตที่ใช้งานง่าย

ซอฟต์แวร์ใช้การลงทะเบียนหลอกและคำสั่งการเคลื่อนไหวโดย:

  • การกำหนดค่าตัวจับเวลาที่ใช้ในการสร้างนาฬิกาขั้นตอนและปริมาตรtage อ้างอิง
  • การจัดการพารามิเตอร์ของอุปกรณ์ เช่น การเร่งความเร็ว การชะลอตัว นาที และสูงสุด ความเร็ว ตำแหน่งที่ความเร็ว profile ขอบเขต, ตำแหน่งเครื่องหมาย, โหมดไมโครสเต็ปปิ้ง, ทิศทาง, สถานะการเคลื่อนไหว ฯลฯ

ซอฟต์แวร์จัดการอุปกรณ์ STSPIN820 หนึ่งเครื่อง
ที่จุดสิ้นสุดของตัวจับเวลาติ๊กแต่ละครั้ง การโทรกลับจะดำเนินการเพื่อเรียกตัวจัดการนาฬิกาสเต็ปซึ่งควบคุมการเคลื่อนไหวของมอเตอร์
โดยการจัดการ:

  • สถานะการเคลื่อนไหว (เช่น หยุดมอเตอร์ที่ปลายทางเป้าหมาย)
  • ทิศทางมอเตอร์ผ่านระดับ GPIO
  • ตำแหน่งมอเตอร์สัมพัทธ์และสัมบูรณ์ในไมโครสเต็ป
  • ความเร็วผ่านศูนย์ ความเร่งบวกและลบ

ความเร็วถูกกำหนดโดยการเปลี่ยนแปลงความถี่สัญญาณนาฬิกาของขั้นตอน และโหมดขั้นตอน (ไม่บังคับ) เมื่อเปิดใช้งานคุณสมบัติสวิตช์แบบเต็มขั้นอัตโนมัติ ตัวจับเวลาที่ใช้สำหรับนาฬิกาขั้นตอนได้รับการกำหนดค่าในโหมดเปรียบเทียบผลลัพธ์ ค่ารีจิสเตอร์เปรียบเทียบการดักจับใหม่จะคำนวณในการเรียกตัวจัดการนาฬิกาแต่ละขั้นตอนเพื่อให้สามารถควบคุมความถี่ได้
ความเร็วเป็นฟังก์ชันเชิงเส้นตรงของความถี่นาฬิกาทีละขั้นตอนสำหรับโหมดไมโครสเต็ปปิ้งที่กำหนด ซึ่งซอฟต์แวร์สามารถเปลี่ยนแปลงได้ตั้งแต่ขั้นเต็มจนถึงขั้นที่ 1/256
ในการใช้ไลบรารีไดรเวอร์ STSPIN820 คุณต้องเรียกใช้ฟังก์ชันการเริ่มต้นซึ่ง:

  • ตั้งค่า GPIO ที่จำเป็นเพื่อเปิดใช้งานบริดจ์และจัดการพินข้อผิดพลาด EN\FAULT, MODE1 เฉพาะ,
    หมุดเลือกขั้นตอน MODE2 และ MODE3, พิน DIR สำหรับทิศทางมอเตอร์, พิน DECAY สำหรับโหมดการสลายตัว
    การเลือกและพินรีเซ็ตสแตนด์บาย STBY\RESET;
  • ตั้งค่าตัวจับเวลาในโหมดเปรียบเทียบเอาต์พุตสำหรับพิน STCK และตัวจับเวลาอ้างอิง voltage generation ในโหมด 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 hardare abstraction layer สำหรับไมโครคอนโทรลเลอร์ STM32 แพ็คเกจขยาย STM32Cube ด้วยแพ็คเกจรองรับบอร์ด (BSP) สำหรับบอร์ดขยายการควบคุมมอเตอร์และไดรเวอร์ส่วนประกอบ BSP สำหรับ STSPIN820 โวลุ่มต่ำtagอี ตัวขับสเต็ปเปอร์มอเตอร์
เลเยอร์ซอฟต์แวร์ที่ใช้โดยซอฟต์แวร์แอปพลิเคชันคือ:

  • ชั้น STM32Cube HAL: ชุด API ที่เรียบง่าย ทั่วไป และหลายอินสแตนซ์ (อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน)
    เพื่อโต้ตอบกับแอปพลิเคชันด้านบน ไลบรารี และสแต็กเลเยอร์ ประกอบด้วย API ทั่วไปและส่วนขยายตาม
    บนสถาปัตยกรรมทั่วไป เพื่อให้เลเยอร์ที่สร้างขึ้นบนเลเยอร์นั้น เช่น เลเยอร์มิดเดิลแวร์ สามารถทำงานได้โดยไม่ต้องมีการกำหนดค่าฮาร์ดแวร์ของไมโครคอนโทรลเลอร์ (MCU) ที่เฉพาะเจาะจง โครงสร้างนี้ปรับปรุงความสามารถในการใช้รหัสไลบรารีซ้ำ และรับประกันการพกพาที่ง่ายดายบนอุปกรณ์อื่นๆ
    แพ็คเกจสนับสนุนบอร์ด (BSP) เลเยอร์: รองรับอุปกรณ์ต่อพ่วงบนบอร์ด STM32 Nucleo ยกเว้น
    มช. ชุด API แบบจำกัดนี้มีอินเทอร์เฟซการเขียนโปรแกรมสำหรับอุปกรณ์ต่อพ่วงเฉพาะบางบอร์ด เช่น LED และปุ่มผู้ใช้ และช่วยในการระบุเวอร์ชันของบอร์ดเฉพาะ BSP ควบคุมมอเตอร์ให้อินเทอร์เฟซการเขียนโปรแกรมสำหรับส่วนประกอบไดรเวอร์มอเตอร์ต่างๆ เชื่อมโยงกับส่วนประกอบ BSP สำหรับไดรเวอร์มอเตอร์ STSPIN820 ในซอฟต์แวร์ X-CUBE-SPN14

โครงสร้างโฟลเดอร์

หน้าต่างโครงสร้างโฟลเดอร์

ซอฟต์แวร์อยู่ในสองโฟลเดอร์หลัก:

  • ไดรเวอร์ด้วย:
    • STM32Cube HAL fileในโฟลเดอร์ย่อย STM32L0xx_HAL_Driver, STM32F0xx_HAL_Driver, STM32F3xx_HAL_Driver หรือ STM32F4xx_HAL_Driver เหล่านี้ fileถูกนำมาโดยตรงจากเฟรมเวิร์ก STM32Cube และรวมเฉพาะที่จำเป็นในการรันไดรเวอร์มอเตอร์เช่นampเลส.
    • โฟลเดอร์ CMSIS ที่มี CMSIS (มาตรฐานอินเทอร์เฟซซอฟต์แวร์ไมโครคอนโทรลเลอร์ Cortex®) เลเยอร์การแยกฮาร์ดแวร์ที่ไม่ขึ้นกับผู้จำหน่ายสำหรับซีรีส์โปรเซสเซอร์ Cortex-M จาก ARM โฟลเดอร์นี้ไม่มีการเปลี่ยนแปลงจากเฟรมเวิร์ก STM32Cube
    • โฟลเดอร์ BSP ที่มีรหัส fileสำหรับการกำหนดค่า X-NUCLEO-IHM14A1, ไดรเวอร์ STSPIN820 และ API การควบคุมมอเตอร์
  • โครงการ, ซึ่งมีการใช้งานหลายอย่างเช่นampไดรเวอร์มอเตอร์ STSPIN820 สำหรับแพลตฟอร์ม STM32 Nucleo ที่แตกต่างกัน

โฟลเดอร์ BSP
ซอฟต์แวร์ X-CUBE-SPN14 ประกอบด้วย BSP ที่อธิบายไว้ในส่วนย่อยต่อไปนี้

STM32L0XX-Nucleo/STM32F0XX-Nucleo/STM32F3XX Nucleo/STM32F4XX-Nucleo BSPs
BSP เหล่านี้มีอินเทอร์เฟซสำหรับบอร์ดพัฒนา STM32 Nucleo ที่เข้ากันได้แต่ละบอร์ดเพื่อกำหนดค่าและใช้อุปกรณ์ต่อพ่วงกับบอร์ดขยาย X-NUCLEO-IHM14A1 แต่ละโฟลเดอร์ย่อยมี two.c/.h file คู่:

  • stm32Xxxx_nucleo.c/h: เฟรมเวิร์ก STM32Cube ที่ไม่ได้แก้ไขเหล่านี้ fileมีปุ่มผู้ใช้และฟังก์ชั่น LED สำหรับบอร์ด STM32 Nucleo เฉพาะ
  • stm32Xxxx_nucleo_ihm14a1.c/h: เหล่านี้ fileใช้สำหรับการกำหนดค่า 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\Exampไฟล์\MotionControl\:

  • IHM14A1_เช่นampleFor1Motor อดีตampฟังก์ชันการควบคุมสำหรับการกำหนดค่ามอเตอร์เดี่ยว

อดีตampไฟล์มีโฟลเดอร์สำหรับ IDE ที่เข้ากันได้แต่ละตัว:

  • EWARM สำหรับ IAR Embedded Workbench
  • 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: โปรแกรมหลัก (รหัสของ exampตามไลบรารีควบคุมมอเตอร์สำหรับ 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/ผิดพลาดT

(ภาษาอังกฤษ)

พอร์ต B GPIO 3

ไทม์เมอร์2 Ch2

พอร์ต B GPIO 3

ไทม์เมอร์2 Ch2

พอร์ต B GPIO 3

ไทม์เมอร์15 Ch1

พอร์ต B GPIO 3

ไทม์เมอร์2 Ch2

 

D3

stck

(ซีแอลเค)

 พอร์ต B GPIO 4

 

D5

การผุพัง

(ธ.ค. )

 พอร์ต A GPIO 8  

D7

ทิศทาง

(ป.ป.ช.)

 พอร์ต A GPIO 9  

D8

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)

APIs

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 นิวคลีโอ
    บอร์ดพัฒนา STM32 Nucleo มอบวิธีที่ไม่แพงและยืดหยุ่นสำหรับผู้ใช้ในการทดสอบโซลูชันและสร้างต้นแบบด้วยไมโครคอนโทรลเลอร์รุ่น STM32
    การสนับสนุนการเชื่อมต่อ Arduino และตัวเชื่อมต่อ ST morpho ทำให้ง่ายต่อการขยายการทำงานของ
    STM32 Nucleo แพลตฟอร์มการพัฒนาแบบเปิดพร้อมบอร์ดขยายเฉพาะทางมากมายให้เลือก
    บอร์ด STM32 Nucleo ไม่ต้องการโพรบแยกกัน เพราะมันรวมเอาดีบักเกอร์ ST-LINK/V2-1/
    โปรแกรมเมอร์
    บอร์ด STM32 Nucleo มาพร้อมกับไลบรารี HAL ของซอฟต์แวร์ STM32 ที่ครอบคลุม พร้อมด้วยซอฟต์แวร์แพ็คเกจต่างๆ เช่นampไฟล์สำหรับ 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 โดยสามารถปรับเวลา OFF คงที่ผ่านตัวต้านทานภายนอกและความละเอียดไมโครสเต็ปปิ้งได้ถึงขั้นที่ 256
    บอร์ดขยาย X-NUCLEO-IHM14A1 เข้ากันได้กับขั้วต่อ Arduino UNO R3 และขั้วต่อ ST morpho ดังนั้นจึงสามารถเสียบเข้ากับบอร์ดพัฒนา STM32 Nucleo และซ้อนกับบอร์ดขยาย X-NUCLEO เพิ่มเติมได้
  3. ส่วนประกอบฮาร์ดแวร์เบ็ดเตล็ด
    ในการตั้งค่าฮาร์ดแวร์ให้เสร็จสมบูรณ์ คุณจะต้อง:
    • สเต็ปเปอร์มอเตอร์แบบไบโพลาร์ 1 ตัว (7 ถึง 45 V)
    • แหล่งจ่ายไฟ DC ภายนอกที่มีสายไฟสองเส้นสำหรับบอร์ด X-NUCLEO-IHM14A1
    • สาย USB ชนิด A ถึง mini-B USB เพื่อเชื่อมต่อบอร์ด STM32 Nucleo กับ PC
  4. ข้อกำหนดของซอฟต์แวร์
    ส่วนประกอบซอฟต์แวร์ต่อไปนี้จำเป็นสำหรับการตั้งค่าสภาพแวดล้อมการพัฒนาที่เหมาะสมสำหรับ
    การสร้างแอพพลิเคชั่นตามบอร์ดขยายไดรเวอร์มอเตอร์:
    • X-CUBE-SPN14 STM32Cube ส่วนขยายสำหรับ STSPIN820 ระดับเสียงต่ำtage การพัฒนาแอพพลิเคชั่นไดรเวอร์สเต็ปเปอร์มอเตอร์ เฟิร์มแวร์ X-CUBE-SPN14 และเอกสารที่เกี่ยวข้องมีอยู่ใน www.st.com.
    • หนึ่งในกลุ่มเครื่องมือการพัฒนาและคอมไพเลอร์ต่อไปนี้:
      • คีล เรอัลView ชุดเครื่องมือสำหรับพัฒนาไมโครคอนโทรลเลอร์ (MDK-ARM) V5.27
      • IAR Embedded Workbench สำหรับ ARM (EWARM) toolchain 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 กับแหล่งจ่ายไฟ DC
  • เชื่อมต่อสเต็ปเปอร์มอเตอร์กับขั้วต่อบริดจ์ X-NUCLEO IHM14A1 A+/- และ B+/-

เมื่อการตั้งค่าระบบพร้อม:

  • เปิด toolchain ที่คุณต้องการ
  • ขึ้นอยู่กับบอร์ด STM32 Nucleo เปิดโครงการซอฟต์แวร์จาก:
    • \stm32_cube\Projects\Multi\Exampไฟล์\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F401RE-Nucleo สำหรับ Nucleo STM32F401
    • \stm32_cube\Projects\Multi\Exampไฟล์\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainNam
      e\STM32F030R8-Nucleo สำหรับ Nucleo STM32F334
    • \stm32_cube\Projects\Multi\Exampไฟล์\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32F030R8-Nucleo สำหรับ Nucleo STM32F030
    • \stm32_cube\Projects\Multi\Exampไฟล์\MotionControl\IHM14A1_ExampleFor1Motor\YourToolChainName\STM32L053R8-Nucleo สำหรับ Nucleo STM32L053
  •  เพื่อปรับพารามิเตอร์ STSPIN820 เริ่มต้นให้เหมาะกับระดับเสียงต่ำของคุณtage ลักษณะของสเต็ปเปอร์มอเตอร์ อย่างใดอย่างหนึ่ง:
    • ใช้ BSP_MotorControl_Init ด้วยตัวชี้ NULL และเปิด stm32_cube\ Drivers\ BSP\Components\ STSPIN820\ STSPIN820_target_config.h เพื่อแก้ไขพารามิเตอร์ตามความต้องการของคุณ
    • – ใช้ BSP_MotorControl_Init ด้วยที่อยู่ของโครงสร้าง initDevicesParameters พร้อมค่าที่เหมาะสม
  • สร้างใหม่ทั้งหมด files และโหลดภาพของคุณลงในหน่วยความจำเป้าหมาย
  • เรียกใช้อดีตampเลอ มอเตอร์สตาร์ทโดยอัตโนมัติ (ดู 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 การขยายซอฟต์แวร์ไดรเวอร์ Stepper Motor สำหรับ STM32Cube [พีดีเอฟ] คู่มือการใช้งาน
UM2300, X-CUBE-SPN14 การขยายซอฟต์แวร์ไดรเวอร์สเต็ปเปอร์มอเตอร์สำหรับ STM32Cube, UM2300 X-CUBE-SPN14 การขยายซอฟต์แวร์ไดรเวอร์สเต็ปเปอร์มอเตอร์สำหรับ STM32Cube, X-CUBE-SPN14 การขยายซอฟต์แวร์ไดรเวอร์สเต็ปเปอร์มอเตอร์, การขยายซอฟต์แวร์ไดรเวอร์สำหรับ STM32Cube, การขยายซอฟต์แวร์ไดรเวอร์มอเตอร์ สำหรับ STM32Cube, ส่วนขยายสำหรับ STM32Cube, STM32Cube

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *