Керування двигунами постійного струму з MOSFET і мікроконтролером?


13

Я розробляю нано-квадрокоптер за допомогою мікроконтролера Atmega328, що працює на 3,3 В, і дуже маленьких щіткових двигунів постійного струму. Середній струм, який використовуються цими двигунами, становить приблизно 800mA @ 3,7V.

Спочатку для їх управління я використовував драйвер двигуна L293D, але цей компонент був досить неефективним. Струм, виміряний, коли двигуни працювали з максимальною потужністю, становив близько 500 мА, і тому тяга була значно нижчою, ніж повинна бути.

Тепер, щоб вирішити цю проблему, я замінив би цей драйвер двигуна з 4-ма логічними рівнями MOSFET. Після тривалого пошуку я знаходжу цей (2SK4033).

Чи знаєте ви, чи має це працювати? Чи потрібно використовувати його спільно з діодом? Якщо відповідь "так", що з цим (MBR360RLG)?

Я вибрав ці компоненти також тому, що можу придбати їх у тому ж інтернет-магазині.


2
Енді відповів на частину вашого запиту MOSFET, але ніхто не згадав більш фундаментальне питання: як ви плануєте замінити L293D на 4 N MOSFET? Поставлення N MOSFET на високу сторону може спричинити проблеми з ефективністю. Схематичний малюнок може допомогти зрозуміти вашу ідею.
Ласло Валько

Що ви маєте на увазі під "високою стороною"? На даний момент єдина схема, яка у мене є, - це одна з L293D. Якщо це могло б допомогти, я можу розмістити його. Моя ідея полягає в тому, що кожен двигун приводиться в дію мосфетом (в цілому 4), і якщо це потрібно, діодом теж. Що може бути більш ефективним рішенням?
supergiox

Кожен висновок L293D включає транзистор "високої сторони" (між Vcc та виходом) та транзистор "низької сторони" (між GND та виходом). Якщо ви заміните транзистор "високої сторони" на N MOSFET, вам знадобиться блок живлення, який може забезпечити Vgs (принаймні на 2..3..4V) вище вихідної напруги. Або макс. Вихідна напруга буде Vcc - Vgs ...
Laszlo Valko

Vgs повинен бути 3.3V, а вихід (Vds) повинен бути 3.7V (однакова напруга акумулятора, що є унікальним). Отже, якщо є ця проблема, як я можу це зробити? Чи можете ви запропонувати інше рішення?
supergiox

2
У вас є такі варіанти: а) використовувати P MOSFET для високої сторони; б) використовуйте окремий ланцюг перетворювача напруги або постійного струму перетворювача постійного струму, щоб забезпечити 2 * Vcc для керування воротами MOSFET високої сторони; в) використовуйте схему завантаження для забезпечення належної напруги Vout + Vcc для керування воротами MOSFET на високій стороні. Кожен із них має свої недоліки та / або обмеження.
Ласло Валько

Відповіді:


17

MOSFET повинні дуже добре працювати для цього додатка. Ось деякі речі, які слід врахувати:

1:

Використовуючи FET для руху вантажу, ви можете вибрати конфігурацію високої або низької сторони. Висока сторона розміщує FET між силовою рейкою та вантажем, а інша сторона вантажу з'єднана із землею. У конфігурації з низькою стороною один провід вантажу підключається до силової шини, а FET розташовується між вантажем і землею:

HighVsLow

Найпростіший спосіб керувати двигуном (або іншим навантаженням) - це використовувати N-канальний MOSFET в конфігурації низької сторони. N-FET починає проводитись, коли напруга його затвора вище, ніж джерело. Оскільки джерело з'єднано із землею, затвор можна керувати нормальною логікою включення. Існує поріг, який повинна перевищувати напруга на затворі ("Vth") перед тим, як проводити FET. Деякі БНТ мають Vth у десятках вольт. Ви хочете "логічного рівня" N-FET з порогом, який значно менший, ніж ваш Vcc.

У конфігурації FET з низькою стороною є два недоліки:

  • Обмотка двигуна підключена безпосередньо до силової рейки. Коли FET вимкнено, вся обмотка "гаряча". Ви перемикаєте заземлення, а не електроживлення.

  • У мотора не буде справжньої орієнтації на землю. Найнижчий потенціал буде вищим за землю напругою вперед FET.

Жодне з них не має значення у вашому дизайні. Однак вони можуть бути проблематичними, якщо ви їх не очікуєте! Особливо з схемами більшої потужності :)

Щоб подолати ці проблеми, ви можете використовувати P-FET у конфігурації на високій стороні. Хоча схема руху стає дещо складнішою. Перемикач P-FET зазвичай має затвор, підтягнутий до силової шини. Ця рейка потужності вище, ніж Vcc VC, тому ви не можете підключити штифти вводу-виводу UC безпосередньо до воріт. Поширене рішення - використовувати менший N-FET з низькою стороною для спуску затвора високої сторони P-FET:

DualFet

R1 і R3 існують, щоб утримувати FETs, поки не запускається Q2. R3 вам знадобиться навіть у низькій стороні конфігурації.

У вашому випадку я думаю, що простий низький рівень F-FET (з R3) буде служити вам краще.


2:

Помітьте R2 на останній схемі. Затвор MOSFET діє як конденсатор, який повинен заряджатися до того, як починає надходити струм зливного джерела. Коли ви вперше подаєте живлення, може виникнути значний струм напруги, тому вам потрібно обмежити цей струм, щоб запобігти пошкодженню вихідного драйвера UC. Обмеження буде ненадовго виглядати як коротке, тому немає необхідності у великій помилці. Наприклад, ваш конкретний Atmel може отримати 40mA. 3.3V / 35mA => 94.3 Ом. Резистор на 100 Ом буде чудово працювати.

Однак цей резистор сповільнить час увімкнення та вимкнення FET, що поставить верхню межу вашої частоти комутації. Крім того, це збільшує кількість часу, коли FET знаходиться в лінійній області роботи, яка витрачає енергію. Якщо ви перемикаєтесь на високій частоті, це може бути проблемою. Один з показників - якщо FET стає занадто гарячим!

Рішення цієї проблеми - використовувати драйвер FET. Вони ефективно буфери, які можуть подавати більше струму, і тому можуть заряджати ворота швидше, не потребуючи обмежувального резистора. Крім того, більшість водіїв FET можуть використовувати рейку більшої потужності, ніж типові Vcc. Ця більш висока напруга на затворі знижує опір FET, економлячи додаткову потужність. У вашому випадку ви можете живити драйвер FET за допомогою 3,7 В, а також керувати ним за допомогою 3В В uC.

FetDriver


3:

Нарешті, вам потрібно буде використовувати діод Шоткі для захисту від сплеску напруги, викликаного двигуном. Робіть це будь-коли, коли ви перемикаєте індуктивне навантаження:

LowSideWithDiode

Обмотка двигуна - великий індуктор, тому він буде протистояти будь-якій зміні потоку струму. Уявіть, що через обмотку протікає струм, і тоді ви вимикаєте FET. Індуктивність призведе до того, що струм буде продовжувати надходити з двигуна при руйнуванні електричних полів. Але для цього струму немає місця! Так воно пробивається через БНТ, або робить щось інше настільки ж руйнівне.

Шоткі, розміщений паралельно навантаженню, дає безпечний шлях для проходження струму. Спід напруги максимумує при напрузі переднього діода, яка становить лише 0,6 В при 1А для тієї, яку ви вказали.

Попередня картина, конфігурація з низькою стороною з відкидним діодом, проста, недорога і досить ефективна.


Єдине інше питання, яке я бачу при використанні рішення MOSFET, - це те, що воно за своєю суттю односпрямоване. Ваш оригінальний L293D - це декілька драйверів на півмості. Це дає можливість керувати мотором в обох напрямках. Зображення підключення двигуна між 1Y та 2Y. L293D може скласти 1Y = Vdd і 2Y = GND, а двигун крутиться в одному напрямку. Або він може скласти 1Y = GND і 2Y = Vdd, а мотор буде крутитися в інший бік. Досить зручно.

Хай щастить!


Приємно! Чи потрібен мені резистор між мікропровідником і воротами? Є 220 Ом хорошим співвідношенням? (3,3 В / 0,02А = 170 Ом ~ 220 Ом)
супергіокс

1
Гарне питання. В ідеальному світі ворота взагалі не потоплять жодного струму. Це одна з переваг БНТ над BJT. Але в реальному світі затвор виступає як невеликий конденсатор, який повинен заряджатися до того, як починає надходити струм зливного джерела. Ви хочете, щоб вона швидко заряджалася, щоб швидко включати FET. Коли ви вперше увімкніть штекер uC, ємність затвора видається як коротке замикання. ATmega328 може видавати 40mA на контакт. Ковпачок на мить буде виглядати як короткий, тому я б не заважав надто великою кількістю помилок. Скажімо, 3,3 В, 35 мА: ~ 100 Ом. Я злитлю це в, пізніше сьогодні!
бітмак

1
О, і якщо ви перемикаєте двигун на високих частотах, цей опір стає проблемою. Це уповільнює зарядку та розрядження затвора, що сповільнює вашу частоту комутації. Крім того, це збільшує кількість часу, коли FET знаходиться в лінійній області роботи, яка витрачає енергію. Якщо ви виявите, що це проблема, використовуйте "драйвер FET" або інший буфер, який створюється для джерела / потоку набагато вищого струму до / з воріт. Тоді ви можете мінімізувати (або усунути) резидент.
бітмак

Я думаю, що частота перемикання є частотою Pwm, тому вона повинна бути приблизно 500 ГГц.
супергіокс

1
Приємно :) Я ревную; Я вже дуже давно хочу побудувати чотиримісний коптер! Повідомте нас ...
бітмак

12

Ось, що я хотів би розглянути будь-який MOSFET. Це, до речі, з інформаційного аркуша 2SK4033:

введіть тут опис зображення

Ви кажете, що 800mA - це середній струм, але чи може це збільшитися до 1А під навантаженням? У будь-якому випадку, при напрузі 1А та напрузі приводу 3,3 В, MOSFET падає приблизно на 0,15 В через його клеми під час живлення навантаження 1А. Чи можете ви жити з цією втратою електроенергії (150 мВт) і, що ще важливіше, коли напруга акумулятора падає нижче 3 В, чи можете ви жити з втратою продуктивності, коли напруга на воротах неминуче падає.

Тільки ви можете відповісти на це питання. Є кращі MOSFET, ніж це, але вам доведеться обчислити реальні струми навантаження для двигуна, які ви очікуєте побачити.

РЕДАКТИ

Ось фішка, яку я натрапив, яка може бути дуже корисною замість MOSFET. Це DRV8850 від TI. Він містить два напівмости, а це означає, що він може самостійно приводити в рух два з 4 двигунів, не потребуючи віддалених діодів (фактично верхній FET працює як синхронний випрямляч, і це, звичайно, зменшує втрати). Коефіцієнт опору для кожного FET становить 0,045 Ом і він оцінюється в 5 А (розсіяна потужність близько 1,1 Вт), але, враховуючи, що ОП хоче близько 1А, це стає дуже банальним. Діапазон напруги живлення від 2 до 5,5 В, тому знову це дуже підходить:

введіть тут опис зображення


Дуже дякую. Так, мотори могли б збільшити струм до значення трохи більше 1А, але лише на короткий час. Правильне правило, яке я знаю, - вважати струм, що вдвічі більший від середнього (1.6A). Я думаю, що втрата електроенергії на 150 МВт не є великою проблемою.
supergiox

А як щодо менших напруг акумулятора, коли привід затвора бідніший і втрати стають більшими. Я граю захисників чортів!
Енді ака

Про напругу акумулятора падає нижче 3В, я не знаю, чи розумію, що ви маєте на увазі. У всякому разі, я використовую регулятор напруги (LE33CZ) для живлення ATmega на 3,3 В. Чи не означає це, що напруга "завжди" 3,3 В? Ще одне питання. Що з діодом?
supergiox

1
Коли напруга акумулятора падає, наприклад, 3,4 вольта, вихід регулятора також почне падати, а це означає, що привід вольт до воріт починає падати, а жири стають більш неефективними. Робіть цей сценарій перед діодами. Діоди порівняно тривіальні.
Енді ака

1
Вам потрібен один Fet для управління кожним мотором або два. Laszlo припускає, що вам потрібно 2, оскільки ви спочатку використовували L293.
Енді ака

6

Оскільки використовується щіточний двигун постійного струму, вам не обов'язково потрібен Н-міст як привід. Лише у двох випадках справді потрібен міст H; необхідність зовнішнього комутації двигуна (наприклад, безщіткові двигуни ПМ) або необхідність обертання назад. Ні один із них тут не застосовується. Використання одного напряму або одного приводу квадрантів (SQD) значно спростить те, що ви намагаєтеся зробити.

FET, який ви думаєте використовувати (2SK4033), не є великим співвідношенням наявної напруги накопичувача (Енді вже вказав чому), і ми дізнаємось детальніше про вибір FETs пізніше.

Керування щітковими двигунами постійного струму з однопривідним приводом (SQD)

Vth

введіть тут опис зображення

VωRwindRgRpdVbVdrv

ImIdpkIdrmsIcr-ave

  • IdpkIm
  • Id-rms2Im2
  • Icr-aveIm

Основні критерії вибору FET (різновид ABC вибору 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.