กำลังขับมอเตอร์กระแสตรงด้วย MOSFET และไมโครคอนโทรลเลอร์หรือไม่?


13

ฉันกำลังพัฒนา Quadcopter นาโนโดยใช้ไมโครคอนโทรลเลอร์ Atmega328 ใช้พลังงานที่ 3.3 โวลต์และมอเตอร์กระแสตรงที่มีแปรงขนาดเล็กมาก ค่าเฉลี่ยกระแสไฟฟ้าที่ใช้โดยมอเตอร์เหล่านี้ประมาณ 800mA @ 3.7V

ในขั้นต้นเพื่อขับพวกเขาฉันใช้ไดรเวอร์มอเตอร์ L293D แต่ส่วนประกอบนี้ไม่มีประสิทธิภาพ กระแสที่วัดได้เมื่อมอเตอร์วิ่งด้วยกำลังสูงสุดประมาณ 500mA ดังนั้นแรงขับจึงต่ำกว่ามาก

ตอนนี้เพื่อแก้ปัญหานี้ฉันจะแทนที่ไดรเวอร์มอเตอร์นั้นด้วย MOSFET ระดับ 4 ตรรกะ หลังจากค้นหามานานฉันก็เจออันนี้ (2SK4033)

คุณรู้หรือไม่ว่าควรใช้งานได้หรือไม่ ฉันต้องใช้ร่วมกับไดโอดหรือไม่? ถ้าคำตอบคือ "ใช่" แล้วอันนี้ (MBR360RLG) ล่ะ?

ฉันเลือกส่วนประกอบเหล่านี้เพราะฉันสามารถซื้อได้จากร้านค้าออนไลน์เดียวกัน


2
แอนดี้ตอบคำถาม MOSFET ส่วนหนึ่งของคุณ แต่ไม่มีใครพูดถึงคำถามพื้นฐานเพิ่มเติม: คุณวางแผนที่จะแทนที่ L293D ด้วย 4 N MOSFET อย่างไร การใส่ N MOSFET เข้ากับด้านสูงอาจทำให้เกิดปัญหาประสิทธิภาพ การเขียนแบบแผนผังสามารถช่วยทำให้ความคิดของคุณชัดเจน
Laszlo Valko

คุณหมายถึงอะไรกับ "high-side"? ในตอนนี้วงจรเดียวที่ฉันมีคืออันที่มี L293D หากสามารถช่วยได้ฉันสามารถโพสต์ได้ ความคิดของฉันคือมอเตอร์แต่ละตัวขับเคลื่อนด้วยมอสเฟต (รวม 4 ตัว) และหากต้องการไดโอดก็เช่นกัน อะไรจะเป็นทางออกที่มีประสิทธิภาพมากขึ้น?
supergiox

เอาต์พุต L293D แต่ละตัวมีทรานซิสเตอร์ "high-side" (ระหว่าง Vcc และเอาต์พุต) และทรานซิสเตอร์ "low-side" (ระหว่าง GND และเอาต์พุต) หากคุณเปลี่ยนทรานซิสเตอร์ "high-side" ด้วย N MOSFET คุณจะต้องใช้แหล่งจ่ายไฟที่สามารถให้ Vgs (อย่างน้อย 2..3..4V) เหนือแรงดันขาออก หรือสูงสุด แรงดันขาออกจะเป็น Vcc - Vgs ...
Laszlo Valko

Vgs ต้องเป็น 3.3V และเอาท์พุท (Vds) ต้องเป็น 3.7V (แรงดันไฟฟ้าเดียวกันของแบตเตอรี่ซึ่งเป็นค่าเฉพาะ) ดังนั้นหากมีปัญหานี้ฉันจะทำอย่างไร คุณสามารถแนะนำวิธีแก้ปัญหาอื่นได้หรือไม่
supergiox

2
คุณมีตัวเลือกดังต่อไปนี้: a) ใช้ P MOSFET สำหรับด้านสูง; b) ใช้วงจรแยกแรงดันไฟฟ้าสองเท่าหรือวงจรแปลง DC-DC เพื่อให้ 2 * Vcc สำหรับขับเกต MOSFET ด้านสูง c) ใช้วงจรบูทสแตรปเพื่อให้แรงดัน Vout + Vcc ที่เหมาะสมสำหรับการขับเกต MOSFET ด้านสูง แต่ละข้อมีข้อเสียและ / หรือข้อ จำกัด
Laszlo Valko

คำตอบ:


17

MOSFET ควรทำงานได้ดีมากสำหรับแอปพลิเคชันนี้ นี่คือสิ่งที่ต้องพิจารณา:

1:

เมื่อใช้ FET เพื่อขับเคลื่อนการโหลดคุณสามารถเลือกการกำหนดค่าด้านสูงหรือด้านต่ำ High-side วาง FET ไว้ระหว่างรางไฟฟ้าและโหลดและอีกด้านหนึ่งของโหลดเชื่อมต่อกับกราวด์ ในการกำหนดค่าต่ำด้านหนึ่งนำของโหลดเชื่อมต่อกับรางไฟฟ้าและ FET อยู่ในตำแหน่งระหว่างโหลดและกราวด์:

HighVsLow

วิธีที่ง่ายที่สุดในการขับเคลื่อนมอเตอร์ของคุณ (หรือโหลดอื่น ๆ ) คือการใช้ N-Channel MOSFET ในการกำหนดค่าด้านต่ำ N-FET เริ่มทำงานเมื่อแรงดันเกตของประตูสูงกว่าแหล่งกำเนิด เนื่องจากแหล่งสัญญาณเชื่อมต่อกับกราวด์จึงสามารถขับเคลื่อนเกตด้วยตรรกะเปิด - ปิดปกติ มีเกณฑ์ที่แรงดันเกตต้องเกิน ("Vth") ก่อนที่ FET จะดำเนินการ FET บางตัวมี Vth ในหลักสิบโวลต์ คุณต้องการ N-FET "ระดับตรรกะ" ที่มีขีด จำกัด ที่น้อยกว่า Vcc ของคุณมาก

มีข้อเสียสองประการสำหรับการกำหนดค่า FET ที่ด้านล่าง:

  • ขดลวดมอเตอร์เชื่อมต่อโดยตรงกับรางไฟ เมื่อ FET ปิดอยู่การม้วนทั้งหมดจะ "ร้อน" คุณกำลังเปลี่ยนพื้นไม่ใช่การเชื่อมต่อพลังงาน

  • มอเตอร์จะไม่มีการอ้างอิงภาคพื้นจริง ศักยภาพต่ำสุดจะสูงกว่าพื้นดินโดยแรงดันไฟฟ้าไปข้างหน้าของ FET

สิ่งเหล่านี้ไม่ควรสำคัญในการออกแบบของคุณ อย่างไรก็ตามพวกเขาอาจมีปัญหาหากคุณไม่คาดหวัง! โดยเฉพาะอย่างยิ่งกับวงจรกำลังสูง :)

เพื่อแก้ไขปัญหาเหล่านี้คุณสามารถใช้ P-FET ในการกำหนดค่าระดับสูง แม้ว่าวงจรการขับขี่จะซับซ้อนกว่านี้เล็กน้อย โดยทั่วไปแล้วสวิตช์ P-FET จะดึงประตูขึ้นสู่รางไฟฟ้า รางไฟนี้สูงกว่า Vcc ของ uC ดังนั้นคุณจึงไม่สามารถเชื่อมต่อหมุด I / O ของ uC เข้ากับเกตได้โดยตรง วิธีแก้ปัญหาทั่วไปคือการใช้ N-FET ขนาดเล็กที่อยู่ด้านล่างเพื่อดึงเกทของ P-FET ที่อยู่ด้านสูงลง:

DualFet

R1 และ R3 มีอยู่เพื่อไม่ให้ FET ปิดจนกว่าจะขับเคลื่อน Q2 คุณจะต้อง R3 แม้ในการกำหนดค่าด้านต่ำ

ในกรณีของคุณฉันคิดว่า N-FET แบบ low-side ที่เรียบง่าย (ด้วย R3) จะให้บริการคุณได้ดีขึ้น


2:

ประกาศ R2 ในแผนภาพสุดท้าย เกท MOSFET ทำหน้าที่เป็นตัวเก็บประจุซึ่งจะต้องชาร์จประจุก่อนที่กระแสระบายออกจะเริ่มไหล อาจมีกระแสไฟไหลเข้าที่สำคัญเมื่อคุณให้พลังงานครั้งแรกดังนั้นคุณต้อง จำกัด กระแสไฟฟ้านี้เพื่อป้องกันความเสียหายที่จะเกิดกับไดรเวอร์เอาต์พุตของ uC ฝาครอบจะดูเหมือนสั้น ๆ ในทันทีดังนั้นจึงไม่จำเป็นต้องมีข้อผิดพลาดขนาดใหญ่ ตัวอย่างเช่น Atmel ของคุณสามารถส่ง 40mA ได้ 3.3V / 35mA => 94.3 โอห์ม ตัวต้านทาน 100 โอห์มจะทำงานได้ดี

อย่างไรก็ตามตัวต้านทานนี้จะชะลอเวลาเปิดและปิดของ FET ซึ่งจะทำให้ขีด จำกัด บนของความถี่การสลับของคุณ นอกจากนี้ยังเป็นการยืดระยะเวลาที่ FET อยู่ในภูมิภาคเชิงเส้นของการใช้งานซึ่งสิ้นเปลืองพลังงาน หากคุณสลับที่ความถี่สูงอาจเป็นปัญหา ตัวบ่งชี้หนึ่งคือถ้า FET ร้อนเกินไป!

วิธีแก้ไขปัญหานี้คือใช้ไดรเวอร์ FET มันเป็นบัฟเฟอร์ที่มีประสิทธิภาพซึ่งสามารถจ่ายกระแสได้มากกว่าและสามารถชาร์จเกตได้เร็วขึ้นโดยไม่จำเป็นต้องมีตัวต้านทาน จำกัด นอกจากนี้ไดรเวอร์ FET ส่วนใหญ่สามารถใช้รางพลังงานสูงกว่า Vcc ทั่วไป แรงดันไฟฟ้าเกตที่สูงขึ้นนี้จะลดความต้านทานต่อ FET และประหยัดพลังงานเพิ่มเติม ในกรณีของคุณคุณสามารถขับเคลื่อน FET Driver ด้วย 3.7V และควบคุมด้วย 3.3V ของ uC

FetDriver


3:

ในที่สุดคุณจะต้องการใช้ไดโอด Schottky เพื่อป้องกันแรงดันไฟฟ้าที่เกิดจากมอเตอร์ ทำเช่นนี้เมื่อใดก็ตามที่คุณเปลี่ยนโหลดอุปนัย:

LowSideWithDiode

ขดลวดมอเตอร์เป็นตัวเหนี่ยวนำขนาดใหญ่ดังนั้นมันจะต้านทานการเปลี่ยนแปลงใด ๆ ในการไหลของกระแส ลองจินตนาการว่ากระแสนั้นไหลผ่านคดเคี้ยวแล้วคุณจะปิด FET ตัวเหนี่ยวนำจะทำให้กระแสไฟฟ้าไหลออกจากมอเตอร์อย่างต่อเนื่องเมื่อสนามไฟฟ้ายุบตัว แต่ปัจจุบันไม่มีสถานที่ที่จะไป! ดังนั้นมันจึงเจาะผ่าน FET หรือทำอย่างอื่นที่ทำลายล้าง

Schottky วางขนานกับโหลดทำให้เส้นทางปลอดภัยสำหรับกระแสที่จะเดินทาง แรงดันไฟฟ้าพุ่งสูงสุดที่แรงดันไปข้างหน้าของไดโอดซึ่งเป็นเพียง 0.6V ที่ 1A สำหรับคนที่คุณระบุ

ภาพก่อนหน้านี้การตั้งค่าด้านต่ำพร้อมกับ flyback diode นั้นง่ายราคาไม่แพงและมีประสิทธิภาพมาก


ปัญหาเดียวที่ฉันเห็นเมื่อใช้โซลูชัน MOSFET ก็คือมันเป็นทิศทางเดียวโดยเนื้อแท้ L293D ดั้งเดิมของคุณคือไดรเวอร์ฮาล์ฟบริดจ์หลายตัว ทำให้สามารถขับมอเตอร์ได้ทั้งสองทิศทาง การถ่ายภาพเชื่อมต่อมอเตอร์ระหว่าง 1Y ถึง 2Y L293D สามารถสร้าง 1Y = Vdd และ 2Y = GND และมอเตอร์หมุนไปในทิศทางเดียว หรืออาจทำให้ 1Y = GND และ 2Y = Vdd และมอเตอร์ก็จะหมุนไปทางอื่น ค่อนข้างมีประโยชน์

ขอให้โชคดีและสนุก!


ดี! ฉันต้องการตัวต้านทานระหว่างตัวนำไมโครและเกตหรือไม่? 220 โอห์มคุ้มค่าหรือไม่ (3.3V / 0.02A = 170 โอห์ม ~ 220 โอห์ม)
supergiox

1
คำถามที่ดี. ในโลกอุดมคติประตูจะไม่จมกระแสใด ๆ เลย นั่นเป็นหนึ่งในประโยชน์ของ FETs มากกว่า BJT แต่ในโลกแห่งความเป็นจริงประตูทำหน้าที่เป็นตัวเก็บประจุขนาดเล็กซึ่งจะต้องเรียกเก็บเงินก่อนที่กระแสระบายจะเริ่มไหล คุณต้องการให้ชาร์จอย่างรวดเร็วเพื่อเปิด FET อย่างรวดเร็ว เมื่อคุณเปิดพิน uC ครั้งแรกความจุของเกตจะปรากฏเป็นไฟฟ้าลัดวงจร ATmega328 สามารถจ่าย 40mA ต่อขา ฝาจะดูเหมือนสั้น ๆ ในชั่วขณะหนึ่งดังนั้นฉันจะไม่รำคาญกับข้อผิดพลาดที่มากเกินไป บอกว่า 3.3V, 35mA: ~ 100-Ohm ฉันจะรวมสิ่งนี้ในภายหลังวันนี้!
bitsmack

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

ฉันคิดว่าสวิตช์ความถี่เป็นความถี่ pwm ดังนั้นควรประมาณ 500Hz
supergiox

1
ดี :) ฉันอิจฉา; ฉันอยากจะสร้างคอปเตอร์ Quad สำหรับบางเวลาแล้ว! แจ้งให้เราทราบ ...
bitsmack

12

นี่คือสิ่งที่ฉันต้องการดูมอสเฟตใด ๆ มาจากแผ่นข้อมูลของ 2SK4033 โดยวิธี: -

ป้อนคำอธิบายรูปภาพที่นี่

คุณบอกว่า 800mA เป็นกระแสเฉลี่ย แต่นี่สามารถเพิ่มเป็น 1A ภายใต้การโหลดหรือไม่ อย่างไรก็ตามที่ 1A และด้วยแรงดันไดรฟ์เกตที่ 3.3 โวลต์ MOSFET จะลดลงประมาณ 0.15V ทั่วทั้งอาคารเมื่อจ่ายโหลด 1A คุณสามารถอยู่กับการสูญเสียพลังงาน (150mW) และที่สำคัญกว่านี้เมื่อแรงดันไฟฟ้าของแบตเตอรี่ลดลงต่ำกว่า 3V คุณสามารถอยู่กับประสิทธิภาพที่หายไปเนื่องจากแรงดันไฟฟ้าของประตูลดลงอย่างหลีกเลี่ยงไม่ได้

มีเพียงคุณเท่านั้นที่จะตอบคำถามนี้ มีมอสเฟตที่ดีกว่านี้ แต่คุณต้องคำนวณกระแสโหลดจริงสำหรับมอเตอร์ที่คุณคาดว่าจะเห็น

การแก้ไข

นี่คือชิปที่ฉันเจอซึ่งอาจมีประโยชน์แทน MOSFET มันคือDRV8850จาก TI มันประกอบไปด้วยสะพานสองครึ่งและนั่นหมายความว่ามันสามารถขับมอเตอร์สองในสี่ตัวได้อย่างอิสระโดยไม่ต้องใช้ไดโอดฟลายแบ็ค การต้านทานต่อ FET แต่ละครั้งคือ 0.045 โอห์มและได้รับการจัดอันดับที่ 5A (กำลังงานที่กระจายอยู่ประมาณ 1.1 วัตต์) แต่เนื่องจาก OP ต้องการประมาณ 1A สิ่งนี้จึงกลายเป็นเรื่องเล็กน้อย ช่วงแรงดันไฟฟ้าคือ 2V ถึง 5.5V ดังนั้นจึงเหมาะมาก: -

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณมาก. ใช่มอเตอร์สามารถเพิ่มกระแสให้มีค่ามากกว่า 1A เล็กน้อย แต่เพียงช่วงเวลาสั้น ๆ กฎเชิงปฏิบัติที่ฉันรู้คือการพิจารณากระแสที่เป็นสองเท่าของค่าเฉลี่ย (1.6A) ฉันคิดว่า 150mW ของการสูญเสียพลังงานไม่ใช่ปัญหาใหญ่
supergiox

สิ่งที่เกี่ยวกับแรงดันไฟฟ้าของแบตเตอรี่ที่ต่ำกว่าเมื่อไดรฟ์เกตไม่ดีและสูญเสียมากขึ้น แน่นอนว่าฉันเล่นเป็นผู้สนับสนุนปีศาจ!
Andy aka

เกี่ยวกับแรงดันไฟฟ้าของแบตเตอรี่ลดลงต่ำกว่า 3V ฉันไม่ทราบว่าฉันเข้าใจสิ่งที่คุณหมายถึง อย่างไรก็ตามฉันใช้ตัวควบคุมแรงดันไฟฟ้า (LE33CZ) เพื่อจ่ายไฟให้ ATmega ที่ 3.3V ไม่ได้หมายความว่าแรงดันไฟฟ้าเป็น "เสมอ" 3.3V? อีกหนึ่งคำถาม แล้วไดโอดล่ะ
supergiox

1
เมื่อแรงดันไฟฟ้าของแบตเตอรี่ลดลงถึง 3.4 โวลต์เอาต์พุตของตัวควบคุมจะเริ่มลดลงเช่นกันซึ่งหมายความว่าโวลต์ของไดรฟ์ไปที่เกตเริ่มลดลง จัดการกับสถานการณ์นี้ก่อนไดโอด ไดโอดเป็นสิ่งเล็กน้อยในการเปรียบเทียบ
Andy aka

1
คุณต้องการ Fet หนึ่งตัวเพื่อควบคุมมอเตอร์แต่ละตัวหรือสองตัว Laszlo สมมติว่าคุณต้องการ 2 เพราะตอนแรกคุณใช้ L293
Andy aka

6

เนื่องจากมีการใช้มอเตอร์ DC แบบแปรงคุณไม่จำเป็นต้องมี H-Bridge เป็นไดรฟ์ มีเพียงสองกรณีเท่านั้นที่จำเป็นต้องมี H-Bridge จำเป็นต้องสลับมอเตอร์จากภายนอก (เช่นมอเตอร์ PM brushless PM) หรือต้องการหมุนกลับ ดูเหมือนว่าจะไม่มีการใช้สิ่งเหล่านี้ที่นี่ การใช้ทิศทางเดียวหรือไดรฟ์ Quadrant เดียว (SQD) จะลดความซับซ้อนของสิ่งที่คุณพยายามทำอย่างมาก

FET ที่คุณคิดว่าจะใช้ (2SK4033) นั้นไม่เหมาะกับแรงดันไฟฟ้าที่มีอยู่ (Andy ได้ชี้ให้เห็นแล้วว่าทำไม) และเราจะอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับการเลือก FET ในภายหลัง

ขับมอเตอร์กระแสตรงที่แปรงด้วยไดรฟ์ Quadrant เดียว (SQD)

Vth

ป้อนคำอธิบายรูปภาพที่นี่

VωRwindRgRpdVbVdrv

ImIdpkIdrmsIcr-ave

  • IdpkIm
  • Id-rms2Im2
  • Icr-aveIm

เกณฑ์พื้นฐานสำหรับการเลือก FET (ประเภท ABCs ของการเลือก FET):

  • VDS1.5VB-max

VDS

  • Vth-maxVDrv-min3

    Vth-maxRds

  • ΔTJA

    การเพิ่มความร้อนเป็นสิ่งสำคัญมาก มันอธิบายถึงการสูญเสียทั้งหมด ... การสูญเสียการนำความสูญเสียประตูและการสูญเสียการสลับ

การเลือกตัวอย่างตามเกณฑ์ 3 ข้อ:

VB-maxVDrv-minVDSVth-maxRDS

  • VDSVth-max

Rth

PTPcondPsw

ที่ไหน

PcondRdsIm2

Psw12ImVbFPWM(τf+τr)

VgsVdsVgsVmpVds

ป้อนคำอธิบายรูปภาพที่นี่

QmpVmpVdrvRgVmpVdrv

QmpτVdrv2Rgτ2RgQmpVdrv2(100Ohms)(4nC)3.3V

ImRdsRds

PT0.9(33mOhm)(1.2A)2(3.3V)(1.2A)(242nSec)(20kHz)

Im

ปลายหลวม

  • ใส่วงจรขับเคลื่อนและสวิตช์ใกล้กับมอเตอร์

  • ในขณะที่ไมโครไดรฟ์สามารถขับ FET ได้โดยตรง แต่ไดรเวอร์สำหรับการปกป้องไมโครนั้นเป็นความคิดที่ดี (เช่นNC7WZ16สามารถทำงานได้ที่นี่)

  • Ciss

  • Im

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.