เร่งความเร็วการพัฒนาแอปพลิเคชันยานยนต์ IoT BLDC Motor ด้วยไดรเวอร์มอเตอร์ A4964KJPTR-T
Contributed By DigiKey's North American Editors
2021-10-26
มอเตอร์ DC แบบไร้แปรงถ่าน (BLDC) มีการใช้งานมากขึ้นในหลาย ๆ แอพพลิเคชั่น ตั้งแต่เครื่องเปิดโรงรถและหน้าต่างรถยนต์ที่ควบคุมด้วย Internet of Things (IoT) ไปจนถึงอุปกรณ์ควบคุมการขับเคลื่อนด้วยดาวเทียม นักออกแบบปัญหาที่ต้องเผชิญกับมอเตอร์ BLDC คืออัลกอริธึมการควบคุมที่จำเป็นในการขับเคลื่อนนั้นซับซ้อนและมักจะเชี่ยวชาญ ซึ่งทำให้ยากสำหรับวิศวกรทั่วไปที่จะเริ่มต้นใช้งานในระยะเวลาที่เหมาะสม
โดยทั่วไปแล้ว นักพัฒนาซอฟต์แวร์จะเลือกระหว่างโซลูชันที่ใช้ซอฟต์แวร์ที่ทำงานบนไมโครคอนโทรลเลอร์ ซึ่งให้โซลูชันซอฟต์แวร์ที่ยืดหยุ่น แต่ยังทำให้ไมโครคอนโทรลเลอร์เป็นภาระในการคำนวณ หรือใช้วงจรรวมเฉพาะ (IC) ส่วนหลังห่อหุ้มฟังก์ชันการควบคุมมอเตอร์ BLDC เต็มรูปแบบและยกเลิกการโหลดการควบคุม BLDC จากโฮสต์
บทความนี้กล่าวถึงความแตกต่างระหว่างโซลูชันซอฟต์แวร์ที่ใช้ไมโครคอนโทรลเลอร์กับโซลูชันชิปฮาร์ดแวร์เฉพาะ จากนั้นจะเจาะลึกถึงวิธีการใช้Allegro MicroSystemsA4964KJPTR-T , ตัวขับมอเตอร์ที่ออกแบบมาเพื่อลดความซับซ้อนของการควบคุมมอเตอร์ BLDC โดยเฉพาะสำหรับการใช้งานในยานยนต์ บทความนี้จะแสดงวิธีการโต้ตอบกับ A4964KJPTR-T พร้อมกับแนวทางปฏิบัติที่ดีที่สุดบางประการเพื่อหลีกเลี่ยงพฤติกรรมที่ไม่คาดคิด
A (มาก) แนะนำสั้น ๆ เกี่ยวกับมอเตอร์ BLDC
มอเตอร์ BLDC ให้การส่งแรงบิดอย่างมีประสิทธิภาพในช่วงความเร็วที่หลากหลาย เงียบ และไม่ได้รับผลกระทบจากแรงเสียดทานทางกลของมอเตอร์แปรง มอเตอร์ BLDC ถูกควบคุมโดยกระแส ไม่ใช่แรงดัน ซึ่งทำให้สามารถใช้งานได้หลากหลายรูปแบบ ซึ่งมาในรูปทรง ขนาด และจุดต้นทุนที่หลากหลาย
ตัวอย่างเช่นTRINAMIC Motion Control'sQBL4208-41-04-006 เป็นมอเตอร์ขนาด 24 โวลต์ 4000 รอบต่อนาที (RPM) ที่ให้แรงบิดสูงสุด 0.06 นิวตันเมตร (Nm) (ภาพที่ 1) มอเตอร์มีน้ำหนักเบา (0.662 ปอนด์ (ปอนด์)) และมีตัวเลือกมากมายสำหรับนักพัฒนาในการควบคุมมอเตอร์ เช่น ผ่านการทำงานแบบไร้เซ็นเซอร์โดยใช้แรงเคลื่อนไฟฟ้าย้อนกลับ (BEMF) หรือใช้เซ็นเซอร์ในตัวที่รายงานตำแหน่ง
รูปที่ 1: QBL4208-41-04-006 เป็นมอเตอร์ BLDC 24 โวลต์ 4000 รอบต่อนาทีที่สามารถส่งแรงบิดได้มากกว่า 0.06 นิวตันเมตรเล็กน้อยที่ความเร็วสูงสุด (ที่มาของภาพ: TRINAMIC Motion Control GmbH)
สำหรับแรงบิดที่มากขึ้น นักออกแบบสามารถใช้ปุ่มQBL4208-41-04-025 จาก TRINAMIC Motion Control (รูปที่ 2) ด้วย นี่คือมอเตอร์ BLDC 24 โวลต์ 4000 รอบต่อนาทีที่สามารถส่งแรงบิดได้มากกว่า 0.25 นิวตันเมตรเล็กน้อย
รูปที่ 2: TRINAMIC Motion Control QBL4208-41-04-025 เป็นมอเตอร์ BLDC 24 โวลต์ 4000 รอบต่อนาทีซึ่งให้แรงบิดมากกว่า 0.25 นิวตันเมตรที่ความเร็วสูงสุดเล็กน้อย (ที่มาของภาพ: TRINAMIC Motion Control GmbH)
มอเตอร์ BLDC ถูกขับเคลื่อนผ่านสายไฟสามเฟสซึ่งสร้างสนามแม่เหล็กที่ผลักกับแม่เหล็กถาวรเพื่อเคลื่อนสเตเตอร์และหมุนมอเตอร์
ในทางทฤษฎี ฟังดูง่าย แต่ในทางปฏิบัติ การขับมอเตอร์ BLDC ค่อนข้างซับซ้อน ทำให้นักพัฒนาต้องเลือกระหว่างการใช้ซอฟต์แวร์เฟรมเวิร์กเพื่อขับเคลื่อนมอเตอร์ หรือเลือกใช้โซลูชันชิปเฉพาะ
ซอฟต์แวร์เทียบกับโซลูชันชิปแบบเฉพาะ
มีหลายปัจจัยที่นักพัฒนาควรพิจารณาเมื่อต้องแก้ไขวิธีการหมุนมอเตอร์ BLDC ปัจจัยเหล่านี้มาจากพื้นฐาน:
- ต้นทุน BOM เทียบกับต้นทุนแรงงาน
- ความซับซ้อนของบอร์ดกับความซับซ้อนของซอฟต์แวร์
- เวลาและค่าใช้จ่ายในการบำรุงรักษา
จากมุมมองของฮาร์ดแวร์ การใช้เส้นทางซอฟต์แวร์อาจเป็นเรื่องน่าดึงดูดใจมาก เนื่องจากโซลูชันชิปเฉพาะจะเพิ่มค่าใช้จ่ายเพิ่มเติมให้กับ BOM แทนที่จะใช้ชิปเฉพาะ ให้เอาต้นทุนนั้นออก ใช้ไมโครคอนโทรลเลอร์เพิ่มขึ้นอีกเศษเสี้ยวหนึ่ง และใส่อัลกอริธึมการควบคุมทั้งหมดลงในไมโครคอนโทรลเลอร์นั้น ดูเหมือนสถานการณ์ win-win แต่ทีมมักไม่พิจารณาการแยกย่อยทั้งหมดของการตัดสินใจครั้งนี้
ใช่ มันลดต้นทุน BOM แต่ก็เพิ่มภาระให้กับไมโครคอนโทรลเลอร์ในการประมวลผลข้อมูลสถานะ BLDC และขับเคลื่อนมอเตอร์อย่างต่อเนื่อง หากไมโครคอนโทรลเลอร์พยายามสุ่มตัวอย่างเซ็นเซอร์อื่นๆ พูดคุยกับวิทยุ และควบคุมอุปกรณ์อื่น ๆ ค่าใช้จ่ายในการพัฒนาซอฟต์แวร์และการบำรุงรักษาอาจทะลุเพดานหากไม่ใส่ใจ
ที่กล่าวว่าโซลูชันที่ใช้ซอฟต์แวร์ในไมโครคอนโทรลเลอร์สามารถให้ความยืดหยุ่นในการที่ทีมสามารถปรับแต่งอัลกอริธึมการควบคุมมอเตอร์ได้ การใช้ซอฟต์แวร์ไม่ได้หมายความว่าสิ่งต่าง ๆ จะต้องซับซ้อนเกินไปเสมอไป
ตัวอย่างเช่น โดยทั่วไปแล้วจะเป็นกรณีที่การย้ายอัลกอริธึมการควบคุมมอเตอร์ไปยังไมโครคอนโทรลเลอร์อาจใช้ RAM มากกว่าและต้องใช้แฟลชจำนวนมาก อย่างไรก็ตาม หากทีมใช้ไมโครคอนโทรลเลอร์ที่ออกแบบมาสำหรับการควบคุมมอเตอร์ เช่น Texas InstrumentsF280049CRSHSR ไมโครคอนโทรลเลอร์ควบคุมมอเตอร์อัลกอริธึมถูกสร้างขึ้นในไลบรารีที่อยู่ในไมโครคอนโทรลเลอร์ ROM ซึ่งหมายความว่าโค้ดเพิ่มเติมเพียงอย่างเดียวที่เพิ่มลงในแอปพลิเคชันคือการเรียกใช้ฟังก์ชันเพื่อเข้าถึงไลบรารีที่ทำหน้าที่ยกของหนักทั้งหมด
การหมุนมอเตอร์ BLDC ไม่ใช่แค่ซอฟต์แวร์เท่านั้น แต่ยังต้องใช้ฮาร์ดแวร์อีกด้วย รูปที่ 3 แสดงตัวอย่างแอปพลิเคชันโดยใช้ C2000 ไมโครคอนโทรลเลอร์ ซึ่งมี F280049CRSHSR เป็นสมาชิกในครอบครัว ซึ่งแสดงให้เห็นทุกสิ่งที่จำเป็นและเป็นทางเลือกในการขับเคลื่อนมอเตอร์ BLDC นอกเหนือจากไมโครคอนโทรลเลอร์แล้ว ยังต้องมีสเตจกำลังไฟฟ้า 3 เฟสที่สามารถขับเคลื่อนมอเตอร์ BLDC สามเฟสเพื่อให้มอเตอร์หมุนได้
รูปที่ 3: ไมโครคอนโทรลเลอร์ Texas Instruments C2000 ได้รับการออกแบบสำหรับแอปพลิเคชันการควบคุมมอเตอร์ ภาพนี้แสดงตัวอย่างแอปพลิเคชันที่มีไมโครคอนโทรลเลอร์อยู่ตรงกลาง และวงจรที่จำเป็นและเป็นทางเลือกที่จำเป็นสำหรับการขับเคลื่อนมอเตอร์ BLDC (แหล่งรูปภาพ: Texas Instruments)
การใช้ไมโครคอนโทรลเลอร์เพื่อขับเคลื่อนมอเตอร์นั้นน่าสนใจอย่างแน่นอน แต่โซลูชันฮาร์ดแวร์เฉพาะนั้นเป็นอย่างไร มาดูชิปขับมอเตอร์ A4964KJPTR-T ของ Allegro MicroSystems
ไดรเวอร์มอเตอร์ Allegro MicroSystems A4964KJPTR-T
ชิปไดรเวอร์มอเตอร์ Allegro MicroSystems A4964KJPTR-T เป็นไดรเวอร์มอเตอร์ BLDC เฉพาะที่ประกอบด้วยสมาร์ททั้งหมดที่จำเป็นในการขับเคลื่อนมอเตอร์ (รูปที่ 4) ออกแบบมาโดยเฉพาะสำหรับการใช้งานในยานยนต์และสำหรับใช้กับ N-channel MOSFET ชิปดังกล่าวมีการเริ่มต้นและการเปลี่ยนแบบไร้เซ็นเซอร์ ดังนั้นจึงต้องใช้ฮาร์ดแวร์ภายนอกในปริมาณน้อยที่สุด A4964KJPTR-T ยังทำงานบนแรงดันไฟฟ้าที่หลากหลาย ตั้งแต่ 5.5 ถึง 50 โวลต์ ซึ่งครอบคลุมการใช้งานมาตรฐานเกือบทุกประเภท ควบคู่ไปกับระบบยานยนต์
บางทีคุณสมบัติที่น่าสนใจที่สุดของมันก็คือ A4964KJPTR-T สามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์หรือหน่วยควบคุมอิเล็กทรอนิกส์ส่วนกลาง (ECU) ผ่าน Serial Peripheral Interface (SPI) เพื่อกำหนดค่าลงทะเบียนต่าง ๆ สำหรับการทำงานของมอเตอร์ เห็นได้ชัดว่าไมโครคอนโทรลเลอร์ไม่จำเป็นต้องมีประสิทธิภาพเท่ากับตัวที่ใช้อัลกอริธึมการควบคุมมอเตอร์
รูปที่ 4: ไดรเวอร์มอเตอร์ BLDC A4964KJPTR-T สามารถทำงานได้ตั้งแต่ 5.5 ถึง 50 โวลต์และให้การเริ่มต้นและการเปลี่ยนแบบไม่มีเซ็นเซอร์ สามารถกำหนดค่าความเร็วมอเตอร์ผ่าน SPI หรือผ่านสัญญาณ PWM เฉพาะได้ (ที่มาของรูปภาพ: Allegro MicroSystems)
อีกทางหนึ่ง และนี่คือส่วนที่น่าสนใจ ความเร็วมอเตอร์ A4964KJPTR-T ยังสามารถขับเคลื่อนได้โดยไม่ต้องใช้ SPI โดยเพียงแค่ให้สัญญาณการปรับความกว้างพัลส์ (PWM) มีหน่วยความจำแบบไม่ลบเลือนซึ่งสามารถจัดเก็บการตั้งค่าสำหรับมอเตอร์ซึ่งโหลดไว้เมื่อเปิดเครื่อง ให้มีเพียงสัญญาณ PWM เพื่อควบคุมมอเตอร์
จากมุมมองของคอนฟิกูเรชัน A4964KJPTR-T มีตัวรีจิสเตอร์ 16 บิตที่สามารถระบุแอดเดรสได้ 32 ตัว บวกกับรีจิสเตอร์สถานะ การลงทะเบียนสถานะมีความเฉพาะเจาะจงในการที่ 5 บิตแรกถูกส่งระหว่างการดำเนินการอ่าน/เขียนบน SPI ทุกครั้ง ทำให้ซอฟต์แวร์สามารถตรวจสอบสถานะทั่วไปเพื่อดูว่ามีข้อผิดพลาดหรือปัญหาใด ๆ หรือไม่ การลงทะเบียนสถานะทั้งหมดสามารถอ่านได้ระหว่างการดำเนินการเขียนไปยังชิป เนื่องจากไม่มีการส่งข้อมูลกลับจาก A4964KJPTR-T
ในรีจิสเตอร์ที่สามารถระบุตำแหน่งได้ 32 รายการ ยังมีรีจิสเตอร์พิเศษสองรายการ Register 30 เป็นแบบเขียนอย่างเดียว และ register 31 เป็นแบบอ่านอย่างเดียว การลงทะเบียนแบบเขียนอย่างเดียวช่วยให้นักพัฒนาตั้งค่าอินพุตความต้องการหรืออัตรารอบการทำงานที่มอเตอร์จะถูกขับเคลื่อนด้วยค่าระหว่าง 0 – 1023 ข้อมูลการลงทะเบียนแบบอ่านอย่างเดียวเปลี่ยนแปลงตามข้อมูลที่ร้องขอซึ่งเขียนขึ้นเพื่อลงทะเบียน 29 ซึ่งเป็นการลงทะเบียนการเลือกอ่านย้อนกลับ การลงทะเบียนนี้ช่วยให้สามารถเรียกข้อมูลทางไกลได้หลากหลาย เช่น:
- การวินิจฉัย
- ความเร็วมอเตอร์
- อุปทานกระแสเฉลี่ย
- แรงดันไฟจ่าย
- อุณหภูมิชิป
- อินพุตความต้องการ
- ใช้รอบการทำงานสูงสุดของสะพาน
- การสมัครเฟสล่วงหน้า
นอกเหนือจากรีจิสเตอร์พิเศษเหล่านี้แล้ว ส่วนที่เหลืออีก 30 รายการยังอนุญาตให้ปรับแต่งแอปพลิเคชันมอเตอร์เฉพาะและอนุญาตให้เปิดหรือปิดข้อผิดพลาดได้ เช่น ขีดจำกัดกระแสไฟและข้อผิดพลาดของเกทไดรฟ์
ไดรเวอร์มอเตอร์เฉพาะนั้นน่าสนใจเพราะรวมทุกอย่างที่จำเป็นต้องกำหนดค่าเพื่อเรียกใช้มอเตอร์ลงในรีจิสเตอร์การกำหนดค่าสองสามโหล การดำเนินการนี้จะลบโอเวอร์เฮดของซอฟต์แวร์ที่อาจมีอยู่บนไมโครคอนโทรลเลอร์ได้อย่างมาก และที่สำคัญกว่านั้น สามารถลดค่าใช้จ่ายในการพัฒนาซอฟต์แวร์และการบำรุงรักษาได้อย่างมาก การขับเคลื่อน BLDC นั้นไม่มีอะไรมากไปกว่าการส่ง PWM ที่ไม่มีโอเวอร์เฮดในไมโครคอนโทรลเลอร์ หรือการเปิดใช้งานบิตของมอเตอร์และการจัดหาอินพุตความต้องการแบบ SPI เพื่อหมุน BLDC
คำแนะนำในการใช้ A4964KJPTR-T
A4964KJPTR-T นั้นค่อนข้างตรงไปตรงมาในการเชื่อมต่อกับ แต่มี "เคล็ดลับและลูกเล่น" หลายอย่างที่นักพัฒนาควรจำไว้ว่าสามารถทำให้การพัฒนาง่ายขึ้นและเร็วขึ้นเช่น:
- การลงทะเบียนสถานะจะถูกส่งคืนบนอินเทอร์เฟซ SPI ทุกครั้งที่เขียนไปยังชิป และไม่พร้อมใช้งานเป็นการลงทะเบียนเฉพาะที่สามารถระบุตำแหน่งได้ ซึ่งหมายความว่ารหัสไดรเวอร์จำเป็นต้องตรวจสอบสาย SDO ของบัส SPI ขณะเขียนไปยังชิปเพื่อรับข้อมูลสถานะ
- ข้อมูลข้อบกพร่องจะรวมอยู่ในการลงทะเบียนสถานะ แต่ภาพรวมของสถานะชิปมีอยู่ในทุกธุรกรรม SPI ในห้าบิตแรกเมื่อไมโครคอนโทรลเลอร์ให้ข้อมูลการเข้าถึงที่อยู่ ข้อมูลนี้สามารถใช้เพื่อระบุว่ามีปัญหาใดๆ เกิดขึ้นหรือไม่
- มีรีจิสเตอร์ที่ไม่ซ้ำกันสองรายการในแมปหน่วยความจำที่อ่านและเขียนอย่างเดียว สิ่งนี้ตรงไปตรงมา แต่ระวังอย่าพยายามอ่านจากการลงทะเบียนการเขียนเท่านั้น เนื่องจากจะเขียนข้อมูลจำลองใดๆ ก็ตามที่กำลังถูกใช้ในลำดับการอ่านไปยังรีจิสเตอร์
- ชิปมีหน่วยความจำแบบไม่ลบเลือนบางส่วนที่สามารถใช้เก็บพารามิเตอร์เริ่มต้นได้ พารามิเตอร์เหล่านี้ถูกโหลดลงใน RAM และใช้ในระหว่างการเริ่มต้น เพื่อให้แน่ใจว่าชิปบูทเข้าสู่สถานะพร้อมอย่างมีประสิทธิภาพสูงสุด ให้ตั้งโปรแกรมค่าเริ่มต้นที่ "ปลอดภัย" ลงในชิป
- หากอุปกรณ์ปลายทางทำงานในสภาพแวดล้อมที่มีเสียงดังหรือเต็มไปด้วยรังสี ไม่ควรออกแบบรหัสแอปพลิเคชันเพื่อยืนยันข้อมูลการกำหนดค่าเป็นระยะ ๆ การกำหนดค่าชิปถูกเก็บไว้ใน RAM ซึ่งหมายความว่ามีความเสี่ยงต่อรังสีคอสมิก บิตพลิก และเหตุการณ์ที่สนุกสนานและหายากทั้งหมดที่อาจเกิดขึ้นกับอุปกรณ์อิเล็กทรอนิกส์
บทสรุป
การใช้งานมอเตอร์ BLDC สำหรับยานยนต์, IoT หรือการใช้งานอื่น ๆ เป็นเรื่องปกติธรรมดา แต่การขับเคลื่อนสิ่งเหล่านี้อาจซับซ้อน ในการจัดการความซับซ้อนของซอฟต์แวร์ นักพัฒนาสามารถใช้ไดรเวอร์มอเตอร์ BLDC โดยเฉพาะ เช่น A4964KJPTR-T ซึ่งรวมเอาฟังก์ชันการควบคุมมอเตอร์ทั้งหมดไว้
ในขณะที่ซอฟต์แวร์ยังคงต้องการโต้ตอบกับชิป ไมโครคอนโทรลเลอร์ที่ใช้งานซอฟต์แวร์จะต้องตั้งค่าการกำหนดค่าเท่านั้น และ A4964KJPTR-T จะดูแลการขับเคลื่อนมอเตอร์ นักพัฒนาซอฟต์แวร์ที่ปฏิบัติตาม "คำแนะนำและเคล็ดลับ" ที่ให้มาจะพบว่าอุปกรณ์เหล่านี้สามารถประหยัดเวลาและความลำบากได้ไม่น้อยเมื่อพยายามใช้ A4964KJPTR-T

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.